0

我正在研究网站内部化,它在堆栈中有 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的报告。将尝试调试并查看我在这里缺少的内容。

4

1 回答 1

0

似乎国际模块文档指的是除 git one 之外的其他一些移位器的内部版本,或者可能该功能正在开发中。尽管如此,我还是需要那个功能,而且到目前为止有什么用。

UPD:感谢您的评论,我确实瞥见了前移位器时代的构建器,并在此处以 JavaScript 格式找到了 yrb2json 解析器。似乎这些年来我只有一个人对这个功能感兴趣到 nodejs shifter。

于 2013-08-18T22:43:43.750 回答