Local Language Support - EcoSys - Administration - Hexagon PPM

EcoSys System Administration

PPMProduct
EcoSys
PPMCategory_custom
Administration & Configuration
Version_EcoSys
8.6

EcoSys supports the ability for a user to have the EcoSys GUI presented in their local language. A user can switch the language that text will be displayed in at login time by selecting a different language in the drop down box or after login by selecting a different language using the drop down box in the top right hand side of the EcoSys application.

Changing the locale does not change data formatting options of Dates, Times, Numbers, Currencies which are currently controlled by other configuration options in EcoSys.

EcoSys only ships with an en-us.properties file. If support of other languages/locales is required additional language properties files can be added.

Adding Support For Additional Languages

  1. Stop the application server.

  2. Add a new locale file in ESFM_HOME\locales with the name of the file in the format <language>-<locale>.properties format.

    • EcoSys supports language tags a per IETF BCP47 (https://tools.ietf.org/html/bcp47)

  3. Start the application server.

The language drop down will now list the new language and when selected all text will be displays as it is represented in the locale file.

For clustered environments the above procedure needs to be done on all nodes.

Translating The Locale File

When adding support for a new locale the administrator will need to have the en-us.properties locale file translated into the the language being added. The locale file is a key-value store, where the text is stored as 'values' against identifiers (the 'keys').

  • A key-value par is specified on a line, using the '=' character to separate them.

  • For example, login.button.text=Login specified login.button.text as the key, whose value is 'Login'.

  • During translation on the value part of the strings should be modified.

Translation considerations

When having the property file translated the translator needs to understand the following concepts to produce the proper translations.

Namespaces

  • A>b – text before the ‘>’ character is the namespace, ‘A’ in this example.

  • Similarly, B>b implies the namespace ‘B’.

  • Without namespaces, the key ‘b’ would not be unique.

  • The absence of a namespace implies the default namespace.

Dynamic (runtime) Text

  • Consider the message - Cost Object ‘B’ already exists. ‘B’ in this example, is only known at runtime.

  • Such dynamic text is specified using the placeholder syntax {}.

  • Example: Cost Object ‘{COID}’ already exists. ‘COID’ is provided by the code at runtime.

Cross References

  • For example, consider these 2 keys and their values:

    • A>b=You are not authorized to perform this action

    • B>b=You are not authorized to perform this action

  • Rather than repeating the phrase in B>b, one should cross reference A>a using the syntax: B>b=[[A>a]]