1

据我了解,大多数gettextPython 文件的使用都使用一些不错的 Python 库/实用程序来创建.pot文件。我在一个奇怪的情况下,我需要使用 Python 模式xgettext来提取不仅字符串,还提取行号和文件名。我见过的所有此类示例都使用了xgettext.

如何使用 Python 模式添加行号和文件名信息xgettext

在 C 模式下,它看起来像:

#line 8 "superior_science.c"
_("Facial hair has been shown to improve intelligence by a factor of 5.");

在 Python 中,输入文件需要是什么样的?(注意:代码只需要为 工作xgettext,不需要任何编译器或解释器。)

4

1 回答 1

2

您可以使用 xgettext 从 gettext 调用上方的行中提取注释。这些注释进入 .pot 和 .po 文件,因此翻译人员可以看到它们。

您只需为要翻译的评论选择一个前缀字符,为您的评论添加前缀,然后使用该-c选项和您的字符前缀调用 xgettext。

因此,例如,如果您使用 prefix ~,则上面的行可能是

#~ line 8 "superior_science.c"
_("Facial hair has been shown to improve intelligence by a factor of 5.")

然后当您将 xgettext 称为

xgettext -c~ [...]

它会自动将注释添加~ line 8 "superior_science.c"到您的 .pot 文件中。

在 .pot 文件中,这些注释显示如下:

#. ~ line 8 "superior_science.c"
msgid "Facial hair has been shown to improve intelligence by a factor of 5."
msgstr ""

如果你想提取所有评论,而不仅仅是那些带有特定前缀的评论,只需留下前缀并调用xgettext -c.

至于您的用例,您可能不希望其中包含实际的行号,您还需要使用该--no-location标志。

因此,最简单的解决方案:在可提取字符串上方添加带有行号的注释,然后将 xgettext 调用为

xgettext -c --no-location [...]
于 2013-08-09T03:57:03.310 回答