エクスプレスで同じレイアウトの同じコンテンツの複数のバージョン/言語を実装する最良の方法は何でしょうか。多言語エクスプレスアプリ
これを行うだけですか?
app.get("/", function(req, res) {
res.render(language + "/index");
});
もっとスマートな方がいいですか?
エクスプレスで同じレイアウトの同じコンテンツの複数のバージョン/言語を実装する最良の方法は何でしょうか。多言語エクスプレスアプリ
これを行うだけですか?
app.get("/", function(req, res) {
res.render(language + "/index");
});
もっとスマートな方がいいですか?
言語ごとに1つのテンプレートを使用すると非常に迅速に手に入りますが、多くのコンテンツ(テンプレートに入れる少量の "ロジック"あまりにも)。多くのアプリケーションでは、国際化のためにgettextというツールを使用しています。それにはnode.jsライブラリがありますhttps://github.com/DanielBaulig/node-gettext
また、i18n-nodeもあります。 express jともう少し統合されているようです。
私は、en.js、fr.jsのようなlangフォルダにjsonオブジェクトを定義できると思っていました。このjsonファイルには、ユーザーの言語設定に従ってテンプレートにレンダリングするキー値のペアが含まれています。
そして、すべてのテンプレートを呼び出すために、res.localsにこのfr.jsなどを保存できます。
これは適していますか?
i18n-nodeは、使用する必要がある最も簡単で優れたモジュールです。 Javascriptコードで直接使用することも、Jade/HandlebarテンプレートでExpress jを使用することもできます。
なぜi18nを使用する必要がありますか?あなたのセットアップに応じて、ヘッダー、クッキーやクエリパラメータでブラウザからロケールの
en.json
が自動的に生成されます。これは、新しい翻訳の作成を開始するためのマスターファイルとして機能します。__('Hello %s', 'Marcus')
戻りHallo Marcus
感謝を!私はi18nノードをとる。 :) – buschtoens