我終於得到了我的PhoneGap/Backbone/Handlebars使用i18next.js本地化 - 種。i18next和handlebar的變量替換
我目前想知道如何獲得與嵌入式句柄表達式的HTML本地化和與Handlebars編譯。舉個例子,我想是這樣的:
Welcome, {{this.name}}. We've been expecting you.
變成:
Welcome, Bob. We've been expecting you.
這還沒有定位很容易。但通過在文檔(這裏:http://i18next.com/pages/doc_templates.html)中描述的i18next模板運行...
// handlebars helper from i18next
Handlebars.registerHelper('t', function(i18n_key) {
var result = i18n.t(i18n_key);
return new Handlebars.SafeString(result);
});
//Handlebars string:
{{t 'view.WelcomeMessage'}}
// translation.json file
{ "view":
{
"WelcomeMessage": "Welcome, {{this.name}}. We've been expecting you."
}
}
不幸的是,這變成本地化時,以下幾點:
Welcome, {{this.name}}. We've been expecting you.
如何得到字符串本地化並有嵌入式表達式編譯?
我不知道如何\ _ \ _ name__被替換。幫助器調用不應該是:'{{tr key ='view.WelcomeMessage'name = this.name}}'? – gentiane
@gentiane:看起來我也沒有。 'tr'助手查看通過'this'參數傳入的對象,並提取相應的屬性值。您可以通過在最後傳入另一個值來覆蓋它們,但如果對象具有用於變量替換的屬性,則不需要。我更新了我的答案,將「this」對象與「name」屬性相加。 – eb1