For the identification of languages, the framework
uses a language code of type
string. Currently,
SAPUI5 accepts the following two syntax forms:
-
The Java Locale syntax that combines a lower case
ISO 639 alpha-2 or alpha-3 language code with an ISO 3166 alpha-2 country code.
Both codes are combined with an underscore. An arbitrary sequence of variant
identifiers (also separated by underscores) can be appended as a third
component.
Example: en_US, zh_TN_Traditional
-
Language codes according to the defacto standard BCP 47 (see IETF BCP-47). Most modern
browsers use these codes for language identification. As of JDK 1.7 the Java
locale class supports them as well.
Example: bs-Cyrl-BA, i-klingon
Current Language Code / Locale
SAPUI5 has the notion of a current language. It is determined from the following
sources of information. The sources are ordered increasingly by priority and the
last available user language/locale wins:
- Hard-coded UI5 default locale ('en')
- Potentially configured user language (window.navigator.userLanguage)
- Potentially configured browser language (window.navigator.browserLanguage)
- General language information from the browser (window.navigator.language)
- Locale configured in the application coding
(jsdoc:symbols/sap.ui.core.Configuration)
- Locale configured via URL parameters
You use the configuration API to retrieve the
resulting current language as follows:
var sCurrentLocale = sap.ui.getCore().getConfiguration().getLanguage();
Note The syntax of the returned value depends on
the syntax used for configuration. If the information source is one of the
browser language properties, the returned language most likely is in BCP-47
format. If it is configured as a URL parameter, the user might have choosen the
JDK Locale syntax.
Note In the Internet Explorer (IE), none of the
window.navigator.*
properties reflects the settings of the
Language
Preference dialog in IE. Instead, IE returns the language of the OS
installation as
browserLanguage and
the language from the OS regional settings as
userLanguage. As a
result, the settings in the
Language
Preference dialog cannot be taken into account for the current
language of SAPUI5. This is often confusing for developers and a known
shortcoming in IE. The only way to circumvent this is an additional server
request where IE provides the corresponding setting in theAccept-Language header. As this
technique requires a backend component and SAPUI5 must be able to run without
any server component, such a request is not implemented yet.