gettext (Unix/GNU) and FormatMessage (Windows) good links: http://www.gnu.org/software/gettext/manual/gettext.html#Special-cases http://www.heiner-eichmann.de/autotools/contents.html http://userguide.icu-project.org/locale/localizing requirements: - ARCH Linux: gettext 0.17 - NetBSD 4.0: gettext and libintl seem to be old, but around - FreeBSD 7.0: gettext and libintl live as packages in /usr/local version: 0.16.1 - OpenBSD 4.3: gettext in /usr/local, packages from ports version: 0.16.1 - Solaris 10: there is the native one (which is somehow broken especially in xgettext) and the runtime environment which is ok, we can also install some GNU gettext versions (e.g. SunFreeware into /usr/local). This is messy and hard to get right with linking! setlocale is called from native libraries (is in libc), rest can be made run from GNU gettext See also http://cpansearch.perl.org/src/GUIDO/libintl-perl-1.16/README.solaris - Cygwin, no problem, out of the box - set of header files defining the constants, gettext or other macros are used to mark the strings, now we have to build a tool which acts as a C/C++-preprocessor and spits out the message ids and message strings - http://www.sigala.it/sandro/download.php