Compiere - Smart ERP Solution with integrated CRM Solution
Product Technology:

   Information Structure
   The Multi's
   Application Features
Project Home

Compiere Training Center

Compiere Translation Steps

These are the steps required to translate Compiere. If you compare the effort required to translate Compiere with other applications, it is rather small, but still "real work".


Compiere's base language is US English (en_US) and is fully translated into German German (de_DE) and being translated into other languages. For the current situation check the Status.

The naming convention is based Java locale identifiers. The "language" English UK uses the base English language, but uses the UK date format dd/MM/yy.

The example used here is Français in France (fr_FR).

With the System Administrator role start the Workflow Language Setup or start Window Language and add the new language as a System Language (example: Language=fr_FR, Name=Français).

Start the Verify Translation process in the Language window to create entries for the new language. Missing translations are copied from the base language (en_US).

Code Modifications

As the next step, you need to modify the class org.compiere.util.Language in the "looks" project. This is unfortunately required as when you first start the client, the database is unknown and with that also the available languages.

  • Locate the Languages static array and add the line:
    new Language ("Français", "fr_FR", Locale.FRANCE, null, null)
    If you set the last two parameters to null, the default for the decimal point and date format are derived from the locale. If the Java Runtime system does not have a predefined locale (LocaleFRANCE in the example), you need to define the two parameters.

In the "client", "dbPort", "install" and "looks" modules - copy and translate the files:

These screens are displayed before connecting to the database to get the translation.

Recompile the "client", "dbPort", "install" and "looks" projects. If your language is not using the Latin-1 character set, you need to explicitly convert your local character set to ASCII; Examples for Cyrillic and Thai:

native2ascii -encoding Cp1251 ALoginRes_bg.local
native2ascii -encoding MS874 ALoginRes_th.local

For details see the documentation for Java internationalization and native2ascii

Database Translation

Start the Compiere application. In Preferences (e.g. in the Menu window via File > Preferences) select "Show Translation".

In the System Administrator Role in Window Language, add your language as System Language and press the verify Languages button.

Follow the Workflow Language Setup to translate the different elements. Please note that if you translate a term in the window Element, all Fields and Parameter are translated as well, if they are 'centrally maintained'. After translating the Window, Process, Tasks, and Workflow windows, run the process Synchronize Terminology to indirectly translate the Menu.

"Automatic" Translation
You enter System Process Result
Element with every save and Synchronize Terminology updates the linked Fields in Window/Tab and Process Parameters if "centrally maintained"
Header of Window, Process, Task, Workflow, Form Synchronize Terminology updates Menu items

Suggested translation sequence of main components (follow translation workflow):

  • Element
  • Window, Tab
  • Process
  • Reference (List)

File Translation

As an alternative to a translation in the database, you can export the translation into an xml file and then translate it with a professional translation tools (translation tools allow protecting the tags, so that you only can modify the translation.

Procedure (available after 2.4.3d)

To export the files, run RUN_TrlExport in the utils directory. The file exports the German (de_DE) translation in the standard directory data/de_DE. Just modify the AD_LANGUAGE variable. Only not centrally maintained records are exported. If the language and translation does not exist in the database, it is created.

To import the translated files, execute RUN_TrlImport (after changing the AD_LANGUAGE variable). If the language and translation does not exist in the database, it is created.

As an alternative to this Batch procedure, you can start the Window "Translation Import/Export" in the System Administrator role.

Effective translation

Translation is an ongoing project as new or changed elements need to be translated. Consequently, you ideally need to be able to automatically translate the material. There are translation tools available for the from IBM or Trados, which decrease the effort tremendously and ensure also consistent translation.

Your general procedure looks like this:

  1. Create your Glossary - here you define the terminology and their translation, e.g. "Account = Konto". The more time you spend here, the better your translation quality. There are tools to extract the terminology and the AD_Element is the ideal basis for this.
  2. Translate the files, based on the suggested initial (raw) automatic translation. While you are translating, it builds your "translation memory", so that the same and similar phrases are translated automatically.
  3. Updates are now easy: you run the new/changed file against your translation memory and you are only prompted for new constructs.

Partners also can get a soft copy of the Compiere documentation for translation.


Create a zip file with your translations and the modified RUN_TrlImport for your language. You can add the translations in CVS and publicly share it - or - charge for your translation.

BBBOnLine Reliability Seal We respect your Privacy Compiere is a registered trademark of ComPiere, Inc.  -  Contact us
Copyright © 1999-2003 ComPiere, Inc.
All rights reserved.
Terms & Conditions