1
我有一個I18n應用程序,它實際上通過返回JSON的ajax調用來加載語言環境的翻譯。使用EmberJS進行本地化
現在,它將JSON放入Em.STRINGS中。在HTML中,我有一個車把標籤,上面寫着這樣的事情
{{translate context key="LOGOUT_LABEL"}}
我已經寫在我的JS一個幫手,看起來像這樣
Ember.Handlebars.registerHelper('translate', function(property, options) {
var key = options.hash && options.hash.key,
replacants = options.hash && options.hash.values, value;
if (key) {
value = Em.String.loc(key, replacants ? Em.String.w(replacants) : []);
return value ;
}
});
在運行此,我的HTML首先被繪製,然後發生AJAX調用。所以,翻譯有效地不顯示!我該如何解決?
這裏的小提琴網址:http://jsfiddle.net/infinityat0/gBa7T/
嗨,@mavilein非常感謝您的回覆。我知道AJAX調用不會在JSFiddle中工作(爲了清楚起見,我只是保留它)。另外,如果我只保留html中的json字符串,它將起作用(因爲它基本上意味着我已經預先獲取了翻譯並在init中應用了),我真正想要的是在AJAX調用中獲取翻譯, JSON添加到Em.Strings,然後完成之後,由於Em.STRINGS中的變化,把手會自行更新。 – user661905 2013-02-27 18:10:37
爲什麼不使用ember-i18n?它處理這類問題。 – mavilein 2013-02-27 21:41:09