我想在我的应用程序中做一些基本的 i18n
我将 i18n 插件(来自 require.js)加载到我的应用程序并创建了一个目录nls
,其中我有几个文件,例如project.js
main.js
我在文件中设置了默认位置,例如
config : {
i18n : {
locale : 'de-de'
}
}
我现在想使用我的视图/模板中的文件。有人可以向我解释这是如何完成的吗?模板设置在一个 template.js 文件中
我的观点:
define(['marionette', 'templates', 'i18n!nls/project'], function (marionette, templates, msg) {
return marionette.CompositeView.extend({
template : templates.project
});
});
我的模板:
<div class="container">
<div class="well">
<h2>Projects</h2>
</div>
</div>
有人可以向我解释如何在我的视图/模板中使用该文件吗?提前致谢!
编辑:
我通过一些尝试和错误找到了解决方案。当我通过 require.js tpl 加载模板时!插件如果我调用它们,我不需要编译它们require('tpl!templates/dashboard.tmpl')
。我可以简单地传递我加载的 i18n 文件'i18n!nls/dashboard'
。在 Marionette 中,视图默认呈现,所以我这样做了:
define(['marionette', 'templates', 'i18n!nls/dashboard'], function (Marionette, templates, msg) {
return Marionette.CompositeView.extend({
template : function () {
return templates.dashboard(msg);
},
initialize : function() {
}
});
});
i18n 插件的文件在这里得到了很好的解释: http ://requirejs.org/docs/api.html#i18n
我必须一步一步地做这个,首先我错过了根,然后我想知道为什么我的德语语言环境没有加载,但我只是忘记de-de : true
在根文件中设置。现在一切都像魅力一样运作