IBM Worklight - WL.App.getDeviceLanguage() API met

2019-01-29 12:15发布

问题:

In iOS, despite changing the language settings WL.App.getDeviceLanguage() always returns en.
Tested on iPhone 5, iPad 4 and several emulators.

If use navigator.globalization.getPreferredLanguage could detect language correctly in iOS. But the application seems not know it is under other language such as French so application name local string is still in English even other language is available.

回答1:

When using iOS, the relevant setting is that of Region Format.


  1. Created a new Worklight project and application with the iPhone and Android environments
  2. Added in wlCommonInit(): alert(WL.App.getDeviceLanguage());
  3. Build All and Deploy, launch in device

In iOS
There are two settings related to language:

  1. Settings.app >> General >> International >> Region Format

    I currently have Hebrew (Israel) selected.
    Launching the app shows me an alert with he.

    Changing to Gusii (Kenya) and re-launching the app then shows me gu, and so on for other region formats.

  2. Settings.app >> General >> International >> Language

    Changes done here will take no effect.


In Android
There is only one setting related to language:

  1. Settings >> Language and input

    I currently have עברית (Hebrew) selected.
    Launching the app shows me an alert with iw.

    Changing to English (United States) and re-launching the app then shows me en, and so on for other languages.