Lingua - Multilingual programming in C
A language can be chosen at run time. This thus avoids different .exe files for different languages.
The programmer needs only to compile one executable and to make a text data file for every supported language. It's also easy to afterwards create support for yet another language and send the data file to interested customers.
The package consists of a program, lingua, and a module, ui_text (ui stands for User Interface). The module should be compiled and linked with your application program. This module is the same for any language and is very small (about 4KB when compiled with Borland C++).
To use Lingua, do not use any literal strings in your C-source, but
always use identifiers, e.g. not "Press any key" but ANYKEY.
Write your program in any way you like while observing this main rule.
At the same time create and maintain a text file with all literal text for the program in your native language. Whenever any identifier in the text file has been added/edited/deleted, run the utility Lingua and recompile (like you would also have to do if you had edited literal strings in your source code).
Lingua creates two files: an encrypted text file and a header file ui_text.h. The latter file must be included in the source file that takes care of the loading and unloading of the text at run time. Since this header is not language dependent, no recompilation for another language is necessary.
When your application is finished, make a copy of the original .txt file and change the literal strings in the copy to another language. Run Lingua on this text file and a new encrypted text file is created (and also a ui_text.h, but this one is identical to the one in the original language).
Lingua was featured in the October 1999 issue of C/C++ Users Journal.
This is a shareware (NOT public domain) package; if you like it and use it
on a regular basis please register it. Registration can be done at no charge by
sending us a picture postcard from were you live or work.
Commercial users must register and mention the use of Lingua in their documentation.