2010-11-06 15 views
0

Comment utiliser plusieurs vues de langue dans un contrôleur en fonction du paramètre url? J'ai une version anglaise d'un site Web dans CodeIgniter.Je veux faire la version grecque et arabe de ce site sans changer les modèles et les contrôleurs. Tout le monde sait comment faire pour que je puisse obtenir CodeIgniter pour afficher différentes vues pour le même contrôleur en fonction des paramètres de langue dans l'URL. comme l'URL ci-dessousUtilisation de plusieurs affichages de langue pour le même contrôleur dans CodeIgniter

http://www.example.com/en/ pour l'anglais

http://www.example.com/ar/ pour l'arabe

http://www.example.com/gk/ pour le grec

Merci à l'avance

+0

s'il vous plaît marquer la bonne réponse comme accepté, ou de fournir des informations supplémentaires si vous avez besoin d'aide supplémentaire .. merci! – tpae

Répondre

2

Essayez avec ceci:

Internationalization (i18n) library for CodeIgniter

Je l'ai utilisé dans mon projet avec peu de modifications et c'est vraiment génial.

+0

merci pour votre réponse. J'ai besoin d'utiliser différents modèles (vues) pour chaque langue parce que mon design a des images avec du texte dans différentes langues. Donc, l'utilisation d'un fichier de langue ne fonctionne pas. –

+0

Vous n'avez pas besoin d'utiliser les fichiers de langue, ils sont pour le texte statique (laissez-les vides) ... vous pouvez prendre tous (phrases, paragraphe, texte en général) de la base de données (j'ai utilisé les deux approches, mais vous peut coller uniquement à la base de données). À propos des vues, créez un modèle maître et, en fonction de la langue, chargez les vues dépendantes de la langue (avec ces images) si ces pages sont dynamiques. Si ce sont des pages statiques, c'est encore plus facile. Cette bibliothèque vous aidera à acheminer vers la langue appropriée plus facilement, rien d'autre. – trix

0

Vous pouvez choisir de faire ce qui suit si vous avez différents modèles/vues pour chaque langue.

$lang = $this->uri->segment(1); 

$this->load->view("view_folder/".$lang."/main_page"); 

Ensuite, vous pouvez stocker chaque différentes langues comme ceci:

view_folder/en/main_page.php 
view_folder/ar/main_page.php 
view_folder/gk/main_page.php 

S'il vous plaît garder à l'esprit pour modifier les itinéraires, de sorte que vous pouvez utiliser le même contrôleur. J'utilise Regex dans le système de routage, comme ceci:

$route['([a-z_A-Z]+)/controller'] = 'controller'; 

Puis, quand vous faites http://www.example.com/en/controller, vous devriez être redirigés vers le contrôleur et $this->uri->segment(1); sera disponible pour la sélection de la langue.