Tuesday, May 13, 2014

Problem in page view and language switching

Hi.
I localized my app using [1] and [2] and works fine, but I'm having problem with the language switcher and page views.
In my top menu I have the following items:
echo $this->Html->link(__('Knowledge Base'), array('controller' => 'pages', 'action' => 'view','knowledge-base', 'admin' => false));
echo $this->Html->link(__('Contact'), array('controller' => 'pages', 'action' => 'support', 'admin' => false));

My routes.php:
Router::connect('/', array('controller' => 'pages', 'action' => 'display', 'home', 'language'=>'eng'));
[...] custom rules [...]
Router::connect('/:language/:controller/:action/*',
  array(),
  array('language' => 'eng|ita'));
Router::connect('/:language/:controller',
  array('action' => 'index'),
  array('language' => 'eng|ita'));        
Router::connect('/:language',
  array('controller' => 'welcome', 'action' => 'index'),
  array('language' => 'eng|ita'));


My language selector:
echo $this->Html->link($this->Html->image('icons/flags/small/united_kingdom.jpg', array('alt'=>'English','width'=>'25','height'=>'16')), array('language'=>'eng'), array('title'=>'English','escape' => false));
echo $this->Html->link($this->Html->image('icons/flags/small/italy.jpg', array('alt'=>'Italiano','width'=>'25','height'=>'16')), array('language'=>'ita'), array('title'=>'Italiano','escape' => false));



Now, when I'm visiting custom pages liike "contact" above it works great, but when I'm in a page view like the "Knowledge base" one above the language switcher fails because the Router doesn't consider the $page variable!
So the generated url is:
   http://localhost/work/mysite/app/webroot/ita/pages/view
while the one in the top menu is
   http://localhost/work/mysite/app/webroot/ita/pages/view/knowledge-base

What's wrong?
Thanks


[1] http://book.cakephp.org/2.0/en/core-libraries/internationalization-and-localization.html
[2] http://colorblindprogramming.com/multiple-languages-in-a-cakephp-2-application-in-5-steps (with all the comments and modifications)

--
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP

---
You received this message because you are subscribed to the Google Groups "CakePHP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cake-php+unsubscribe@googlegroups.com.
To post to this group, send email to cake-php@googlegroups.com.
Visit this group at http://groups.google.com/group/cake-php.
For more options, visit https://groups.google.com/d/optout.

No comments: