我正在使用Gettext.js库来本地化从 JS 文件生成的内容。现在的情况是,我必须手动创建和编写每个 po 文件。我知道我们可以使用 PoEdit 扫描 php 文件中的 gettext 字符串。那么,是否可以使用PoEdit扫描 JS 文件中的 gettext 字符串?
4 回答
通过在 PoEdit 中创建一个新的 python 语言解析器来实现这一点。
文件 > 首选项 > 解析器 > 新建
语:
JS
扩展名列表:
*.js
解析器命令:
xgettext --language=Python --force-po -o %o %C %K %F
关键字列表中的项目:
-k%k
输入文件列表中的项目:
%f
源代码字符集:
--from-code=%c
我在搜索这个时找到了这个教程,这帮助我达到了这里教程的情况>>
实际上教程是法语的,链接是谷歌翻译的(英语)。
从xgettext 0.18.3版本开始,您可以使用JavaScript 作为语言参数。
这个版本的 xgettext 至少从 1.6.2 版开始在 Poedit 中使用。
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
到文件扩展名列表并在解析器命令字段中添加--language=Perl
之后。xgettext
这对我有用,我能够以这种方式从 JS 文件中获取新字符串。
虽然我不知道 gettext.js 是如何工作的,但更好的方法可能是将 PO 文件转换为原生 JavaScript 文件格式。
xgettext
现在原生支持 JavaScript,所以命令很简单:
xgettext --output=output.pot --language=JavaScript *.js