LoginSignup
0
0

More than 3 years have passed since last update.

[node.js/Express] expressで多言語対応

Posted at
  • 以下のような仕様を想定する。
    • デフォルト
      • 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')}
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0