Перевод cakephp не работает

Я пытаюсь реализовать перевод в Cakephp, но не работает и не показываю мне никаких ошибок.

У меня есть HTML в element

<a href="/sites/pages/servicos" target="_blank">
    <span class="title">Serviços</span>
    <div class="description"><?php __('o que fazemos') ?></div>
</a>

В App Controller внутри beforeFilter():

Configure::write('Config.language', 'eng');

В моей папке locale/eng/LC_MESSAGES/default.po у меня есть следующее:

msgid "o que fazemos"
msgstr "What we do"

Но не работает... Благодаря

Ответ 1

Я думаю, что ты просто забыл "эхо"

<?php echo __('o que fazemos'); ?>

Ответ 2

Вы правильно сгенерировали файлы i18n с помощью команды ./cake i18n?

Используйте PoEdit для редактирования ваших файлов перевода, вместо того, чтобы делать это вручную, если вы это сделали.

http://poedit.net/

Ответ 3

  • Прежде всего, вы сгенерировали файл default.pot, набрав app\console\cake, а затем i18n extract после полного файла в формате _()?
  • Во-вторых, почему вы положили Configure::write('Config.language', 'eng'); в App Controller вместо app\Config\core.php (рекомендация). И как сказал JazzCat, поскольку это файл .po, настоятельно рекомендуется использовать poedit.

PS: вы можете установить язык в AppController с помощью сеанса:

$this->Session->write('Config.language', 'en');