私はウェブサイトの内部化に取り組んでおり、スタックに YUI3 があるため、そのために YUI intl モジュールを使用することをお勧めします。ドキュメントを読むと、シフター ビルダーを利用して Java プロパティの i18n ファイルを YUI3 intl 形式に変換するというアイデアが得られました (どちらも同じ構文を持っているため、YRB(.pres) と考えてください)。それから、次module/meta/module.json
のようなメタ ファイルを作成しました。
{
"modulename": {
"requires": [
"oop"
]
},
"lang": ["en"]
}
それに応じて、言語ファイルを次のように配置しますmodule/lang/modulename_en.pres
。
うまくいきませんでした。ビルド処理は成功しましたが、コンテキストが作成された lang フォルダーはありません。また、jsonのようなjavascriptバージョンを使用してみましたが、うまくいきませんでした。追加のステップが欠落していると思います。
UPD: コメントありがとうございます。メタに間違った構文があります。lang
プロパティは、言語ファイルの検索に関する修正された問題と同じレベルでrequires
ある必要がありますが、.pres ファイルを使用しようとするとエラーが発生します。出力は次のとおりです。
....
shifter [info] shifting 2 langs for module
fs.js:427
return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
^
Error: ENOENT, no such file or directory 'c:\\..\module\lang\module.js'
at Object.fs.openSync (fs.js:427:18)
at Object.fs.openSync (c:\Program Files\nodejs\node_modules\shifter\node_mod
ules\cpr\node_modules\graceful-fs\graceful-fs.js:68:26)
at Object.fs.readFileSync (fs.js:284:15)
at c:\Program Files\nodejs\node_modules\shifter\lib\module.js:424:26
at Array.forEach (native)
at Object.buildLang [as lang] (c:\Program Files\nodejs\node_modules\shifter\
lib\module.js:417:11)
at c:\Program Files\nodejs\node_modules\shifter\lib\module.js:709:33
at c:\Program Files\nodejs\node_modules\shifter\lib\stack.js:24:38
at c:\Program Files\nodejs\node_modules\shifter\lib\module.js:372:13
at c:\Program Files\nodejs\node_modules\shifter\node_modules\gear\node_modul
es\async\lib\async.js:190:13
また、レポートをshifter github repoに開きました。デバッグして、ここで何が欠けているかを確認しようとします。