Bonjour,
Un autre sujet pour un autre problème avec ma tentative d'internationalisation de mon blog.
Cette fois-ci c'est au niveau de l'url que ça foire ! J'utilise des Router pour mes urls qui sont :
Router::connect(
'/:language/article/:id-:slug',
array('controller' => 'posts', 'action' => 'view'),
array(
// rien de compliqué, puisque ceci fera simplement correspondre ":id" à $articleID dans votre action
'pass' => array('id', 'slug'),
'id' => '[0-9]+',
'language' => '[a-z]{3}'
));
Router::connect(
'/:language/categorie/:id-:slug',
array('controller' => 'posts', 'action' => 'category'),
array(
// rien de compliqué, puisque ceci fera simplement correspondre ":id" à $articleID dans votre action
'pass' => array('id', 'slug'),
'id' => '[0-9]+',
'language' => '[a-z]{3}'
));
Router::connect(
'/:language/:controller/*',
array(),
array(
'language' => '[a-z]{3}'
));
Ca fonctionne parfaitement sur ma page d'accueil pour accéder à un article ainsi que le changement de langage sur la page d'accueil. Mais une fois sur la page de l'article, lorsque je clique sur le "drapeau" pour changer de langue, il y a une erreur, le changement ne s'effectue pas et l'url ne correspond plus.
Voici les résultats :
//le code du "drapeau"
<div id="fre">
<?php echo $html->link($html->image('/img/fre.png', array('alt'=>'Français','title'=>'Français')), array('language'=>'fre')+$this->params'pass'], array('escape'=>false));?>
</div>
<div id="eng">
<?php echo $html->link($html->image('/img/eng.png', array('alt'=>'English','title'=>'English')), array('language'=>'eng')+$this->params'pass'], array('escape'=>false));?>
</div>
//-->l'url de l'accueil vers l'article
http:***/blog/fre/article/12-Un_autre_article
//-->l'url qui déconne (url retournée du code ci-dessus)
http:***/blog/posts/view/12/Un_autre_article/language:eng
Je ne trouve pas l'erreur, surement dans mon codage des Router. Mais c'est une adaptation puisque dans le tutoriel d'Internationalisation de GrafikArt. Il n'utilise pas d'url simplifiée comme celle-ci.
Si une âme généreuse venait à mon aide, je la remercie d'avance.