[commits] [Wiki] created: Doc/Dev/TranslationH4
Michael Slusarz
slusarz at horde.org
Wed Dec 1 17:13:26 UTC 2010
slusarz Wed, 01 Dec 2010 12:13:25 -0500
Created page: /Doc/Dev/TranslationH4
+ Translating Horde Framework 4 Applications
[[toc]]
----
This document is intended to help developers translate Horde 4 modules
using the **/horde/bin/translation.php** script.
See also {{horde/docs/TRANSLATIONS}}.
+ The Translation Script
<code type="php">
$ php horde/bin/translation
Usage: translation.php [options] command [command-options]
translation.php [help|-h|--help] [command]
Helper application to create and maintain translations for the Horde
framework and its applications.
For further information, see horde/docs/TRANSLATIONS.
Commands:
help Show this help message.
compendium Rebuild the compendium file. Warning: This overwrites the
current compendium.
extract Generate PO template (.pot) files.
init Create one or more PO files for a new locale. Warning: This
overwrites the existing PO files of this locale.
merge Merge the current PO file with the current PO template file.
update Run extract and merge sequent.
update-help Extract all new and changed entries from the English XML help
file and merge them with the existing ones.
cleanup Cleans the PO files up from untranslated and obsolete entries.
make Build binary MO files from the specified PO files.
make-help Mark all entries in the XML help file being up-to-date and
prepare the file for the next execution of update-help. You
should only run make-help AFTER update-help and revising the
help file.
commit Commit translations to the CVS server.
commit-help Commit help files to the CVS server.
Options:
-b, --base=/PATH Full path to the (Horde) base directory that should be
used.
-d, --debug Show error messages from the executed binaries.
-h, --help Show this help message.
-t, --test Show the executed commands but don't run anything.
Please report any bugs to i18n at lists.horde.org.
</code>
Any commands can be called with {{translation.php COMMAND help}} for
further information.
+++ Making a Translation
++ Intialize/Merge the Translation
If this is the first time, run:
<code type="php">
php translation.php init --module=MODULE --locale=xx_XX
</code>
where MODULE is the module folder and xx_XX is the locale (country and
language code), e.g. en_GB or es_ES
If you didn't create one before, build the compendium with all
existing translations for the locale from other Horde applications:
<code type="php">
php translation.php compendium --locale=xx_XX
</code>
Finally, try to get as many translations as possible from the
compendium into the new translation:
<code type="php">
php translation.php merge --module=MODULE --locale=xx_XX
</code>
++ Edit and Update the Translation
Create the compendium file (do this one time only):
<code type="php">
php translation.php compendium --locale=xx_XX
</code>
Clean up obsolete entries:
<code type="php">
php translation.php cleanup
</code>
Prepare the file to edit:
<code type="php">
php translation.php update --module=MODULE --locale=xx_XX
</code>
Edit the translation file //horde/MODULE/po/xx_XX// using a suitable
gettext editing program, such as KBabel or poedit and save the file.
Compile the translation:
<code type="php">
php translation.php make
</code>
If you want to see the changes right away, restart the http server
(i.e. //service httpd restart// in Fedora, CentOS and similar OSes).
+++ Translating Help Files
First extract all new and changed entries from the English XML help
file and merge them with the existing ones:
<code type="php">
php translation.php update-help --module=MODULE --locale=xx_XX
</code>
Then edit the help file for the necessary language using a text editor or vi:
<code type="php">
$ vi horde/easyacdc/locale/xx_XX/help.xml
</code>
Finally:
<code type="php">
php translation.php make-help --module=MODULE --locale=xx_XX
</code>
++ Translating framework modules
You **MUST** manually create a {{locale/}} folder in the base of the
module in order for the translation script to recognize the module.
Then, you can use the translation script as normal to generate the
appropriate files (the module name is Horde_PACKAGE where PACKAGE is
the package name).
More information about the commits
mailing list