翻訳をサポートする必要があるRequireJS上に構築された単一ページのMarionetteアプリケーションがあります。ロケールファイルを動的にロードするRequirejsを使用して
私の目標は、言語ごとに辞書ファイルを用意し、ログインしたユーザーの設定に基づいて関連ファイルを読み込むことです。
ほとんどのユーザーは英語を使用するため、英語の辞書をビルド中に(r.jsを使用して)アプリケーションにバンドルしたいと思っています。
私は基本的にjed.jsをラップ小さな翻訳モジュール、(私は国際化のために使用しているライブラリを)書いた:
//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();
});
あなたが見ることができるように、ロケールデータは静的なファイルからロードされます。 ロケールをTranslatorコンストラクタに渡し、それに基づいて正しいJSONファイルをロードしたいと考えています。
ビルドされたプロジェクトに英語のJSONをバンドルしておくとどうしたらいいですか?
おかげで、私は少し違う何かをやってしまった:
説明は以下のコードです。あなたは私の答えを以下に見ることができます – elanh