rag*_*lka 6 javascript python gettext xgettext
我有一个运行良好的命令,可以从我的所有.js和.html文件(仅是Underscore模板)中提取字符串。但是,它似乎不适用于翻译者注释。
例如,我的一个.js文件中有此文件:
/// TRANSLATORS: The word "manual" stands for manual process
gettext("manual");
Run Code Online (Sandbox Code Playgroud)
使用以下命令:
find . -iname '*.html' -o -iname '*.js' | xargs xgettext --language=Python --from-code=utf-8 --keyword=pgettext:1c,2 --keyword=npgettext:1c,2,3 --add-comments=/
Run Code Online (Sandbox Code Playgroud)
xgettext应该从.js文件中提取注释,并将其放入我的.po文件中,如下所示:
#. TRANSLATORS: The word "manual" stands for manual process
#: tax.js:200
msgid "manual" msgstr ""
Run Code Online (Sandbox Code Playgroud)
但事实并非如此。我在这里做错了吗,还是翻译注释在Python模式下不起作用?
编辑:我已经接受John Flatness的回答作为正确的答案,但是我确实找到了一种解决方法,使我仍然可以使用Python模式并提取翻译注释。这不是完美的,因为它实际上在注释中留下了一些语法:
在我的tax.js档案中:
/*
# This is a translator comment */
gettext("What is this?");
Run Code Online (Sandbox Code Playgroud)
运行以下命令:
find . -iname '*.html' -o -iname '*.js' | xargs xgettext --language=Python --from-code=utf-8 --keyword=pgettext:1c,2 --keyword=npgettext:1c,2,3 -c
Run Code Online (Sandbox Code Playgroud)
.po文件中的结果:
#. This is a translator comment */
#: tax.js:201
msgid "What is this?"
msgstr ""
Run Code Online (Sandbox Code Playgroud)
如您所见,唯一的问题是:
*/留在翻译者注释中不过,在大多数情况下,这并不是什么大问题。