我想在源文件中添加关键字和注释。
gettext的关键字文档说:如果keywordspec的格式为'id:argnum ...,“ xcomment”',xgettext,则从指定的参数字符串中提取消息时,将提取的注释xcomment添加到消息中。
我找不到任何样本可以帮助我。
这是我的X-Pedit-KeywordsList标头
"X-Poedit-KeywordsList: __;_ex;\n"
这是我的php源代码中的示例行:
_ex("unlock_level", "Available at level #.")
我希望输出为:
# "Available at level #."
msgid "unlock_level"
我应该如何编辑我的关键字列表标题(和/或来源)?
答案 0 :(得分:1)
关键字spec(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使用的自定义标头。它也无济于事。
您可以通过将源更改为此来实现所需的结果:
<?
# TRANSLATORS: Available at level #.
_ex("unlock_level");
?>
现在像这样调用xgettext
:
xgettext --add-comments=TRANSLATORS: --keyword=_ex so.php
您将获得以下采购订单条目:
#. TRANSLATORS: Available at level #.
#: so.php:3
msgid "unlock_level"
msgstr ""
选项--add-comments=TRANSLATORS:
的效果是,它会在关键字完全以字符串“ TRANSLATORS:”开头的情况下添加紧接在关键字之前的注释。您可以将“ TRANSLATORS:”替换为您选择的字符串。您还可以省略--add-comments
的参数,并提取紧接关键字之前的所有注释。
并不是您最初想要的,而是尽可能地接近。
答案 1 :(得分:0)
Poedit支持翻译评论。我最终像这样向我的源文件中添加了本地化密钥:
// TRANSLATORS: "Available at level #."
__("unlock_level")
这是我通过按Poedit中的更新按钮进入po文件的结果:
#. TRANSLATORS: "Available at level #."
msgid "unlock_level"