symb2po

New in version 1.3.

Converts Symbian-style translation files to PO files and vice versa. The Symbian translation files currently have a strong Buddycloud flavour, but the tools will be made more general as the need arises.

Usage

symb2po [options] [-t <target_lang_symb>] <source_lang_symb> <po>
po2symb [options] -t <target_lang_symb> <po> <target_lang_symb>

Where:

<target_lang_symb> is a valid Symbian translation file or directory of those files
<source_lang_symb> is a valid Symbian translation file or directory of those files
<po> is a PO or POT file or a directory of PO or POT files

Options (symb2po):

--version show program’s version number and exit
-h, --help show this help message and exit
--manpage output a manpage based on the help
--progress=PROGRESS
 show progress as: dots, none, bar, names, verbose
--errorlevel=ERRORLEVEL
 show errorlevel as: none, message, exception, traceback
-i INPUT, --input=INPUT
 read from INPUT in php format
-x EXCLUDE, --exclude=EXCLUDE
 exclude names matching EXCLUDE from input paths
-o OUTPUT, --output=OUTPUT
 write to OUTPUT in po, pot formats
-t TEMPLATE, --template=TEMPLATE
 read from TEMPLATE in the Symbian translation format
-S, --timestamp
 skip conversion if the output file has newer timestamp
-P, --pot output PO Templates (.pot) rather than PO files (.po)
--duplicates=DUPLICATESTYLE
 what to do with duplicate strings (identical source text): merge, msgctxt (default: ‘msgctxt’)

Options (po2symb):

--version show program’s version number and exit
-h, --help show this help message and exit
--manpage output a manpage based on the help
--progress=PROGRESS
 show progress as: dots, none, bar, names, verbose
--errorlevel=ERRORLEVEL
 show errorlevel as: none, message, exception, traceback
-i INPUT, --input=INPUT
 read from INPUT in po, pot formats
-x EXCLUDE, --exclude=EXCLUDE
 exclude names matching EXCLUDE from input paths
-o OUTPUT, --output=OUTPUT
 write to OUTPUT in php format
-t TEMPLATE, --template=TEMPLATE
 read from TEMPLATE in the Symbian translation format
-S, --timestamp
 skip conversion if the output file has newer timestamp

Examples

symb2po

The most common use of symb2po, is to generate a POT (PO template) file from the English translation (note that the tool currently expects the Symbian translation file to end with the extension .r01, which is the code for English translation files). This file then serves as the source document from which all translations will be derived.

To create a POT file called my_project.pot from the source Symbian translation file my_project.r01, the following is executed:

symb2po my_project.r01 my_project.pot

In order to re-use existing translations in the Symbian translation format, symb2po can merge that translation into the source Symbian translation to produce a translated PO file. The existing Symbian translation file is specified with the -t flag.

To create a file called my_project-en-fr.po (this is not the recommended PO naming convention) from the source Symbian translation file my_project.r01 and its French translation my_project.r02, execute:

symb2po -t my_project.r02 my_project.r01 my_project-en-fr.po

Note

Ensure that the English and French files are well aligned, in other words, no changes to the source text should have happened since the translation was done.

po2symb

The po2symb tool is used to extract the translations in a PO into a template Symbian translation file. The template Symbian translation file supplies the “shape” of the generated file (formatting and comments).

In order to produce a French Symbian translation file using the English Symbian translation file my_project.r01 as a template and the PO file my_project-en-fr.po (this is not the recommended PO naming convention) as the source document, execute:

po2symb -t my_project.r01 my_project-en-fr.po my_project.r02

Notes

The tools won’t touch anything appearing between lines marked as:

// DO NOT TRANSLATE

The string r_string_languagegroup_name is used to set the Language-Team PO header field.

The Symbian translation header field Author is used to set the Last-Translator PO header field.

Issues

The file format is heavily tilted towards the Buddycould implementation

The tools do nothing with the Name and Description Symbian header fields. This means that po2symb will just copy the values in the supplied template. So you might see something such as:

Description : Localisation File : English

in a generated French translation file.

Bugs

Probably many, since this software hasn’t been tested much yet.