2011-04-01 5 views
0

j'ai deux langues pour permettre à l'utilisateur de choisir/commutateur: en ou fritinéraire CakePHP multilingue +

je veux l'url comme:

  • xxx.com/en/ -> langue par défaut est en

  • xxx.com/en/stock/stockName1/ -> page dynamique en langage eN, il est similaire à xxx.com/stock.php?lang=en & stockid = 123

  • xxx.com/fr/stock/stockName1/ -> page dynamique en langue FR

Je n'ai pas besoin de cookie. Je veux diviser deux dossiers de langue pour tous les fichiers, sauf les images.

Comment faire pour le chemin d'URL correctement?

J'ai testé le tutoriel suivant, il fonctionne très bien:

http://bakery.cakephp.org/articles/p0windah/2007/09/12/p28n-the-top-to-bottom-persistent-internationalization-tutorial

Mais, la langue n'est pas apparaît dans l'URL. Quelqu'un peut-il aider à cela?

Merci.

+0

Quelque chose que vous aurez besoin de considérer est le défi que vous ajoutez à tous les liens du site. Gardez donc à l'esprit que la solution devra également inclure la possibilité d'inclure l'identificateur de langue dans les liens, la pagination et les soumissions de formulaires sur tout le site. –

Répondre

1

Je souhaite diviser deux dossiers de langue pour tous les fichiers, à l'exception des images.
Réponse:
Dans CakePHP par défaut Les langues sont données de sorte que n'importe quel utilisateur peut mettre beaucoup de langue et pour cela nous devons faire un diff.folders pour cela. Et si vous ne voulez pas faire cela, alors dans tous les fichiers, vous pouvez spécifier une balise spécifique pour indiquer si c'est "eng" ou "fr". Par exemple: en_abc.ctp, fr_abc.ctp.

Comment faire pour le chemin d'URL correctement?
Réponse:
Par défaut donner « en » dans votre URL et si quelqu'un change font alors avec « fr » et récupérer les données à partir du xml ..

Router::connect('/en', array('controller' => 'users', 'action' => 'index/en')); 
Router::connect('/fr', array('controller' => 'users', 'action' => 'index/fr')); 

et aussi en fonction d'index vous pouvez vérifier la variable qui passe si "en" vient alors prendre toutes les données de l'anglais et si "Fr", puis prendre tout de la française .. J'espère que cela aide ..