Page 1 of 1

Internationalization of Celestia Text

Posted: 05.12.2003, 20:29
by don
Howdy All,

Just curious ... Has any further consideration been given to the internationalization of Celestia text, from the initial topic a year ago (http://shatters.net/forum/viewtopic.php?t=1348)?

If I remember correctly, Windows supports (or used to support) multiple languages in its user interface elements (menus, dialog boxes, etc.), via specific, individual language files, no? I'm not sure about Linux and Mac stuff though.

-Don G.

Edit: Ahhh, I see Linux is on it's way (http://63.224.48.65/forum/viewtopic.php?t=2543).

Posted: 05.12.2003, 22:10
by Paolo
Hi Don, it is a very hard stuff.

Multilanguage is the feature request #2 in my website.

I've discussed a lot in other threads specially with Christophe about this argument.

I think that since a multiplatform UI based on openGL won't be implemented we won't see multilanguage outside of Linux version of Celestia.

Bye - Paolo

By the way I'm implementing a simple multiplatform ui based on OpenGL. Perhaps one day will be enough powerful to be used in Celestia.

Posted: 07.12.2003, 18:14
by don
Howdy Paolo,

Thanks for your reply.

Regarding Windows, I may have been thinking of Borland's old Paradox for Windows program. I remember being able to create text files containing different translations of control text, whereby the Windows controls would obtain their text from these files. It was all 9 or 10 years ago, so my memory is a bit faint on it.

-Don G.

Posted: 07.12.2003, 22:15
by Paolo
Hi Don.

I think that the problem is exactly this. You can't use a plain text file.

Windows programs made with VC++ are built using Resource Files.
So all the widgets, controls and relative captions are contained in these "resources". Obviously the system is already capable of managing multilanguage (MS office is available in every language). So creating the resource files properly and recompiling you should be able to create various versions of the executable program with different ui languages, or you should create different DLL's distribute with the main executable. But the resource files are not suitable to be used immediately by Linux and Mac developers, so different translation files are required.

On the other side to use a plain text file in VC++ you must to hard code for every widget and control a caption loading routine at runtime. This operation should sound painful for the windows version of Celestia. Christophe has used a similar approach for the Linux version, but was much more easy because he used some libraries and functionalities already present in that environment.

The approach on my openGL ui is the unicode text file so even Russian, Hebrew and other languages with non Latin Charsets should be supported.

Bye - Paolo.

Posted: 08.12.2003, 17:10
by don
Howdy Paolo,

The on-line MSDN Library has an entry regarding what I had remembered as a text file ... it's called a string table (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcresed/html/_asug_Overview.3a_.String_Editor.asp). I would assume that all other hard-coded text (display, messages, errors, etc.) in the source code files would also need to be converted to use the string table.

There are also several other sections on MSDN regarding internationalization. However, the use of Unicode seems (at first glance) to depend on using the MFC library. I do not know if the STC library supports Unicode or not.


Paolo wrote:But the resource files are not suitable to be used immediately by Linux and Mac developers, so different translation files are required.
Correct. The developers made a decision to keep the various platform UIs separate, and this is one of the drawbacks <frown>.


Paolo wrote:The approach on my openGL ui is the unicode text file so even Russian, Hebrew and other languages with non Latin Charsets should be supported.

This is what the Unicode character set provides in Windows.

Cheers,

-Don G.