i18n in PolarViewer
-------------------

Usefull informations about internationalization in Mono can be found here: 
http://www.rtfs.org/ext/files/mono_i18n.html

The internationalization is done using the Mono.Unix.Catalog class.
All the text resources in the GUI needs to be get with Catalog.GetString (). 


The following steps needs to be done for preparing and creating the translations:

- Extraction of the text from source code and glade file:
  => call "make update-po" 
  ("xgettext src/PolarViewer/Gui/*.cs resource/pvmain.glade -o resource/po/polarviewer.pot")

- Create a copy of "polarviewer.pot" for each locale, e.g "de.po".

- Fill the header of the .po file, the charset needs to be UTF-8,
  also save the file in this format with the editor !!!

- Translate the complete .po file.

- Add the new translation to the variable GMO_FILES in Makefile.

- Call "make install" for creation of .gmo from .po files and proper installation.


When the source code or the glade file was changed:

- Create the new .pot file and update all existing .po files:
  => call "make update-po"
  ("msgmerge -v -o de.po de.po resource/po/polarviewer.pot"))

- Check and update the translations in updates .po files:
  - update header informations
  - translate all new (empty msgstr) strings
  - check and correct all translations marked as fuzzy (remove the fuzzy marks after that)


Open questions:

- Why is it not possible to copy the mo files to /usr/share/locale/de/LC_MESSAGES 
  when the application is installed in /usr/local/bin ?
  => The Mono runtime does not find them in /usr/local/share/locale/... ,
     it only works for /usr/share/locale/... , the reson is unknown.


Stefan Saring, (Stephane Raimbault)
2005/10/15
