1

我正在使用 PhoneGap 2.2.0 中新的内置全球化支持,使用 navigator.globalization.getLocaleName 来确定设备区域设置是什么。然而,该应用程序只是停止并且微调器(由 jQuery Mobile 增强)只是无限期地旋转。我在 iOS 和 Android 上都进行了测试,结果相同。这是我的代码:

$('#home').live('pageinit', function()
{
var app_language = localValue('app_language');

//console.log('app_language variable holds: '+app_language);
if ( app_language === '' )
{
    var successCB = function(locale)
    {
        alert('success');
        //console.log('locale is: '+locale.value);
        window.localStorage.setItem('app_language', locale.value);
    };

    var failureCB = function(error)
    {
        if (error = Globalization.UNKNOWN_ERROR)
        {
            console.log('error getting locale');
        }
    };

    navigator.globalization.getLocaleName(successCB, failureCB);

}
else
{
    console.log('got this far');
    switch (app_language)
    {
    case 'en_CA':
        //console.log('using English dictionary');
        $.i18n.setDictionary(lang_english);
        break;
    case 'en_US':
        //console.log('using English dictionary');
        $.i18n.setDictionary(lang_english);
        break;
    case 'fr_CA':
        //console.log('using Canadian French dictionary');
        $.i18n.setDictionary(lang_french);
        break;
    default:
        //console.log('default to English dictionary');
        $.i18n.setDictionary(lang_english);
    }
}

$('#hit_to_begin').text($.i18n._('helper_text'));

});

如果我注释掉对 navigator.globalization.getLocaleName 的调用,它可以正常工作。iOS 和 Android 4.0+ 上的行为相同。我真的走到了尽头。

4

0 回答 0