Bonjour tout le monde,

Je travaille sur la localization(question d'entrainement lol), je n'ai pas de problème avec la traduction usuel (génération du fichier POT et fichier .PO), j'ai fait des tests et tout marche bien, par contre en lisant profondément la doc, il y a ce passage qui dit que pour les textes long, il vaut mieux opter cette solution(, if you find you want to translate long paragraphs, or even whole pages - you should consider implementing a different solution. e.g.: )

<?php
// App Controller Code.
function beforeFilter() {
    $locale = Configure::read('Config.language');
    if ($locale && file_exists(VIEWS . $locale . DS . $this->viewPath)) {
        // e.g. use /app/View/fre/Pages/tos.ctp instead of /app/View/Pages/tos.ctp
        $this->viewPath = $locale . DS . $this->viewPath;
    }
}

je voulais l'essayer, et la j'ai ce message me disant

Use of undefined constant VIEWS - assumed 'VIEWS'

Par curiosité, j'ai fais un echo de la constante VIEW et apparemment il ne le connait pas, je ne sais pas si le problème vient de moi ou bien c'est un bug dans la DOC du CAKEPHP (Avec tout le respect cake :p).

PS: j'ai mis ce code dans le AppController.

Merci d'avance.

1 réponse


stitox
Auteur
Réponse acceptée

J'ai trouvé une solution, en fait la constante VIEWS n'existe plus dans la version 2, donc j'ai utilisé la constante APP pour atteindre le chemin vers le dossier App, le code après la correction :

public function beforeFilter() {
        parent::beforeFilter();

      $locale = Configure::read('Config.language');
        if ($locale && file_exists(APP.'VIEW'.DS.$locale.DS.$this->viewPath)) {
            // e.g. use /app/View/fre/Pages/tos.ctp instead of /app/View/Pages/tos.ctp
            $this->viewPath = $locale . DS . $this->viewPath;
        }

    }

Je veux juste signaler que cette astuce est super intéressante danns le cas ou on a des grands contenus à traduire.

Cordialement,