11

我正在使用 gettext 为一个 php 项目做 i18n。在翻译由 id 替换的长短语时,我想使用自动注释功能给译者提示。我要获取的是以下po文件

#: full-path-to-file/index.phtml:3
#. a very long text which should replaced by _('foobar')
msgid "foobar"
msgstr ""

foobar通过这种方式,当翻译人员使用 POEdit 或程序员注释框中的一些模拟工具看到密钥时,他可以看到他应该翻译的内容。

我已经尝试使用此代码,但它不起作用

<?php
/// TRANSLATORS: a very long text which should replaced by _('foobar')
_('foobar');
?>

我是否遗漏了某些内容或自动评论对 php 不起作用?

甚至 Wikipedia 也提到了这个功能,我试图将他们的示例复制到 C 文件中,但即使使用 C 也无法让它工作。我使用的命令行是

xgettext -C -o - main.c

但生成的输出是

#: main.c:16
#, c-format
msgid "My name is %s.\n"
msgstr ""

所以我肯定错过了一些东西,我应该使用任何xgettext标志或特定版本来启用此功能。

4

1 回答 1

11

要从xgettext您的源中提取评论,您需要传递一个参数来告诉它要查找哪些评论。

文档中:

'<code>-c[tag]'
'<code>--add-comments[=tag]'</p>

在输出文件中放置以标记和前面的关键字行开头的注释块。如果没有标签,该选项意味着将所有注释块放在输出文件中的关键字行之前。

传递-c/or--add-comments=/作为参数将使其识别“三斜杠”格式。

于 2011-10-05T17:50:49.863 回答