私は翻訳に使用しており、 ember-i18n wikiember-i18n
で説明されているようにライブで翻訳をフェッチしようとして
います。翻訳をバックエンドからロードする代わりに、静的ファイルからロードします。ファイルをフォルダーに配置し、サービスを使用してそれらを取得します。lang.json
/public/i18n/
export default Ember.Service.extend({
ajax: inject.service(), // ember-ajax service
i18n: inject.service(),
fetch(lang) {
if (isEmpty(lang) || !ENV.APP.languages.contains(lang)) {
lang = "en";
}
let url = "http://" + window.location.host + "/i18n/" + lang + ".json";
return new Ember.RSVP.Promise((resolve, reject) => {
this.get("ajax").request(url, {
type: "GET"
}).then((json) => {
this.get('i18n').addTranslations(lang, json);
resolve(lang);
}, (params) => {
Ember.Logger.debug(params);
reject();
});
});
}
});
lang.json ファイルには、json のみが含まれています。
{
"key.foo": "Foo",
"key.bar": "Bar"
}
開発では魅力的に機能しますが、テストの実行に問題があります。取得した json にはlang.json
ファイルのコンテンツが含まれていますが、サービスには読み込まれていませんi18n
(たとえば、-s
I see missing translation xxx
Everywhere でテストを実行すると、.
さらに、テストの実行はますます遅くなり、10 ~ 15 回のテストの後、タイムアウト エラーがスローされます。
してはいけないことをしているのですか、それとも何か足りないことがありますか? ありがとう
私が使用している:
ember-cli: 2.6.2
ember: ~2.6.0
ember-i18n: ~4.2.1