  Here is an example on how to use the internationalization (i18n) mechanisms
for messages.
  This small program uses various strings found in TV so they are already
available in the tvision.mo catalog (tvision domain). The code have only one
message to found in TV: "~W~indow" (TV have the plural).
  This string is marked as "needs translation" using __(...). This macro does
nothing and is there just to tell xgettext we want to translate it.
  Then we use the script "extract.sh" to call xgettext and generate
"test.po". This file contains the strings to translate (just one in this
example).
  The next step is to create the "catalog sources" for each language. In this
example we are using spanish so we create es.po. It contains the spanish
translations.
  Finally we compile it using "msgfmt -o test.mo es.po" and put this catalog
in intl/es/LC_MESSAGES/test.mo. In real life it should be installed at
system level, for UNIX systems it is usually installed in
/usr/share/locale/es/LC_MESSAGES or /usr/local/share/locale/es/LC_MESSAGES.
  So we have two catalogs for spanish, one for the "tvision" domain and
another for the "test" domain. TV will search in the "test" domain first and
if the message isn't there will search in "tvision".
  To enable the translations you just need to call TVIntl::textDomain or
TVIntl::autoInit. The second is used to force a directory to search for
catalogs so we use it in this example.
  Note the code is forcing spanish using putenv("LANG=es"); because that's
the only translation we have. It shouldn't be like that in real life.
  That's all, play with the example you'll see text translated to spanish in
menues and status line.


