Gettext自动注释生成

Fab*_*bio 10 php comments gettext internationalization po

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

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

通过这种方式,当他foobar在程序员评论框中使用POEdit或某些模拟工具查看密钥时,翻译人员可以看到他应该翻译的内容.

我试过这个代码,但它不起作用

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

我错过了什么或自动评论只是不适用于PHP?

即使维基百科提到这个功能,我也试图在C文件中复制他们的例子,但即使使用C,我也无法使用它.我使用的命令行是

xgettext -C -o - main.c
Run Code Online (Sandbox Code Playgroud)

但生成的输出是

#: main.c:16
#, c-format
msgid "My name is %s.\n"
msgstr ""
Run Code Online (Sandbox Code Playgroud)

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

Joh*_*ess 9

要从xgettext源中提取提取注释,您需要传递一个参数来告诉它要查找的注释.

文档:

' -c[tag]'
' --add-comments[=tag]'

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

传递-c/--add-comments=/作为参数将使其识别"三斜杠"格式.

  • 请注意,如果您使用 `-c/` 来添加诸如 `/// 提示翻译器` 之类的注释,它也会选择 `// x/y is always &gt; 2 here`。xgettext 将发出 `#. y 在此示例中始终 &gt; 2 到 .pot 文件中。 (2认同)