在Android上的HTML 5 App上检测和应用当前的系统语言

Big*_*g O 1 html5 android backbone.js cordova

我正在开发一个使用PhoneGap和Backbone JS的HTML5应用程序.

问题是Android设备上通过设置更改的语言没有进入我的HTML 5应用程序,虽然我可以看到它在独立的浏览器实例中被更改.

为了支持应用程序的全球化,我使用i18n插件为应用程序选择当前语言.我的应用程序适用于iOS.然而,当我尝试这在Android上,由用户选择的语言没有得到体现.例如,如果我选择法国作为从系统设置我的语言,并尝试看看什么是价值window.navigator.language它仍然连接作为反对酒店fr,这在iOS上完全体现出来.只是为了您的信息,正如PhoneGap所建议的那样,在Android上我正在打电话

`public class myApp extends DroidGap {
    private String pageURl = "somepath";
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        super.loadUrl(pageUrl); // this will load my app's main html page.
    }
}`
Run Code Online (Sandbox Code Playgroud)

有人可以帮我弄清问题是什么吗?

谢谢大O.

dha*_*val 10

尝试使用以下补丁从用户代理字符串中获取语言,它应该工作:

    var lang;
    if (navigator
            && navigator.userAgent
            && (lang = navigator.userAgent
                    .match(/android.*\W(\w\w)-(\w\w)\W/i))) {
        lang = lang[1];
    }

    if (!lang && navigator) {
        if (navigator.language) {
            lang = navigator.language;
        } else if (navigator.browserLanguage) {
            lang = navigator.browserLanguage;
        } else if (navigator.systemLanguage) {
            lang = navigator.systemLanguage;
        } else if (navigator.userLanguage) {
            lang = navigator.userLanguage;
        }
        lang = lang.substr(0, 2);
    }

    console.log("current language is", lang);
Run Code Online (Sandbox Code Playgroud)