我正在研究网站内部化,它在堆栈中有 YUI3,所以最好使用 YUI intl 模块。阅读文档给出了利用 shifter builder 将 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的报告。将尝试调试并查看我在这里缺少的内容。