Pootle requires JavaScript

Translating Sympa

Sympa is designed to allow easy internationalization of its user interface (service mail messages and web interface). Most translations for one language are gathered in a single PO file that can be manipulated by standard GNU gettext tools.

Sympa previously (until Sympa 4.1.x) used XPG4 messages catalogue format. Web and mail templates were language specific. The new organization both provide a unique file to work on for translators and a standard format supported by many software.

Web interface for translators

The easiest way to translate Sympa user interface is to use site for translation.

Create an account

At first, you must create your account. This can be done by clicking the “Sign In” on the top page then following a link “Sign up as a new user”.

Choose a project and language to translate

When you log in, you find the three projects used for the Sympa translation:

Sympa user interface: All the web interface and the messages, either sent by mail or displayed in logs;

Sympa online help: The help sections displayed by the web interface.

Terminology: A set of frequently used word upon which translators must agree prior to start translating anything else in Sympa;

Choose a language

When you click on a project name, a page is displayed showing all the sub-project, one by language, hosted in the site. They are displayed in a table whose columns give details about how much work has been done for each language already.

Go to the editing functions

In this page, by clicking on the language name, you will reach yet another page which is the true entry point to translation. This page contains informations about each file of the project.

If you selected “Browse” in the top menu, you can see several links. Shortly:

click on “Continue translation” to start translating at the first untranslated or fuzzy translated string that pootle will find in the catalog.

click on “View all” to start translating at the first string in the file.

you can use the “search” form to go directly to a particular string you want to translate.

Translate

If you selected “Translate” in the top menu, at the preceding step, you will reach a page similar to the one below:

In this page, you can translate a string whose english version is on the left. Once you're done with this string, click on the “Submit” button. Your changes will be saved and then the next string to translate will be open.

Note: If the string contains words defined in the “Terminology” project, then they will display at the left of translation area, along with their translation. This way, you will maintain the coherence of your translation easily.

Using PO file

The PO file format

A PO (Portable Object) file is a text file with a header part (containing meta information) and a set of translations. A translation refers to a reference string in English (msgid) and a translated string (msgstr).

The lines starting with # are either comments or meta data. They are used by Sympa to provide you with contextual information about the string to translate (parameter names corresponding to %s, %1, %2... entries, list of templates/modules that refer to this string). msgid and msgstr are respectively the string to translate and the translation.

Updating an existing PO file

Let's consider Sympa was previously translated in your language and you wish to update the translations (translating new strings, updating changed translations, fixing errors,...). You should download the latest version of the PO file from the source repository. Your favourite PO editor will help you find the untranslated and fuzzy strings.

Translating Sympa for a new language

The only extra job, compared to PO updates, is to create a new PO file. Download the latest version of the sympa.pot file from our source repository. Rename sympa.pot to LL.po (where LL is gettext locale name of your language) and initialize the headers (manually or via your PO editor).

Note:

You may wish to translate from a familiar language (other than English) to your native language. You can create the initial version of your LL.po file based on a MM.po file but you should tag all translations in the newly created file as fuzzy. You can perform this operation with the UNIX msgattrib command as follows :

% msgattrib --set-fuzzy -o /tmp/oc.po /tmp/fr.po

Gettext locale name

If you don't know what your official language code is, check this document.

If you don't know what gettext locale name to use for your language, please ask Sympa authors.

Testing a newly created PO file on your Sympa server

(This method will only work with Sympa release 4.2b.3 or higher) Considering that LL.po in your newly created catalogue :

copy LL.po in Sympa sources po/ directory

edit the po/Makefile to add LL to the LINGUAS variable

edit your sympa.conf to make the new language available : supported_lang fr,en_US,LL

Updating a PO file to include new Sympa entries to translate

This operation is required if you wish to create an uptodate version of your PO file that include both previous translations and new required ones. The list of entries to translate are collected in the sympa.pot template file. sympa.pot can be updated according to code and templates by running the following command in the po/ subdirectory of Sympa sources :

> make pot

You can then update all PO files as follows :

> make update-po

This last operation performs the following msgmerge on each PO file :

> msgmerge -o ll.po ll.po sympa.pot

Merging 2 (or more) PO files

You will need to merge PO files when merging Sympa branches or to gather the work of different translators who have edited the same PO file off-line.