Internationalisation for CinePaint

    The FilmGimp version of CinePaint uses Gnu Gettext and the Gtk1 toolkit.
    This feature is introduced in version 0.21-0.

    Readworth short introductions exist on the www:
    http://en.wikipedia.org/wiki/Gettext

    Coordinate translation activities on the cinepaint-devel mailing list:
    http://lists.sourceforge.net/lists/listinfo/cinepaint-developers


  Users

    Set your environment variable LANG to your language like:
      # export LANG=de_DE
    Start CinePaint. It should show translated strings in the user interface.


  Translators

    Existing languages can be translated in the Lang.po files.

   Textdomains:
    CinePaint currently uses 
      the 'cinepaint' textdomain in the po/ directory and
      the 'cinepaint-std-plugins' textdomain translated in the po-plug-ins/
    directory. 'cinepaint-script-fu' is included in case someone activates
    script-fu.

   New Languages:
    To add a new language copy xxx.pot to your_language.po .
    Your language gets detected by doing a configure in the toplevel directory.
    Make shure a your_language.po file exists in all three poxxx directories.

   Update:
    the po files in po/ and po-plug-ins/ with a
      # make update-po

   Translation:
    After editing the msgstr "" strings from the english msgid "xxx" strings
    do a make and your your_language.po file gets compiled into a
    your_language.gmo file ready for installation.

   fuzzy:
    Take care about the 'fuzzy' keyword. It is a sign that gettext dont know,
    how to handle a translated string. It has put a vague translation, which
    needs review. Afterward remove the fuzzy keyword and the string gets
    translated.


  Programmers

   New Files:
    In the core include the file "libgimp/gimpintl.h".

   New Plug-in Files:
    In a plug-in include "libgimp/stdplugins-intl.h".
    Put a INIT_I18N_UI(); somewhere before your first translateable string,
    possibly in run().

    Include new files in poxxx/POTFILES.in and remove poxxx/POTFILES. 
    Do a
      # make POTFILE

   Adding / Changing text:
    Strings which shall be translated put in a _() function. _ is a makro 
    and will be substituded by gettext() or by () with disabled i18n support.

    Update the po files in po/ and po-plug-ins/ with a
      # make update-po

    After changing and adding text strings they needs to be translated.
    See the Translators section above.

   Plug-ins:
    Plug-ins have a own text domain, see below.
    Be carfully with menupaths. "<Image>/File/Print..." would only be visible in
    the appropriate po file, but not translated by CinePaint. CinePaint splits
    menupaths by the '/' separator. To translate the above menupath put a
    dummy translation somewhere in like _("Print..."); . "File" should
    allready be translateable in the cinepaint textdomain in /po.
    Test the GUI if not two menupaths exist like
    "<Image>/Filters/Fancy/My Filter" and
    "<Image>/Filters/Krass/Mein Filter".

   Activate Changes:
    Update the xxx.pot file if you add new or change existing translateable
    strings by removing cinepaint-xxx.pot and a
      # make cinepaint-xxx.pot 

   External translations:
    After using external translations, you can change the textdomain back with
    textdomain("cinepaint-std-plugins");



initially written on 8. april 2006, by Kai-Uwe Behrmann <ku dot b at gmx dot de>

