在WordPress i18n中,“ _ x”和添加注释之间有什么区别?

时间:2018-06-30 21:39:28

标签: wordpress internationalization

据我了解,_x()函数基本上是__(),带有“上下文”参数来帮助翻译。但是,使用_x()和带有注释的__()有什么区别?所以基本上:

_x()

vs:

// translators: blah blah

__() 

1 个答案:

答案 0 :(得分:0)

因为仅在此处提供注释以为人类提供信息,而上下文实际上会影响字符串的唯一性。

如果您查看一个PO文件,将会看到一个上下文字符串,如下所示:

#. translators: blah blah
msgctxt "button"
msgid "Buy"
msgstr ""

#. translators: another comment
msgctxt "title"
msgid "Buy"
msgstr ""

第一条消息的唯一标识符为"button\x04Click here",其中\x04是连接上下文和ID的特殊分隔符。这允许在可能需要翻译不同的情况下多次使用文本“购买”。在第二个示例中,英语可能是相同的,但是由于语法原因,某些页面中的翻译可能是页面标题,而不是按钮。

上下文通常仅用于向翻译人员提供信息,但这实际上并不是其主要目的。