使用gettext翻译.js文件

时间:2010-01-28 05:13:31

标签: javascript gettext poedit

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

4 个答案:

答案 0 :(得分:9)

“我还必须在gettext命令中强制使用python”:

  1. 文件|偏好|解析器
  2. 编辑Python
  3. 修改“扩展名列表”:
  4. *.py;*.js
  5. 编辑“Parser推荐:”
  6. xgettext --language=Python --force-po -o %o %C %K %F
  7. 完成。

    感谢Kentor的leading me:)

答案 1 :(得分:4)

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

答案 2 :(得分:0)

您必须调用xgettext才能将字符串解压缩到.pot文件中,然后运行msgmerge来更新.po文件。 gettext manual包含所有血腥细节。

答案 3 :(得分: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,我这样做是为了解析我的下划线模板。希望它有助于使我真的感到沮丧:)