2015-04-29 9 views
10

Я пытаюсь реализовать перевод в 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" 

Но не рабочий ... Спасибо

+0

Что проблема у вас возникли? Строка появляется как «o que fazemos»? Или вы ничего не видите? Вы уверены, что ваш метод beforeFilter() вызывается для этого конкретного представления? –

+1

Это шоу «o que fazemos». Функция beforeFilter() вызывается в контроллере приложения ... –

ответ

3

Я думаю, что вы просто забыли «эхо»

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

не работает в любом случае = ( –

+2

Я только что испек свежее приложение, добавил ваш html в Views/Pages/home.ctp, настроил 'Config.language' на ' eng 'in beforeFilter и вставил ваш .po и ничего ... добавил эхо и строку «Что мы делаем» есть .... Последнее, что вы кеш-кеш, очистите свои кеши в 'tmp/cache ' – ptica

1

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

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

http://poedit.net/

0
  • Прежде всего, Вы сгенерировать файл 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'); 
Смежные вопросы