В моем контроллере приложений у меня есть:
public $components = array ( 'Session', 'Auth' => array ( 'loginRedirect' => array('controller' => 'devices', 'action' => 'index'), 'logoutRedirect' => array('controller' => 'users', 'action' => 'login'), 'authError' => 'You can\'t access that page', 'authorize'=>array('Controller'), 'authenticate' => array('Z1') ) );
Как я могу локализовать сообщение об ошибке? Использование __ () вызывает ошибку. благодаря
Это порождает ошибку, потому что PHP не любит использовать функции внутри определений массива.
То, что вы можете сделать, это определить ошибку после этого, при каждом вызове контроллера, как это
function beforeFilter() { $this->Auth->authError= __('You can\'t access that page'); }
Или другой вариант состоит в том, чтобы оставить свой массив таким, и каждый раз, когда вы выводите ошибку (возможно, в флеш-сообщении или что-то еще), переведите ее туда
echo __($this->Auth->authError);
Но это не позволит PoEdit или аналогичному распознавать строку для перевода, поэтому вам придется добавить ее вручную.