Translating BabyChess
=====================


1) Translatable string are marked with _()/N_()/I_(), and _() is called on each
   string that must be translated.  _(), N_() and I_() are defined in
   "src/gettext.hh".  

2) po/babychess.pot is generated by po/update-pot

3) po/LANG.po is updated with po/merge LANG, or created by just copying
   "po/babychess.pot". 

4) Messages are translated in po/LANG.po by a human translator, using an UTF-8
   capable editor, or an UTF-8 PO-file editor (such as KBabel or Emacs). 

5) po/LANG/LC_MESSAGES/babychess.mo is generated and later installed. 


Notes
=====

1)
To disambiguate strings, example:

Use I_("to move:_White"), because in french "_White" must be
translated in the plural.  Translations of these begin just with ":".  The ":"
and what comes before is hidden from the user. 

2)
In English, always use double quotes "like this", and not hacker quotes
`like this'.  


Charsets
========

By default, gettext() returns strings in the charset of the current locale.
That's OK for all non-GUI programs.  In the GUI program, we use
bind_textdomain_charset() to set the encoding of gettext() to UTF-8, because
GTK+ uses UTF-8.  Thus output made by the GUI program is in UTF-8.  Therefore
we change back the the locale's character set before using printf().  Text
written into files is however still in UTF-8.  Also text read from files is
assumed to be in UTF-8.  This is inconveniant, but most GNOME application do
so.  The inconveniance goes away by having a UTF-8 locale, as used by more and
more distributions. 


