php - Gettext 与上下文一起使用 (pgettext)

标签 php internationalization gettext

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

function pgettext($context, $msgid) {
  $contextString = "{$context}\004{$msgid}";
  $translation = dcgettext('messages', $contextString, 5);
  if ($translation == $contextString) return $msgid;
  else return $translation;
}

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

我错过了什么?

最佳答案

我找到了一个对我来说效果很好的解决方案:

function pgettext($context, $msgid) {
  $contextString = "{$context}\004{$msgid}"; 
  $translation = _($contextString); 

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

关于php - Gettext 与上下文一起使用 (pgettext),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31994975/

相关文章:

php - Magento产品页面上的ERR_TOO_MANY_REDIRECTS

php - 在坚持 Symfony2 形式和学说后重定向

internationalization - 如何在多种语言中重复使用语言文件,而无需使用 Titanium 将文件加倍

GWT 动态语言环境

templates - 有没有办法创建空的 .mo 文件模板?

PHP:套接字监听问题

java - 如何RSA验证在php中生成的java中的签名

django - 在 django 中更改语言及其 url

php - 如何正确编写具有多语言元素的PHP?

java - Java 中是否有替代 gettext _() 方法的好方法?