Я хотел бы использовать pgettext для указания контекста некоторых строк для перевода, я обнаружил, что вам нужно добавить его непосредственно в PHP, что я и сделал в соответствии с инструкциями этого сообщения . Я немного изменил его, чтобы он работал ( dcgettext
функции 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; }