基本的な使用の流れ
yarn add i18next i18next-node-fs-backend
public/i18n.js
など適当に作り
- l10n 文字列を取り出したいソースで
const i18n = require('./i18n.js')
して
- 必要なら
await i18n.changeLanguage('ja-JP')
のように l10n 先を実行時に設定する仕込みをして
i18n.t('hoge')
とすると i18next で l10n した文字列を取り出せます
- i18next の options で渡す
loadPath
に JSON で { "hoge": "ほげ" }
のように key-value 的に l10n リソースを定義追加します。saveMissing
を true
にしておけば addPath
で与える missing 用のファイルへ l10n リソースが未定義で実行時に要求された文字列のリストが保存されます。
public/i18n.js
const i18n = require("i18next");
const i18n_backend = require("i18next-node-fs-backend");
const path = require("path");
const options = {
lng: "en-US",
initImmediate: false,
backend: {
loadPath: path.resolve(__dirname, "..", "i18n/{{lng}}.json"),
addPath: path.resolve(__dirname, "..", "i18n/{{lng}}.missing.json"),
jsonIndent: 2,
},
saveMissing: is_dev,
whiteList: [
"en-US",
"ja-JP",
],
};
i18n.use(i18n_backend);
if (!i18n.isInitialized) i18n.init(options);
module.exports = i18n;
i18n/ja-JP.json
の例
- Note: ファイル名と配置は i18next へ与える options で任意に設定できるのでお好みで。
{ "hoge": "ほげ" }
参考