如果您使用 require 例如,您可以将语言文件创建为对象:
locale/en_gb.js
define({
buttons: {
ok: 'Ok',
error: 'Error',
prompts: {
saveChanges: 'You have unsaved changes. Would you like to save them?',
quit: 'Are you sure you want to quit?'
}
},
pages: {
home: 'Home'
contact: 'Contact'
}
});
您有不同语言的此类语言环境文件。
在您的扩展视图中,您可以创建一些这样的方法:
localeBase: null,
currentLocale: null,
loadLocale: function(localeName) {
require('locale/'+localeName, function(Locale) {
this.currentLocale = Locale;
});
},
l: function(lookupStr) {
// Lookup 'lookupStr' in 'this.currentLocale'
}
该l
方法采用带.
注释的查找字符串,例如:
"pages.home"
返回"Home"
或者如果localeBase
设置为:
"buttons"
然后,如果字符串以 a 开头.
:
".prompts.quit"
它将相对于localeBase
(如果它不是从 AKA 绝对查找开始的点查找开始)进行查找。
请注意,这localeBase
不是一个必要的概念,它取决于您的偏好。
在您的View
render
方法中,您将视图传递为template context
:
var html = myTemplateRenderer_Function(this);
this.el.html(html);
然后,您的模板文件可以访问该l
方法,以便您可以执行以下操作:
<button value="<%= l('buttons.ok') %>" />