Многоязычное приложение HTML5 - PullRequest
7 голосов
/ 02 марта 2012

Я разрабатываю приложение HTML5 с CSS3 и jQuery.

У меня есть текст, который я хочу показать на языке пользователя. Ты знаешь, как я могу это сделать?

Это приложение будет работать на Blackberry Playbook и на других мобильных устройствах.

Я не знаю, как получить язык операционной системы пользователя или где я должен поместить свои строки локализации и т. Д.

Есть подсказка?

Ответы [ 2 ]

4 голосов
/ 02 марта 2012

Я храню свою локализованную строку в файлах JS (1 для каждого поддерживаемого языка).Ex.:

string-en.js:

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

string-fr.js:

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

И при запуске я загружаю нужный файл относительно языканавигатор:

 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);
    }

}

и использовать локализованную строку в приложении:

   html = MyApp.STR.Hi+' '+userName+' !';
0 голосов
/ 02 марта 2012

Я бы посоветовал попытаться определить язык браузера с помощью Javascript.Я не вижу прямого способа обнаружить его с помощью HTML.

Вот ссылка, которая решает проблему:

Есть ли способ обнаружить язык ОС с помощью JavaScript?

...