Locale
This dynamic enumeration contains all the available languages that can be used in the system. On this basis, language-specific content can be maintained via Localization and Company specific localization.
Special conventions apply to the internal names of the elements in this enumeration, since they can be used to represent a two-level hierarchy within the languages:
A name that does not contain an underscore defines a language 'globally', without reference to any specific country.
If the name contains an underscore, the entry defines a 'country-specific' language. The part before the underscore refers to a 'globally' defined language and the part after refers to a specific country.
Predefined entries identify the 'global' language according to ISO-639-1 by a code of two lower case letters and – if applicable – the Country according to ISO-3166-1 alpha-2 by two upper case letters.
CAUTION
Even if both code tables use the same letter combinations for some countries apart from the upper/lower case, no universal rule can be derived from them.
What seems strictly schematic for German/Germany (de/DE), French/France (fr/FR) or Italian/Italy (it/IT) does not hold for other countries like Sweden (sv/SE), the United Kingdom (en/GB) or China (zh/CN).
If user-defined entries are added to the enumeration, the convention <iso_639_1>_<iso_3166_1_alpha_2> should be followed urgently for the internal name (name), since these names may be interpreted as key values for matching with language settings in the operating system or the browser (see Default locale).
The enumeration is delivered with numerous predefined elements, a few of which are shown here as examples:
Resource name |
English |
German |
de |
German |
Deutsch |
de_AT |
German (Austria) |
Deutsch (Österreich) |
de_CH |
German (Swiss) |
Deutsch (Schweiz) |
de_DE |
German (Germany) |
Deutsch (Deutschland) |
en |
English |
Englisch |
en_CA |
English (Canada) |
Englisch (Kanada) |
en_GB |
English (GB) |
Englisch (GB) |
en_US |
English (US) |
Englisch (US) |
... |
... |
... |
►NOTE◄ Translation files are not available for every language listed here. On the system side, only the languages 'German' (de) and 'English' (en) are preset with translations.
Two indicators are offered as specific parameters for each language:
The Supported locale indicator determines whether the language can be actively used in the system. This concerns the selection options at login, in company and user accounts and the availability of input fields in language-specific input forms, including the translation forms for Localization and Company specific localization.
The Default locale flag should be set for just one language. The Default locale is only used in special exceptional cases when assigning a language for the login context:
The Current locale within a session is determined either by the selection in the user account used (see Users or Guest users) or a different selection in the login dialog. The Default locale usually does not play a role.
Before logging into a Lobster Data Platform / Orchestration session, the following factors can affect the display language for the login context:
Optional parameter value locale in the URL (see URL parameters).
Optional preferred language browser settings for viewing multilingual web content
Operating system display language
These influencing factors are considered in descending priority, i.e. the first factor in the list that provides a default for the language is considered decisive. Whether and how Lobster Data Platform / Orchestration supports the default value is initially irrelevant.
If the default value targets a country-specific language (e.g. en_US) that is not qualified as Supported locale in Lobster Data Platform / Orchestration, the corresponding 'global locale' (e.g. en) will be evaluated as fallback for the default value.
If the default value directly or indirectly refers to a 'global locale' that is created in the dynamic enumeration Locale but is not a Supported locale, the language 'English' (en) is assigned as a fallback.
If the default value refers directly or indirectly (via fallback) to a 'global locale' that is not found in the dynamic enumeration Locale, the Default locale will be evaluated like the default value before.
As a rule, a Supported locale should be used as the Default locale, so that it is then effectively assigned as a fallback.
If the Default locale is a country-specific language that is not an Supported locale, then the relevant 'global locale' is evaluated as a proxy.
If the Default locale does not refer to an Supported locale either directly or indirectly, then the 'English' (en) language is assigned as a fallback.
Priority rules for languages when assigning translations
If language entries are created in the Localization and Company specific localization these always offer a space for translations into all available languages. However, not all entries must be translated into all languages.
A number of rules determine which translation is presented to a user under which conditions for a specific bundle/name combination in the user interface.
In principle, Company specific localization are searched before the general Localization.
The evaluation of any found language entry from one of the two sources follows with the following priority:
Highest priority is always given to a translation for the login language ('direct match').
If the translation for the login language is missing, the system checks for a translation for the global language (such as 'de' when logging on with 'de_AT') if the login language is country-specific.
If the global language does not return a match, the system searches for a translation for English ('en').
If the evaluation of both sources does not produce a match, the Resource Name is displayed instead of a translation.
Thanks to this prioritization, the translation effort can be kept extremely low, since only the special linguistic cases or deviations have to be explicitly defined.
Examples:
|
Display at login with language 'de_AT' |
||||||
Resource name (fictious) |
English (en) |
German (de) |
German/Austria (de_AT) |
English (en) |
German (de) |
German/Austria (de_AT) |
|
EAN |
(no translation) |
(no translation) |
(no translation) |
no company-specific entry |
Ean |
||
EAN |
EAN |
(no translation) |
(no translation) |
no company-specific entry |
EAN |
||
EAN |
EAN |
EAN-Code |
(no translation) |
no company-specific entry |
EAN-Code |
||
EAN |
EAN |
EAN-Code |
EAN (Barcode) |
no company-specific entry |
EAN (Barcode) |
||
EAN |
EAN |
EAN-Code |
EAN (Barcode) |
GTIN/EAN |
(no translation) |
(no translation) |
GTIN/EAN |
EAN |
EAN |
EAN-Code |
EAN (Barcode) |
(no translation) |
GTIN/EAN-Code |
(no translation) |
GTIN/EAN-Code |
EAN |
EAN |
EAN-Code |
EAN (Barcode) |
(no translation) |
(no translation) |
GTIN/EAN-Barcode |
GTIN/EAN (Barcode) |