использование локализации в cakephp

Как я могу локализовать строки в cakePhp? У меня не было успеха в онлайн-документации. Спасибо за любую помощь.

Есть несколько шагов:

  1. Сначала установите язык, который будет использоваться
  2. Создайте один или несколько файлов .po для этого языка.
  3. Оберните все ваши l10n-способные строки с помощью вспомогательных методов __() или __d()

Вот выдержка из одного из моих проектов:

 # app/app_controller.php uses ( 'L10n' ); class AppController extends Controller { public function beforeFilter() { /** * Derive the desired locale by reading the subdomain from * the HTTP_HOST server variable. Locale subdomains can use * either the 2 or 3 character ISO code. Information on locale * ISO codes is at http://www.loc.gov/standards/iso639-2/php/code_list.php. */ $this->L10n = new L10n(); /** Auto-detect the request language settings */ $this->L10n->get(); /** * Set the default "domain" for translations. The domain is the * same as the po file name in a given locale directory. eg * __d( 'homepage', 'message_id' ) would look for the * message_id key in homepage.po. Using the __() convenience * function will always look in default.po. */ $this->set( 'domain', 'default' ); } # The rest of your AppController code } 

Этот фрагмент задает язык. Все, что вам нужно сделать, это предоставить соответствующие файлы .po каталоге /app/locale/eng/LC_MESSAGES/ . Думаю, книга CakePHP содержит достаточную информацию об этом .

Если вы решите использовать только один файл .po , вы обернете свои строки с помощью помощника __() . Я выбрал несколько файлов .po , чтобы избежать одного массивного файла, поэтому я использовал помощник __d() чтобы указать, какой домен (домен == имя файла .po без расширения .po ).

ОБНОВИТЬ

Я должен добавить, что вам нужно будет использовать поведение « Translate чтобы помочь вам с содержимым базы данных, которое требует перевода.