CakePHP-Fr.Org

Forum francophone du Framework CakePHP

Vous n'êtes pas identifié.

#1 07-03-2016 10:59:11

Mokette
Eclair café
Date d'inscription: 26-06-2012
Messages: 48

Soucis avec l'internationnalisation [cakephp V2.4.4]

Bonjour,

Je viens de mettre en place l’internationalisation sur un site cakephp mais je rencontre quelques difficultés à la faire fonctionner correctement.
J'ai bien internationaliser toutes mes chaines de caractères dans l'application

Code: php

  1. <?php
  2.     echo __('ma chaine qu\'il faut traduire');
  3. ?>

J'ai générer mon fichier .pot via la console cake et la fonction "i18n extract"
Pis j'ai correctement créé les dossier de langue et rempli les fichier de traduction .po grace à l'éditeur "poedit" suggérer par le cookbook cakephp.

J'ai donc un controller pour gérer le swicth de langue :
LanguageController

Code: php

  1. <?php  
  2.     class LanguageController extends AppController {
  3.         var $name = 'Language';
  4.         var $uses = null;
  5.      
  6.         function changeLang($lang) {
  7.             $this->Session->write('Config.language', $lang);
  8.             $this->Session->write('Config.langCode', $lang);
  9.             $this->redirect($this->referer(), null, true);
  10.         }
  11.     }
  12. ?>

mon appel à la fonction de traduction dans le menu du site :

Code: php

  1. <?php
  2.     echo $this->Html->link('Fr',
  3.         array('controller' => 'language', 'action' => 'changeLang', 'fra'),
  4.         array('escape' => false, 'id' => 'switch_fra'));
  5.     echo '&nbsp;|&nbsp;';
  6.     echo $this->Html->link('En',
  7.         array('controller' => 'language', 'action' => 'changeLang', 'eng'),
  8.         array('escape' => false, 'id' => 'switch_eng'));
  9. ?>

Et j'ai modifié mon bootstrap.php en prévision de l'intégration des langues acceptées :

Code: php

  1. // Langues acceptees
  2. $languages = array(
  3.   'fra' => 'fra',
  4.   'eng' => 'eng',
  5.   'ara' => 'ara'
  6. );
  7.  
  8. // Français par defaut
  9. $langCode = 'fra';
  10. $language = 'fra';
  11.  
  12. Configure::write('Config.languages', $languages);
  13. Configure::write('Config.language',  $language);
  14. Configure::write('Config.langCode',  $langCode);

Je rencontre tout de même un soucis pour que tout fonctionne correctement, je m'explique :
En mode "dev" -> le debug du core.php à 2 et avec debugKit de chargé, tout fonctionne impeccable, les traductions sont bien faites.
Par contre en mode "prod" -> le debug à 0 et debugKit non chargé, je n'ai qu'une petite partie des traductions qui fonctionne, une grande majorité des fichier de vues .ctp ne sont pas traduits et restent par défaut en français.
Je n'arrive pas à saisir pourquoi une telle différence entre les deux modes... est-ce qu'il y a quelque chose que j'aurais oublié dans certains controller liés aux vues non traduites, ou des oublis dans les vues, mais cela m'étonne assez vu que ça fonctionne quand le debug est à 2 mais je n'ai pourtant aucun message d'erreur que ce soit dans la console ou via debugkit...

Je viens donc par ici pour quérir votre aide si vous auriez une idée du pourquoi ça ne fonctionne pas en mode production (Debug à 0 et sans charger et activer debugKit)
Je reste à votre disposition pour toutes questions ou autre smile

Merci d'avance de votre aide smile

Cordialement,

Mokette

nb:
- configuration : Apache : 2.4.9, MySQL : 5.6.17, PHP : 5.5.12 et cakephp 2.4.4

p.s: j'avais déjà fait un post sur les soucis avec l'internationnalisation, qui commence à dater un peu, mais ou je ne rencontrais pas ce soucis là, c'était un problème tout autre, j'ai été relire le post au cas ou une solution y serait présente mais malheureusement j'ai fait choux blanc dans cette rechercher ^^ (lien du précédent post : http://forum.cakephp-fr.org/viewtopic.php?id=6737)

Dernière modification par Mokette (08-03-2016 09:02:09)


If someone ask, i'm not here !! ^^

GnomeBusters  ||  Invictus-Fortes

Hors ligne

 

#2 15-03-2016 09:58:24

Mokette
Eclair café
Date d'inscription: 26-06-2012
Messages: 48

Re: Soucis avec l'internationnalisation [cakephp V2.4.4]

Bonjour,

je me permets de up le sujet si jamais quelqu'un repasserait par là avec une petite idée smile

Pour le moment a part laisser le debug à 2 en prod et masquer la debugkit toolbar à coup de css, je n'ai pas vraiment trouvé de solution :s et il faut dire que c'est pas la meilleure chose à faire sur un projet qui tourne en prod ^^
Donc si quelqu'un avait une meilleure idée je suis preneur smile

Cordialement,

Mokette


If someone ask, i'm not here !! ^^

GnomeBusters  ||  Invictus-Fortes

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB
Traduction par FluxBB.fr