使用上下文的 Gettext (pgettext)

Gettext to work with context (pgettext)

我想用 pgettext 来指定一些要翻译的字符串的上下文,我发现你需要在 PHP 中自己添加它,我就是这样做的 following this post's instructions .我对它做了一些改动以使其正常工作(dcgettext 函数调用有一些错误):

function pgettext($context, $msgid) {
  $contextString = "{$context}[=10=]4{$msgid}";
  $translation = dcgettext('messages', $contextString, 5);
  if ($translation == $contextString) return $msgid;
  else return $translation;
}

但是这个功能好像不起作用,当我改变语言时,文本没有改变。

我错过了什么?

我找到了适合我的解决方案:

function pgettext($context, $msgid) {
  $contextString = "{$context}[=10=]4{$msgid}"; 
  $translation = _($contextString); 

  if($translation == $contextString) return $msgid;
  else return $translation;
}