2012-03-02 20 views
7

CSS3 ve jQuery ile bir HTML5 uygulaması geliştiriyorum.Çoklu dil HTML5 uygulaması

Kullanıcı dilinde göstermek istediğim bazı metinler var. Bunu nasıl yapabileceğimi biliyor musun?

Bu uygulama Blackberry Playbook ve diğer mobil cihazlarda çalışacaktır. Ben vs.

Herhangi ipucu benim lokalize dizeleri, koymalıdır nereye

Ben kullanıcı işletim sistemi dilini almak için biliyorum, ya yok?

cevap

4

I (desteklenen her dil için 1) JS dosyaları benim yerelleştirilmiş dize saklamak: Burada

sorununu gideren bir bağlantıdır. Ör. :

dize en.js:

MyApp.STR = {"Hi":"Hi","By":"By", etc.}; 

dize fr.js:

MyApp.STR = {"Hi":"Salut","By":"Par", etc.}; 

Ve başlangıçta, ben gezgin diline ilişkin doğru dosyası yüklemek:

loadLocalizedString: function(langParam/*optional*/) { 
    var language = window.navigator.language, lang; 
    console.log('loadLocalizedString with Navigator Language: ' + language); 
    if (!langParam) { 
     //Try to guess the best suited language 
     if(language) { 
      lang = language.substring(0,2); 
     } else { 
      lang = 'en'; 
     } 
     if($.inArray(lang, this.SUPPORTED_LANGUAGE) <= -1) { 
      lang = 'en';//If the language is not available : english by default 
     } 
    } else { 
     lang = langParam; 
    } 

    console.log('language: ' + lang); 

    this.loadString('lib/string-'+lang+'.js'); 
}, 
    SUPPORTED_LANGUAGE : ["en", "fr", "es", "it"], 
loadString:function(fileName) { 
    try { 
     $.ajaxSetup({async: false}); 
     $.getScript(fileName);//We don't use the async callback, because we need the translation in the next method 
     $.ajaxSetup({async: true}); 

    } catch (e) { 
     console.error('Error while loading : ' + fileName); 
    } 

} 

Uygulamadaki yerelleştirilmiş dizeyi kullanmak için:

html = MyApp.STR.Hi+' '+userName+' !'; 
İlgili konular