Translate JPhotoTagger into another language

JPhotoTagger's GUI texts are stored in plain text files (Java properties files). For German, these files are maintained by the developers. For other languages, users can add translations, which will be delivered with JPhotoTagger. The application Build creates a separate JAR file containing them (Localization.jar).

For the translation task, JPhotoTagger uses OmegaT. Even non computer affine persons should be able, to translate the texts in the OmegaT GUI.

Developers: Creating sources for OmegaT

If not already done, start OmegaT and create a project for a specific translation in the directory Repository Root/OmegaT. The project name contains the locale of the source language and separated through an underscore the locale of the target language, e.g. en-pt_BR, where the source language is English and the target language Brazilian Portuguese. OmegaT creates a directory of that name (en-pt_BR) within the OmegatT directory and some other subdirectories and project files. Save the project and quit OmegaT.

In the Ant file Repository Root/DeveloperSupport/scripts/localize.xml, the target create-omegat-sources creates up to date OmegaT sources for all languages.

If you added a translation directory, update the Ant script localize.xml through adding an antcall to the target 1-create-omegat-sources, e.g.

<antcall target="-copy-omegat-sources-from-localized">
    <param name="src.locale" value="en"/>
    <param name="target.locale" value="pt_BR"/>

The -copy-omegat-sources-from-localized target treats an arbitrary language as source language and an arbitrary language as target language. For German as source language and an arbitrary language as target language, call the target -copy-omegat-sources-from-default.

A translator gets one of these OmegaT project subdirectories packed into a ZIP file. The Ant target 1-create-omegat-sources creates these ZIP files for each translation in the OmegaT directory named equal to the translation directory, e.g.

Translators: How to translate

Unzip the language specific OmegaT folder's ZIP file, sent from a developer to you (see obove). Open it with OmegaT, which is available for free at

Screenshot: OmegaT project open dialog, selected is the translation project from German (de) into English (en)

You can read the 5 Minute manual; in short: Either go with ENTER from one text to the next (first translation) or with Cmd+U to the next untranslated. Replace the not highlighted source text with the correct translation. If done, save your work (Cmd+S or via the Project menu).

Screenshot: OmegaT editor. Text with green background is in the source language, text in target language has yellow background. To see the colors differentiating between source, target and untranslated texts, check all menu items in View.

Recommended OmegaT Settings

Editing rules

If all texts are translated, zip the folder and send it back to a JPhotoTagger developer. If you an OmegaT expert: The translation memory contains the relevant information.

Developers: Integrate translated texts

After extracting the ZIP contents to their original place, let OmegaT create the target files (Project > Create target documents). Then run the Ant target copy-omegat-translations. This target copies all translated files from the OmegaT target folders into the Localization project's source folder. Then rebuild JPhotoTagger.

Write e-Mail
Status of this document: 2013-02-14