From Tine 2.0 - Wiki

RELEASED WITH: 2012-03 Milan


The official Tine 2.0 releases have a set translations included. Moreover it's possible to add additional translation packs or to overwrite / customize exiting translations.

Administration of Translations

To register new translations or overwrite existing once, the base path to those translations has to be configured either via or using the tine20_config table via the Tinebase configKey translations

Translation Path Configuration

Example for

"translations" => "/usr/local/share/tine20/translations",

Translation Path Structure

Each translation must come in its own directory named as the corresponding locale. This directory must contain a translation pack structure derived from the Tine 2.0 internal directory structure.

Example for for en_US

|- Addressbook/
|  |- translation/
|  |  |- en_us.po
|  |  |-
|  |- js/
|     |- Addressbook-lang-en_US-debug.js
|     |- Addressbook-lang-en_US.js
|- Admin

NOTE: only languages names having an entry in the cldr database can be used.

Building own Translations Packs

For building your own translation packs, follow the steps from our translation howto. You should end up with a set of .po and .mo files.

Tine 2.0 not only need to po and mo files to work, moreover a translation build is necessary to convert this files into a representation for the javascript client. This build process generates the <Appname>-lang-<locale>(-debug).js files from the content of the po files and adds some generic translations.

You have to make sure that an ExtJS translation for you translation exists:


Also make sure that the generic translations datas exist:


The translation are build using [1] in the normal build process. If you don't have installed phing, follow the instructions from their page. Once the build is complete you can copy all files needed into you lang pack.

Customizing Language and Region Names

Per default, Tine 2.0 uses the languages language and region names in the list of available translations. If you want to customize the language or region name of the languages in you translation path, you can add two additional headers in the .po file of you Tinebase/translations/<localename>.po

"X-Tine20-Language: My Language\n"
"X-Tine20-Country: MY REGION\n"