- 以下のような仕様を想定する。
- デフォルト
- PCで設定している言語を使用。
- [インターネットオプション] → [言語] → [言語の優先順位の設定] → [Windowsの表示言語] で設定。
- ログイン後
- ログインユーザに紐づく言語設定に基づき表示言語を制御する。
- 以下では省略しているが、req.session.locale を変更すると任意のタイミングから言語切替えが出来るイメージ。
- デフォルト
- i18nをインストールする
npm install i18n --save
- 全般的な設定
appSetting.js
var i18n = require('i18n');
...
/**
* req.session.locale の言語設定で表示言語を切替える
*/
var setI18n = function (req, res, next) {
if (req.session.locale) {
i18n.setLocale(req, req.session.locale);
}
next();
}
...
// i18n setup.
i18n.configure({
locales: ['ja', 'en'],
defaultLocale: 'ja',
directory: __dirname + '/locales',
objectNotation: true
});
app.use(i18n.init);
...
- localesディレクトリを作成して、その下に言語に応じた辞書ファイルを置く。
locales/ja.json
{
"common": {
"title": "XXXXシステム"
},
}
locales/en.json
{
"common": {
"title": "XXXX System"
},
}
- jade 上の記述
- 以下のように json の key を設定する。
xxx.jade
#{__('common.title')}