Локализация в веб-приложении с использованием JavaScript и JSON - PullRequest
17 голосов
/ 23 февраля 2011

Я пытаюсь настроить скрипт для автоматической локализации веб-приложения. Поскольку веб-приложение предназначено для использования автономного кэширования в 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 ]

6 голосов
/ 21 декабря 2012

Вы можете использовать Wikimedia's JQuery.i18n .

1 голос
/ 23 февраля 2011

http://keith -wood.name / localisation.html

https://github.com/coderifous/jquery-localize

У меня нет никакого личного опыта, но оба они, как представляется, достаточно хорошо задокументированы.

0 голосов
/ 07 июля 2012

В зависимости от ваших потребностей, функция jquery-localize может работать хорошо. Если вам нужна более сложная структура, которая отражает структуру вашего сайта, библиотека локализации может быть более полезной: https://github.com/kflorence/localize

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...