Comment faire un slug en fonction de la langue du client web

Par sylvain, il y a 13 ans


Bonjour,

Je voudrais un slug tout simple, meme manuel ( je pense juste avec les routes devrait suffire)
pour pour exemple afficher /home si c'est un client anglais et accueil si c un francais

5 réponses

Ciloe, il y a 13 ans

Il faut internationaliser ton site (voir tuto de grafikart) et le faire donc pour le champ slug

sylvain, il y a 13 ans

Encore raté, je viens de revoir le tuto et je voia pas comment avoir une traduction du slug.

Grafikart, il y a 13 ans

tu passe un paramètre en plus dans ton router comme lang => "en" si route /home et ainsi de suite

sylvain, il y a 13 ans

Est ce que c'est possible d'avoir un exemple concret ?

palmer08, il y a 13 ans

Je pense qu'il veut dire que dans ton Router, tu vérifie si la langue de l'utilisateur est Anglais ou Français. Pour faire cela, tu déclare une variable, dans le AppController je pense, ainsi tu devra pouvoir la récupérer pour l'utiliser dans le Router.

Comme cela, dans le Router tu as juste à changer le nom du rewriting. Ex:

/*
* Tu récupére ta variable 'lang'
* Et tu utilises des conditions pour mettre en forme tes slugs.
*/
// Si l'utilisateur est français
Router::connect('/accueil', array('controller' => 'TonController', 'action' => 'index'));
// Si l'utilisateur est anglais
Router::connect('/home', array('controller' => 'TonController', 'action' => 'index'));

Concrétement, je ne sais pas si cela fonctionnerait, parce que je n'ai jamais essaié, mais au moins tu as de quoi d'aider.