Wow - great question dude. Have been thinking much about this since you posted. Had thoughts of using language files (like say, INI files) that had language-sensitive strings to look for, and the different offsets to use etc.

But to be honest - assuming your only ever going to support French and English and no other language - I wouldn't try to over-design this and fret about it. I would say to stick with your first thoughts:

1) Detect the language (read the first line to detect)

2) Have two seperate CASE structures.

It really is the best and most effecient way to go as far as I'm concerned - straight-forward and to the point. If you had more than two languages to support - yeah maybe - else - stick with your first gut design. I guess what I'm saying is - there may be a more eloquent way of doing this, but not necessarily better.

Since this is only my two cents, anyone else got an opinion ?

-Shawn