Translating SemanticScuttle

SemanticScuttle uses gnu gettext for translation. It does not rely on the php extension but ships with a pure php implementation, php-gettext.

Using gettext from within the code is really easy: Enclose the string you want to translate in a "T_" function call.

For example, to translate:

echo "Vote for";

just write

echo T_("Vote for");

Translation basics

We keep one base translation file, data/locales/messages.po. This file is auto-generated via xgettext from all our php source files. In case you added a new string to the code that needs translation, update the base translation file by running

$ php scripts/update-translation-base.php

After that has been done, the changes to the base messages.po file need to be merged into the single language translation files, for example data/locales/de_DE/LC_MESSAGES/messages.po.

Updating them from the master file is as easy as running:

$ php scripts/update-translation.php de_DE

When the translation is ready, the .po file needs to be compiled in a machine-readable .mo file. Use

$ php scripts/compile-translation.php de_DE

to achieve that.