1

デバイスのロケールを把握するために、navigator.globalization.getLocaleName を使用して、PhoneGap 2.2.0 の新しい組み込みグローバリゼーション サポートを使用しています。ただし、アプリは停止するだけで、スピナー (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