Установка RequireJS локали i18n динамически

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

Плагин работает хорошо, если вы используете navigator.language для определения предпочтительного языка пользователя, но в моем приложении язык пользователя хранится в базе данных на сервере. Поэтому мне нужно установить локаль во время выполнения:

require.config({
    config: {
        i18n: {
            locale: userLocale
        }
    }
});

Итак, мне нужен умный способ настройки userLocale до того, как RequireJS загрузит мое приложение. Кто-нибудь знает, что будет лучшим способом добиться этого? Возможности включают в себя:

1) Установка userLocale за пределами моего приложения, не в AMD:

//run Ajax call to determine user's localization preferencess
var Localization = Localization || getUserLocalization(); 

//and then...
require.config({
    config: {
        i18n: {
            locale: Localization.userLocale
        }
    }
});

require(['app']);

Это немного огорчает меня, так как означает, что некоторые из моих приложений будут вне RequireJS и, следовательно, будут неопрятными. Это также означает, что все настройки локализации пользователя (часовой пояс, формат даты, числовой формат) будут храниться в глобальном пространстве имен.

2) Наличие отдельного вызова require для получения настроек локализации

Я не уверен, как это работает, но возможно:

var Localization = require(['localization']);

require.config({
    config: {
        i18n: {
            locale: Localization.userLocale
        }
    }
});

require(['app']);

Возможно, это не сработает из-за асинхронности? Кроме того, app не будет иметь доступа к Localization object, поэтому его все равно нужно хранить как глобальную переменную.

Кто-нибудь может увидеть хорошее решение этой проблемы? Кто-нибудь использовал плагин RequireJS i18n, чтобы сделать что-то подобное?

7 голосов | спросил Simon Adcock 21 Jpm1000000pmTue, 21 Jan 2014 15:13:48 +040014 2014, 15:13:48

0 ответов


Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132