Is there a reason that LFS isn't just using unicode? HL2 seems to do it fine ... you can type in any language, see any language (as long as you have the input support/fonts installed).
Though I guess it's due to the way LFS handles text ... I'd strike a wild guess that HL2 just takes advantage of windows 2k+ native unicode support and renders the text to a texture or something.
I think if i was coding from scratch i would use unicode. But at the moment, there are around 2000 parts of the program that handle text, buffers in the program, multiplayer packets, text manipulations etc, and these would all need to be modified (most would be easy but some tough - and the easy ones would be a few minutes each). I can't just switch to unicode versions across the board, every instance would need to be checked.
It would be impossible to make a compatible version, because 2-byte characters are just not compatible with 1-byte characters, so a unicode version would need to be a totally new version of LFS. The changes are so huge that there would a few weeks of changeover, during which time i couldn't even compile the program for testing.
There would be a great benefit, that Chinese / Japanese / Korean characters could be supported, but this in turn brings up some issues with text needing to be stored in temporary buffers (an entire Chinese font in texture memory is not practical).
And, there are issues trying to support older versions of Windows which do not have unicode text inputs support - in fact only Windows 2000 and Windows XP have this.
So......... with all these issues, it seemed like a full unicode system, if it will be done ever, would be best left for some future version of LFS, which runs only on Windows XP or later, so it can actually support unicode, and DirectX 9 or whatever, which may have very fast text renders so no need for the temporary buffers, etc...