Search code examples
javascriptcordovaglobalization

window.location.replace wtih Phonegap


I try setup a JS function to auto load a index page in a different language, regardig the setting device o my reader.

I try with this...but don't work :

<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>

Is this method can be use, or do I have to consider other option to deal with my multilanguage app ?

Thanks in advance for any help.


Solution

  • You need to use the callback of 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);
    

    Then inside of your callback (redirectToLocaleSpecificLogin in this case), you can do your redirects.