据我了解,_x()
函数基本上是__()
,带有“上下文”参数来帮助翻译。但是,使用_x()
和带有注释的__()
有什么区别?所以基本上:
_x()
vs:
// translators: blah blah
__()
答案 0 :(得分:0)
因为仅在此处提供注释以为人类提供信息,而上下文实际上会影响字符串的唯一性。
如果您查看一个PO文件,将会看到一个上下文字符串,如下所示:
#. translators: blah blah
msgctxt "button"
msgid "Buy"
msgstr ""
#. translators: another comment
msgctxt "title"
msgid "Buy"
msgstr ""
第一条消息的唯一标识符为"button\x04Click here"
,其中\x04
是连接上下文和ID的特殊分隔符。这允许在可能需要翻译不同的情况下多次使用文本“购买”。在第二个示例中,英语可能是相同的,但是由于语法原因,某些页面中的翻译可能是页面标题,而不是按钮。
上下文通常仅用于向翻译人员提供信息,但这实际上并不是其主要目的。