我找到了这个很酷的 js gettext 库 -> http://code.google.com/p/gettext-js/但我不明白如何实现它。我正在使用 poedit 来编辑翻译,当我签出项目并运行演示文件时,我可以看到它可以工作,但是当我对文本进行更改时,.po 文件没有得到更新,我看不到新文本。有人知道吗?谢谢!
4 回答
“我还不得不在 gettext 命令中强制使用 python”:
- 文件|首选项|解析器
- 编辑 Python
- 编辑“扩展列表..”:
*.py;*.js
- 编辑“解析器推荐:”
xgettext --language=Python --force-po -o %o %C %K %F
完毕。
谢谢你带我去Kentor :)
我认为 xgettext --language=perl --force-po -o %o %C %K %F (使用perl而不是python)应该是一个更好的选择,因为python会导致包含单引号的javascript注释出现问题(未终止字符串错误)。
我最初尝试使用 Python 和 Perl 这两种配置,但使用了一些复杂的下划线模板、嵌套引号和双引号、转义字符等。两个解析器都报告了大量错误的过时字符串,因此我无法从源代码正确更新 .pot 或 .po 文件.
我也没有成功测试 http://code.google.com/p/gettext-js/
经过大量试验和错误后,我发现我可以使用链式解析,并且在 poedit 1.5.7 上运行良好。这些是应该同时启用以获得最佳匹配的配置参数
从Mac版本的Library/Preferences/net.poedit.Poedit.cfg中提取,您可以简单地复制并粘贴到您的对话框中,否则
[Parsers/js]
Extensions=*.js;*.html
Command=xgettext --language=Python --force-po -o %o %C %K %F
KeywordItem=-k%k
FileItem=%f
CharsetItem=--from-code=%c
[Parsers/PHP]
Extensions=*.php;*.js;*.html
Command=xgettext --language=PHP --force-po -o %o %C %K %F
KeywordItem=-k%k
FileItem=%f
CharsetItem=--from-code=%c
请注意,您可能不需要在扩展中包含 *.html,我这样做是为了解析我的下划线模板。希望它有所帮助,因为这对我来说真的很令人沮丧:)
您必须调用xgettext
以将字符串提取到 .pot 文件中,然后运行msgmerge
以更新 .po 文件。该gettext
手册包含所有血淋淋的细节。