2012-05-23 2 views
0

Привет У меня есть два вопроса.CakePHP Multilanguage

Сначала я хочу иметь два языка на своем веб-сайте и когда пользователь нажимает на флаг, чтобы изменить язык. Проблема в том, что я не хочу использовать файлы языков с расширением .po, чтобы реализовать его, потому что все данные записаны в базе данных. Без рамки CakePHP я бы передал переменную GET, например. ? lang = en и я мог бы прочитать правильные записи. Если я использую ту же логику в CakePHP, тогда мне нужно включить эту переменную во все функции внутри контроллеров, мои ссылки будут что-то вроде/product/en/2. (но то, что произошло в языке по умолчанию, я тоже должен включить там ...) Итак, мой главный вопрос: если я могу справиться с этим, например, с помощью другого решения, например SESSION, но тогда как я могу изменить переменную SESSION, когда пользователь нажмет другой язык? ??

Аналогичная проблема у меня есть с моим главным меню, я хочу включить мое меню в заголовок (его также динамический) в файл default.ctp, как я могу это достичь? который является основным контроллером для файла по умолчанию? ? ? (чтобы реализовать функцию для чтения значений из базы данных).

Извините за большое сообщение и мой английский, но я новичок в CakePHP и вообще в MVC-логике, поэтому я немного смущен от того, как я писал в простом PHP.

Спасибо!

ответ

0

Используйте торты с именем params для настройки языка и маршрутизатора для перезаписи/записи: eng to/eng /.

Вы можете проверить, установить и изменить этот параметр, а также сеанс, в AppController :: beforeFilter(). Это ваш основной контроллер, из которого наследуются все остальные контроллеры.

Чтение довольно хорошо сделанной официальной документации, как правило, очень полезно: См. http://book.cakephp.org/2.0/en/core-libraries/internationalization-and-localization.html#localization-in-cakephp, где описано, что я здесь написал.