Bonjour,
j'utilise des fichiers po pour des traductions je suis en cakephp 2.5.5
j'ai des fichiers default.po et des fichiers routes.po.
Probleme : quand je change de langue, les textes du fichier default.po sont bien changé, par contre ceux du fichier routes.po ne le sont pas.
Si j'utilise un navigateur français c'est le fichier app/Locale/ fra /LC_MESSAGES/routes.po qui est utilisé et n'est pas changé quand je change de langue.
Si j'utilise un navigateur anglais c'est le fichier app/Locale/ eng /LC_MESSAGES/routes.po qui est utilisé et n'est pas changé quand je change de langue.
Les fichier routes.po sont bien récupéré a un moment mais lors du changement de langue, il sont pas recharge contrairement au fichier default.po
function _setLanguage()
public function _setLanguage() {
//if the cookie was previously set, and Config.language has not been set
//write the Config.language with the value from the Cookie
if ($this->Cookie->read('lang') && !$this->Session->check('Config.language')) {
$this->Session->write('Config.language', $this->Cookie->read('lang'));
Configure::write('Config.language', $this->Session->read('Config.language'));
}
//if the user clicked the language URL
else if (isset($this->params'language']) && ($this->params'language'] != $this->Session->read('Config.language'))){
//then update the value in Session and the one in Cookie
$this->Session->write('Config.language', $this->params'language']);
$this->Cookie->write('lang', $this->params'language'], false, ZRT_FO_COOKIE.' days');
Configure::write('Config.language', $this->params'language']);
}
}
Changement de langue
echo $this->Html->link('change',array('language'=>$lang'Lang']'iso']),array('escape'=>false));
bootstrap.php
$browserLangs = explode(',',$_SERVER'HTTP_ACCEPT_LANGUAGE']);
$find = 'eng';
$browserLang=$browserLangs[0] ;
$lang = substr($browserLang,0,2);
switch($lang){
case 'fr':$find = 'fra';break;
case 'en':$find = 'eng';break;
case 'es':$find = 'spa';break;
case 'pt':$find = 'por';break;
case 'it':$find = 'ita';break;
case 'de':$find = 'deu';break;
}
Configure::write('Config.language', $find);
Si quelqu'un a une idée.
J'ai pense à tout mettre dans les fichier default.po mais je ne trouve pas cela très propre ...