我想在我的源文件中放置关键字和注释。
gettext 的关键字文档说:如果 keywordspec 的格式为 'id:argnum...,"xcomment"',则 xgettext 在从指定的参数字符串中提取消息时,会将提取的注释 xcomment 添加到消息中。
我找不到任何样本来帮助我解决这个问题。
这是我的 X-Pedit-KeywordsList header ,
"X-Poedit-KeywordsList: __;_ex;\n"
这是我的 php 源代码中的示例行:
_ex("unlock_level", "Available at level #.")
我希望输出是:
# "Available at level #."
msgid "unlock_level"
我应该如何编辑我的关键字列表标题(和/或来源)?
最佳答案
关键字规范(bourne shell 语法!)的示例是:
xgettext --keyword='_ex:1,"my comment"' so.php
很遗憾,这不是您想要的。它产生这个 po 条目:
#. my comment
#: so.php:3
msgid "unlock_level"
msgstr ""
上面的命令行转换为“提取第一个参数所有对 _ex() 的调用作为 msgid,并且总是将注释 'my comment' 添加到 PO 条目”。您只能指定哪些参数是单数、复数或消息上下文。
X-POEdit-KeywordsList 似乎是 POEdit 使用的自定义 header 。它也对你没有帮助。
您可以通过将来源更改为以下方式来实现所需的结果:
<?
# TRANSLATORS: Available at level #.
_ex("unlock_level");
?>
现在像这样调用 xgettext
:
xgettext --add-comments=TRANSLATORS: --keyword=_ex so.php
你会得到这个 PO 条目:
#. TRANSLATORS: Available at level #.
#: so.php:3
msgid "unlock_level"
msgstr ""
--add-comments=TRANSLATORS:
选项的效果是,如果该注释恰好以字符串“TRANSLATORS:”开头,则它会添加紧接在关键字之前的注释。您可以用您选择的字符串交换“TRANSLATORS:”。您还可以省略 --add-comments
的参数并提取紧接在关键字之前的所有注释。
不是你最初想要的,但尽可能接近。
关于gettext - 在 Poedit 的 PO 文件中,如何提供关键字列表,以便为每个关键字自动提取评论?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51493046/