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