Managing Language
The purpose of this page is to help you install and use iDempiere's multi-language abilities.Download Translation Packs
Link to translation packsSupport Local Region (Locale) Defaults (internal user experience)
There are times when you want certain fields formatted a specific way to match your country's or region's standards. Examples include date and number formatting. Here are the details regarding how iDempiere works:- Language and Locale settings are managed via the System Admin role => Language window
- When you login with a specific language, Java uses the Language window => ISO Country Code field to set the locale
- The Locale drives how dates, numbers, etc... are formatted.
- You have just installed iDempiere, and as a result, iDempiere's base language is en_US or "English (USA)"
- Your situation:
- You are located in South Africa
- You wish to change how iDempiere formats dates to meet local standards
- You are happy with all windows/labels displaying in English (as they appear now)
- Your actions to get the desired results:
- Log in as System Admin role
- Open the Language window
- Find the "en_ZA" or "English (South Africa)" Language record
- Check the Login Locale field and save the record
- Restart your server
- The next time you log in, you will have an additional"en_ZA" option for Language
- If you do not want to see the "English (USA)" option during login, simply update the that record by unchecking the Login Locale field. Note: it is acceptable to use the "en_ZA" option for locale but still keep the "en_US" or "English (USA)" as the Base Language.
Enable a new System Language (internal user experience)
Here is a quick summary for installing French (more info here). Obtain iDempiere language packs here- log in as system admin
- Open the Language window and find the language of choice (fr_FR in my case)
- Flag fr_FR as a "System Language" = 'Y'
- Click the "Language Maintenance" button and add missing translations
- Open the Translation Import/Export process
- Do not choose a client
- Choose the "fr_FR" language
- Do not choose a table
- Click on the import button (not the import zip)
- Navigate to the /opt/idempiere-server/data/ directory and choose the fr_FR folder
- Note that not all translations are complete. The import process will tell you what files were missing at the bottom of the process.
- Run the "Synchronize Terminology" process
Communicate with Business Partners in their Language (BP experience)
This option assumes you have enabled the applicable language (above). Go to the Client window and enable the "Multi Lingual Documents" check box. When you enable Multi Lingual Documents, translation tabs will appear in the following windows:- Product
- Charge
- Currency
- Country
- Dunning
- Greeting
- Payment Terms
- Tax
- Document Type
- UOM
Default Country Based on Language
The Client record chooses the language. The Language chooses the ISO Country Code. The Country should default from the ISO Country Code. The Country window => Region subtab has a default field.Choosing a new Base Language
There is a process called "Change Base Language". Play with this process on a test server first. Please note that you must uncheck your current language as a System Language before you attempt to make your language the Base Language. Here is the feature detail There are two reasons why you would change this setting:- You operate in an installation where you only use one language (not US) and you want to simplify the system so that your language is the default. This helps you sort of ignore the _trl tables.
- You operate in a more global installation and you need all languages (including US) to be treated as equals. To do this, you create a dummy language xx_XX and make it the base language. Doing so ensures that your language maintenance operating procedures are the same for all languages (including en_US). Said another way, your procedures will not differ based on language.
Creating a New Window with Its Own Translation
https://groups.google.com/d/msg/chuboe-id-training/GMWJwNScezg/y57cYCedIQAJTranslation Tools
Creating a new System Language Translation Pack from Scratch
NOTE: given the language tools developed in iDempiere, I do not believe the below is needed; however, I am keeping for reference just in case. These instructions assume you are creating a Turkish translation pack for contribution back to iDempiere. Swap in your language as needed. Note that you can get the language abbreviation for your language record from the Language window. Perform the following steps:- Enable the Turkish language using the above instructions. Be sure to press the "Language Maintenance" button to create missing translations. Note this will create the translation records in English by default.
- Log in as the System Administrator role and start translating in the following windows
- Element - note: ask me to write SQL to help you propagate the changes to all columns and fields for you. This will save you lots of time!!
- Window, Tab & Field - only focus on the Window and Tabs - the fields will be updated by the previous line.
- Report and Process
- Form
- Info Window
- Menu - ask me to write SQL to update the menu from the above changes (form, info, report, process, etc...)
- To distribute your changes
- Create an SSH terminal connection to your iDempiere server.
- Create a new language folder in /opt/idempiere-server/data by issuing the following command:
-
sudo -u idempiere mkdir /opt/idempiere-server/data/tr_TR
-
- Log into iDempiere as the System Administrator.
- Open the Translation Import/Export window and export the Turkish translations to your new folder
- Leave the Client field blank
- Choose Turkish as the language
- Leave the table blank
- Click the Export button
- Choose the newly created /opt/idempiere-server/data/tr_TR folder
- Go back to your SSH terminal connection and perform the following commands:
-
cd /opt/idempiere-server/data/tr_TR
-
sudo su idempiere # so that the below commands execute as the idempiere user
-
for f in *en_US*; do mv -v "$f" "${f//en_US/tr_TR}"; done # rename files -
grep -rl "en_US" | xargs sed -i "s|en_US|tr_TR|g" # replace text in files
-
exit # exit the idempiere user session
-
- Manipulate the files as you need to perform your translations
- Perform the steps listed here to make your new translations active.