如何使用 poedit 从 js 文件生成 po 文件
Posted
技术标签:
【中文标题】如何使用 poedit 从 js 文件生成 po 文件【英文标题】:how to generate po file from js file using poedit 【发布时间】:2013-05-09 13:39:36 【问题描述】:我正在使用 Gettext.js 库来本地化我从 JS 文件生成的内容。现在的情况是,我必须手动创建和编写每个 po 文件。我知道我们可以使用 PoEdit 扫描 php 文件以获取 gettext 字符串。那么,是否可以使用 PoEdit 扫描 JS 文件中的 gettext 字符串?
【问题讨论】:
【参考方案1】:通过在 PoEdit 中创建一个新的 Python 语言解析器来实现这一点。
文件 > 首选项 > 解析器 > 新建
语言:
JS
扩展列表:
*.js
解析器命令:
xgettext --language=Python --force-po -o %o %C %K %F
关键字列表中的项目:
-k%k
输入文件列表中的项目:
%f
源代码字符集:
--from-code=%c
我在搜索这个时发现了这个教程,这帮助我达到了Tutorial Here>>的情况
实际上教程是法语的,链接是谷歌翻译的(英语)。
【讨论】:
当我将--language=Python
更改为 --language=C
时,这对我有用【参考方案2】:
xgettext 0.18.3版本开始,可以使用javascript as the language parameter。
至少从 1.6.2 版本开始,Poedit 就使用了这个版本的 xgettext。
【讨论】:
【参考方案3】:xgettext命令行程序用于扫描源码,可以解析以下语言:
C、C++、ObjectiveC、Shell、Python、Lisp、EmacsLisp、librep、Scheme、Java、C#、awk、Tcl、Perl、PHP、GCC 源代码、Glade
虽然 JavaScript 没有被列为一门语言,但我只是尝试了一些,Perl 确实有效。试试这个:
echo " testFunc('foo');" > test.js;
xgettext --keyword=testFunc --output=- test.js --language="perl";
要从 POEdit 执行此操作,请打开 Preferences > Parsers > Perl
将 ;*.js
添加到文件扩展名列表并在解析器命令字段中的 xgettext
之后添加 --language=Perl
。这对我有用,我可以通过这种方式从 JS 文件中获取新字符串。
虽然我不知道 gettext.js 是如何工作的,但更好的方法可能是convert PO files to a native JavaScript file format。
【讨论】:
【参考方案4】:xgettext
现在原生支持 JavaScript,所以命令很简单:
xgettext --output=output.pot --language=JavaScript *.js
【讨论】:
以上是关于如何使用 poedit 从 js 文件生成 po 文件的主要内容,如果未能解决你的问题,请参考以下文章