我将我们的 Meteor 网站转换为支持两种语言,荷兰语和英语。为此,我为我们的模板(en 和 nl)创建了两个文件夹,并将所有内容连接到我们的模板系统,以便路由器根据您所在的站点正确地提供服务。主体模板是动态的:
Template.body.content = function() {
var lang = Session.get("lang") == "en" ? "en_" : "";
var page = Session.get("page") || "home";
// if the template for the current language doesn't exist,
// fall back to Dutch version or show a 404
var template = Template[lang + page] || Template[page] || Template[lang + "error404"];
return template();
}
一切都很好,除了我必须编写以下内容以向两种语言公开模板值:
Template.en_foo.bar = Template.foo.bar = function() {}
有关生产中使用的此代码的示例,请参阅我们的客户端博客代码。
在实现多语言网站目标的同时,避免这种方法的优雅方法是什么?