Archive: Georgian Language Support


Georgian Language Support
I would like to translate my install for the Georgian language. The problem I am running into is that there isn't a code page language with the Georgian script.

While Microsoft has a code page number allocated for Georgian, because NSIS is not Unicode, it does not seem possible for me to translate the installer into Georgian. Additionally, because the Georgian language makes use of a non-latin, non-cyrillic, non-anything script, I cannot figure out a way to 'fake' the language from some other language. It seems that the only way to make NSIS work for the Georgian language is to make it a Unicode application (which would work for my specific circumstances, my application requires Win2K, WinXP or above).

Has anyone run into this problem before? Does anyone have any ideas?


If there's no codepage for Georgian, it's currently impossible. The best you can probably do is mimic the language with English.


I don't think it is that simple with a language like Georgian. The script itself is quite unlike anything else that I've ever seen. It has very loopy characters, and is entirely unlike any other language I know.

A couple of ideas that I have (which are only theory and I have no idea if they would actually work):

1) Use a custom font in the installer which has all the Georgian characters. (I guess I would have to install the font prior to installation and potentially delete it upon conclusion?) I would have to be able to use the font on everything, though (buttons, header, descriptions, etc.

2) Call SetWindowText on the different controls of the dialogs. Because it would be on Windows 2K or XP it should be possible to pass in Unicode text.

Those are just ideas right now, though, and I don't even know if they are really possible. Georgian has a locale of sorts, so the NSIS should be able to determine when it is on a Georgian OS.


The first might work, but the second won't as the dialogs themselves are ANSI and not Unicode. You can test it with:

System::Call "*(&i1 0xfc, &i1 0x06, &i1 0xd2, &i1 0x06)i.r0"
System::Call "user32::SetWindowTextW(i $HWNDPARENT, ir0)"

The Georgian language is only supported when using the Unicode APIs in Windows.