带有Phonegap的window.location.replace

时间:2012-11-07 08:49:55

标签: javascript cordova globalization

我尝试设置一个JS函数来自动加载另一种语言的索引页面,并考虑我的读者的设置设备。

我尝试这个......但是不行:

<script src="cordova-2.2.0.js"></script>
<script type="text/javascript" charset="utf-8">

            function checkLanguage() {
                if (navigator.globalization.getPreferredLanguage()='en_EN')

                {
                window.location.replace("index_en.html");
            }

            else if (navigator.globalization.getPreferredLanguage()='fr_FR')
            {
                window.location.replace("index_fr.html");
            }
            else
            {
                window.location.replace("index_other.html");
            }

        }
</script>

这种方法可以使用,还是我必须考虑其他选项来处理我的多语言应用程序?

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

您需要使用getPreferredLanguage的回调:

var handleDeviceReady = function (event)
{
    navigator.globalization.getPreferredLanguage(
        function (language)
            {
                console.log("language: " + language.value + '\n');
                redirectToLocaleSpecificLogin(language.value);
            },
        function ()
            {
                console.log("Error getting language\n");
                redirectToLocaleSpecificLogin("en");
            }
    );
};

document.addEventListener("deviceready", handleDeviceReady, false);

然后在你的回调中(在这种情况下为redirectToLocaleSpecificLogin),你可以进行重定向。

答案 1 :(得分:0)

大多数浏览器使用语言属性,IE使用 userLanguage

var lang = window.navigator.userLanguage || window.navigator.language;

这应该适用于IE,SAFARI,CHROME和FF

修改

JavaScript for detecting browser language preference此链接对此主题进行了更详细的讨论