5

我找到了这个很酷的 js gettext 库 -> http://code.google.com/p/gettext-js/但我不明白如何实现它。我正在使用 poedit 来编辑翻译,当我签出项目并运行演示文件时,我可以看到它可以工作,但是当我对文本进行更改时,.po 文件没有得到更新,我看不到新文本。有人知道吗?谢谢!

4

4 回答 4

9

“我还不得不在 gettext 命令中强制使用 python”:

  1. 文件|首选项|解析器
  2. 编辑 Python
  3. 编辑“扩展列表..”:
  4. *.py;*.js
  5. 编辑“解析器推荐:”
  6. xgettext --language=Python --force-po -o %o %C %K %F

完毕。

谢谢你带去Kentor :)

于 2010-02-18T05:30:22.640 回答
4

我认为 xgettext --language=perl --force-po -o %o %C %K %F (使用perl而不是python)应该是一个更好的选择,因为python会导致包含单引号的javascript注释出现问题(未终止字符串错误)。

于 2011-05-04T14:25:36.630 回答
0

我最初尝试使用 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,我这样做是为了解析我的下划线模板。希望它有所帮助,因为这对我来说真的很令人沮丧:)

于 2013-10-15T17:32:02.913 回答
0

您必须调用xgettext以将字符串提取到 .pot 文件中,然后运行msgmerge以更新 .po 文件。该gettext手册包含所有血淋淋的细节。

于 2010-01-28T05:18:01.930 回答