Compiere is designed to support the user interface in multiple languages - and to support multiple document languages. Example: the users of the system with English or Spanish windows/reports - while you are sending invoices (documents) to your customers in English, German and Russian.
Out of the box, Compiere provides the infrastructure for 28 languages including the two Chinese, Japanese, Thai, Spanish (and Mexian), as well as British and Australian. The language infrastructure is based on Unicode and handles all languages and dialects.
The bulk of the translation is exported and imported via XML files to allow the use of translation tools like Trados. Even though it might seem easier to "just translate" the system, you will realize significant savings for maintaining the translation with a translation tool - and the initial translation also will be less effort and with higher consistency.
Compiere at this very moment has about 106,000 words to translate. You can reduce that volume to about 98,000 if you only translate the parts a user of the system would see (i.e. not system administrator functionality). If you skip the translation of the Help text (i.e. only labels and bubble help), the word count is reduced to 46,000.
Compiere offers "Language Packs" which are a good base for a translation. Here I want to outline, what steps are necessary to create and maintain a Language pack efficiently:
(1) Verify Infrastructure
- Make sure that your language (e.g. fr_FR) is listed in the login drop-down list. If not, check the class org.compiere.util.Language.java and add your language if required.
- For the login window, the Swing UI uses the resource files in the package org.compiere.translate e.g. ALoginRes_fr.java
(2) Create the Language
- Login with the role of System Administrator
- In Window Language, find your language (or create it) and select the System Language check-box. Then click on the Language Maintenance button, selecting the Mode: Add missing Translations. This will create about 42,000 translation records copying the English text to be translated.
(3) Translate
- To export the translation, start the process Translation Import/Export, select your language and mode. The sections for the export scope are:
-- All System data (e.g. Screens, Reports, ..)
-- System data for Tenants (e.g. Screens, Reports, .. used my Tenant users)
-- Tenant Data (e.g. for Document translation)
You could select a specific table, or leave it empty for all. The Export Detail Level lets you reduce the volume from All to Label (and Description) only. If you do not select a directory, it will put the files in the directory %COMPIERE_HOME%/data
- Translate the xml file with a translation tool for speed and quality
- Import the translation using the process Translation Import/Export, selecting your language, the mode (import) - optionally the specific table - and the directory where to find the translated files. (The Export Scope and Detail level are ignored)
- You could use the Window System Translation Check to validate the translation.
Note that using a professional translation tool like Trados speeds up the translation process and reduces the cost of maintenance significantly. Translations done without the use of a transaction tool risk having an inconsistent quality, thereby confusing users.
There are a few improvements planned for translations like easy distribution via Components, removing the need for the resource files and driving the language selection entirely from the table Language.