gpt4 book ai didi

使用 xgettext 的 Python 行号

转载 作者:行者123 更新时间:2023-12-01 05:40:03 26 4
gpt4 key购买 nike

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

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

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

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

在 Python 中,输入文件需要是什么样子? (注意:代码只需要适用于xgettext,而不适用于任何编译器或解释器。)

最佳答案

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

您只需为要翻译的注释选择一个前缀字符,用它作为注释的前缀,然后使用 -c 选项和您的字符前缀调用 xgettext。

例如,如果您使用前缀 ~,则上面的行可能是

#~ 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 [...]

关于使用 xgettext 的 Python 行号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17818432/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com