Meteor サイトをオランダ語と英語の 2 つの言語をサポートするように変換しました。これを行うために、テンプレート用に 2 つのフォルダー (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() {}
本番環境で使用されるこのコードの例については、クライアント側のブログ コード を参照してください。
多言語サイトの目標を達成しながら、このアプローチを回避するエレガントな方法は何ですか?