0

私はウェブサイトの内部化に取り組んでおり、スタックに 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に開きました。デバッグして、ここで何が欠けているかを確認しようとします。

4

1 に答える 1