У меня есть одностраничное приложение Marionette, построенное на RequireJS, которое должно поддерживать переводы.
Моя цель - иметь файл словаря для каждого языка и, основываясь на конфигурации пользователя, вошедшего в систему, загрузить соответствующий файл.
Поскольку большинство пользователей будут использовать английский язык, я хочу связать словарь английского языка с приложением во время сборки (используя r.js).
Я написал небольшой модуль Translator, который в основном является оболочкой jed.js (библиотека, которую я использую для i18n):
//in myTranslator.js
define(function (require) {
"use strict";
var Jed = require("jed");
var localeData = require("json!locales/en_US.json");
var Translator = function () {
var i18n = new Jed({
"domain": "messages",
"locale_data": localeData
});
return i18n;
};
return Translator;
});
//in app.js
define(function(require){
var Translator = require("myTranslator");
var translator = new Translator();
});
Как видите, данные локали загружаются из статического файла. Я хочу иметь возможность передать языковой стандарт конструктору переводчика и на его основе загрузить правильный файл JSON.
Как это можно сделать вместе с сохранением английского JSON в комплекте со встроенным проектом?