GRASS messages translation

From GRASS-Wiki
Revision as of 14:34, 30 October 2008 by Neteler (talk | contribs) (+Testing different languages)
Jump to navigation Jump to search

GRASS messages translation project

Many users prefer to use software in their mother tongue which is mostly no English. This requires that all GRASS software messages have to be translated to languages other than English. The GRASS Development Team is seeking translators. Please subscribe to the dedicated mailing list at

    GRASS translations mailing list
    http://lists.osgeo.org/mailman/listinfo/grass-translations

Translation related issues may be discussed there. This is an opportunity for non-programmers to contribute as messages can be easily translated. No programming skills required!

Wanted languages

Simple Chinese, Swahili, Hindi, Greek, Tamil, Russian, Telugu, Português, ... Please join us!

HOWTO

In GRASS, we have 4 types of .po files per language (see in the source code the directory locale/po/):

  • grasslibs_LANG.po: messages from libraries
  • grassmods_LANG.po: messages from commands ("modules")
  • grasstcl_LANG.po: messages from TclTk graphical user interface
  • grasswxpy_LANG.po: messages from wxgrass/wxPython graphical user interface

"LANG" is a two character code which indicates the language. It is based on the Alpha-2 code of ISO 639-1 (right column). Example: grasswxpy_pl.po for Polish.

Continuing an existing translation

The file(s) are there but partially outdated? Read on.

First announce on the GRASS translations mailing list that you plan to continue the translation of a certain lanuage. Why? Because sometimes people silently translate already and we need these efforts to be coordinated to avoid doing it twice...

Then get these four .po files for your language and start. If a file is missing, just ask on the list to get it generated or see next section. To get these .po files (the files are in the directory locale/po/):

Then edit the files with a .po file editor (poEDIT or kbabel or..., see below). Take care to maintain layout and special characters.

Starting a new translation

The language you want isn't yet there? Read on.

Briefly, the steps to create new messages files are (if you find this too complicated, ask on the GRASS translations mailing list to get these files done for you!):

  1. Get the latest source code development version from either the SVN repository or as SVN snapshot (see Download).
  2. run: './configure --with-nls [... other parameters]' to configure the GRASS source code
  3. run: 'cd locale' to change into the translation directory
  4. run: 'make pot' to create grass*.pot template files (to extract original messages)
  5. run: copy these file from templates/ into po/; rename them to contain the two characters language code (see above) and to .po extension; update the file headers either manually or with your .po editing software
  6. Now translate the messages in these po/*.po files (using kbabel or other editor, see below)

Software to translate: .po file editors

  • kbabel: KBabel is a set of tools for editing and managing gettext PO files (should come with your Linux distibution)
  • poEdit: poEdit is cross-platform gettext catalogs (.po files) editor (works also under MS-Windows)
  • Web based solutions (not used yet for the GRASS project)

Testing different languages

Testing different languages requires that the respective language environment and, if needed, fonts are installed. To change to a certain language environment (locale), do the following steps (here, example for Unix style environment):

  1. Define/check language settings:
    echo $LANG
    echo $LANGUAGE
    echo $LC_ALL
 
  2. Change it (example for to Japanese):
   a) bash shell:
        export LANG=ja_JP
        export LANGUAGE=ja_JP
        export LC_ALL=ja_JP
 
   b) (t)csh shell:
        setenv LANG ja_JP
        setenv LANGUAGE ja_JP
        setenv LC_ALL ja_JP

Now launch GRASS in this terminal. If you launch it from an icon, you have to change the LOCALE in the computer setup program instead.

See also