Help:Extension:Translate/Off-line translation

This page explains how to translate off-line. If you're interested in this, you probably already know what Gettext PO files are. For this reason, we'll only discuss how to use them in a wiki with the Translate extension here. Otherwise, you're probably more interested in the How to translate tutorial for online translation.

More in general, you might want not to use the web interface if you have a very slow or limited internet connection or offline tools that you can't do without. Be aware, however, that the Translate extension is designed as a collaborative process. This means that you should not hold the files offline for long times, and you should always download a new file just before you start translating. Otherwise you might conflict with other translators who work in the wiki.

Export
You can download any message group as Gettext PO file by choosing the export for off-line translation task in Special:Translate. Some sites might have disabled this task. You should check any local guides how to process these files before you start.

The files are standard Gettext PO files with some extra information. The header contains some extra fields shown below; the  for each message contains an identifier that the Translate extension needs. Some editors are known to strip either the header comments or the  lines, so start with a small file to make sure that your editor does not remove these ― it's not funny to realize the editor was buggy after translating hundreds of messages that you cannot import back into the online system! The message documentation is exported as translation comments.

Important header fields:

"X-Language-Code: nl\n" "X-Message-Group: ext-abc\n"

In this example, "ext-abc" is the name of the message group. For translatable pages, the corresponding message group has the name "page-" + the page name (i.e. for the page "Example", the header would contain the line ).

Example entry in a GetText .po file, translated here from English (on the " msgid " line) to German (on the " msgstr " line) :
 * 1) . [Wiki] This text is used on the history tab.
 * 2) . [Wiki]

msgctxt "history_short" msgid "History" msgstr " Versionsgeschichte "

Notice the line starting by : it briefly explains the context of usage for the message given in the next  line. Such line is optional but recommended. After importing the .po file, this contextual text will be made visible to users of the Translate UI on the wiki, and it should be kept or updated when needed.

Import
There is no need to translate the file completely. Uploading partially translated message groups is perfectly fine. There are two ways to import these files.

The users with correct user rights can use to upload and import the translations. The special page processes the file, shows the changes and lets the user import them. For large files with lots of changes the importing might take multiple steps, as the processing time is limited.

Importing can also be done using a command line script in. It's less flexible but can import everything in one go. It also needs intervention from someone with shell access to the server.

The way how imports of off-line translations are handled (or not) depends on your wiki.

Gettext Editors
Here are some tools you can use to edit the files off-line.

WARNING: make sure you are using version 1.4.2 or above, otherwise "  " lines are dropped and your work cannot be processed.
 * [ http://www.poedit.net/ POedit]
 * Available for all platforms supporting the [ http://www.wxwidgets.org/ wxWidgets toolkit], tested on Unix with GTK+ and Windows.


 * [ http://projects.gnome.org/gtranslator/ gtranslator]
 * Can be used in the [ http://gnome.org GNOME] desktop environment on Unix and Linux platforms.


 * [ http://www.kde.org/applications/development/lokalize/ Lokalize]
 * Uses the [ http://www.kde.org/ KDE 4] Desktop Environment on all platforms supporting it. Has a [ http://userbase.kde.org/Lokalize user wiki] and online [ http://docs.kde.org/stable/en/kdesdk/lokalize/index.html handbook]


 * [ http://translate.sourceforge.net/wiki/toolkit/index Translate Toolkit]
 * Toolkit written in the [ http://python.org python] programming language which must be installed as well, usable on all platforms. Supports several other file formats as well.


 * [ http://virtaal.translatehouse.org/ Virtaal]
 * Multi-format translation tool based on the toolkit above. Currently working in Windows and Linux.


 * [ http://omegat.org/ OmegaT]
 * Free tool for professional translators written in Java, requires Java installed; available on all platforms. Supports a variety of other file formats, glosssaries, fuzzy matching, and translation memories.


 * [ http://www.eazypo.ca Eazy PO]
 * Small program, runs on Windows, no installation required.


 * [ http://gorm.po.dk/ Gorm PO file editor]
 * Small powerful program, runs on Windows, no installation required, version 1.0 fails on tags.


 * [ https://github.com/mlocati/betterpoeditor Better PO Editor]
 * Available as source code for Windows, BSD, Unix, Linux, Mac OS X. Includes spell checker and Google Translate suggestions.


 * [ http://www.gted.org/ gted]
 * Usable as a plugin in the Eclipse IDE under Linux, Windows and MAC OS X; embeds various tools.