首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有xgettext的Python行号

带有xgettext的Python行号
EN

Stack Overflow用户
提问于 2013-07-23 18:41:22
回答 1查看 562关注 0票数 1

据我理解,大多数使用gettext与Python一起使用一些不错的Python /实用工具来创建.pot文件。在一种奇怪的情况下,我需要使用xgettext的Python模式来提取字符串,而且还需要提取行号和文件名。我看到的所有这样的例子都使用了xgettext以外的进程。

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

在C模式下,如下所示:

代码语言:javascript
复制
#line 8 "superior_science.c"
_("Facial hair has been shown to improve intelligence by a factor of 5.");

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-09 03:57:03

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

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

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

代码语言:javascript
复制
#~ line 8 "superior_science.c"
_("Facial hair has been shown to improve intelligence by a factor of 5.")

然后,当您调用xgettext作为

代码语言:javascript
复制
xgettext -c~ [...]

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

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

代码语言:javascript
复制
#. ~ 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作为

代码语言:javascript
复制
xgettext -c --no-location [...]
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17818432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档