2010-01-28 94 views
5

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

回答

9

“我也只好用力蟒蛇在gettext的命令”:

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

完成。

感谢leading me有Kentor :)

0

您必须调用xgettext才能将字符串提取到.pot文件中,然后运行msgmerge来更新.po文件。 gettext manual有所有的血淋淋的细节。

+0

我能弄清楚我遇到的问题。事情是,当修改语言时,我不得不用Poedit重新扫描所有文件。所以我必须先为该项目添加正确的路径,然后我必须将Python的解析器用于* .js文件。我还必须在gettext命令中强制python,否则Poedit会抱怨.js文件不被理解,并会尝试使用C/C++来解析它们。 – Kentor 2010-01-29 18:35:34

4

我觉得--language了xgettext的perl = --force-PO -o%Ø%C%K%F(用perl而不是蟒蛇)应该是一个更好的选择,因为Python会导致包含单引号(未终止的字符串错误)的javascript注释问题。

+2

我试过你的解决方案,警告没有显示。但一些翻译没有在js文件中找到(对于Python版本,他们被发现)...所以我更喜欢Python版本,即使有警告...... :( – Andron 2013-04-01 14:27:19

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,我是这样做的,以解析我的下划线模板。希望它有助于导致我真的很沮丧:)