Локализация в веб-приложении с использованием JavaScript и JSON
Я пытаюсь настроить скрипт для автоматической локализации веб-приложения. Поскольку веб-приложение предназначено для использования автономного кэширования в HTML5, оно должно работать в автономном режиме. Таким образом, JavaScript кажется мне лучшим вариантом.
Я бы предпочел поместить все строки для всех локализаций в один файл JSON следующим образом:
{
"en": {
"application_description": "This is the application's description in English.",
"application_name": "This is the application's name in English."
},
"ja": {
"application_description": "This is the application's description in Japanese.",
"application_name": "This is the application's name in Japanese."
}
}
Я думал о том, чтобы дать всем элементам, которые будут локализованы, настраиваемый атрибут, связанный с предполагаемым сообщением (например: i18n="application_name").
Я могу получить язык браузера, используя navigator.language
хотя я думаю, что некоторые результаты придется разделить только на первый раздел (например, "en-US", "en-GB" и "en-AU" должны обозначать "en").
Тем не менее, мои знания JavaScript являются базовыми, и хотя я думал об этом, я не могу определить, как на самом деле реализовать это.
Большое спасибо всем, кто может предложить какие-либо советы или примеры!
3 ответа
Вы можете использовать JQuery.i18n Викимедиа.
- Документация: https://github.com/wikimedia/jquery.i18n/wiki/API
- Демонстрация: http://thottingal.in/projects/js/jquery.i18n/demo/
- Синтаксис сообщения: https://github.com/wikimedia/jquery.i18n/wiki/Message-Syntax
http://keith-wood.name/localisation.html
https://github.com/coderifous/jquery-localize
Я не имею никакого личного опыта в обоих, но оба, кажется, довольно хорошо задокументированы.
В зависимости от ваших потребностей, функция jquery-localize может работать хорошо. Если вам нужна более сложная структура, которая отражает структуру вашего сайта, библиотека локализации может быть более полезной: https://github.com/kflorence/localize