2010-06-16 15 views
0

J'utilise CakePHP version 1.3. La documentation dit que si je veux utiliser le comportement de traduction pour mon contenu dynamique, aucun changement dans ma vue n'est nécessaire. Le problème est que les champs traduits sont là, mais vides. La traduction apparaît uniquement dans le [ 'I18n'] tableau comme ceLe format de la table de traduction CakePHP n'est pas comme prévu

Array 
(
    [0] => Array 
     (
      [Category] => Array 
       (
        [id] => 1 
        [locale] => de_de 
        [name] => 
       ) 

      [I18n] => Array 
       (
        [name] => Anlagenkomponenten 
       ) 

     ).... 

Je me attendais Array comme ce

Array 
(
    [0] => Array 
     (
      [Category] => Array 
       (
        [id] => 1 
        [locale] => de_de 
        [name] => Anlagenkomponenten 
       ) 

      [I18n] => Array 
       (
        [name] => Anlagenkomponenten 
       ) 

     ).... 

est mon attente mal, ou est-ce un bug?

Répondre

0

Dans cakephp 1.2.6 ... Dans Translate Bahaviorallez à la ligne 243 et commentez jusqu'à 245. Je pense que même dans CakePHP 1,3

//if (!empty($results[$key]['I18n__'.$field]['content'])) { 
// $value = $results[$key]['I18n__'.$field}['content']; 
//} 

Ajoutez ensuite le code:

if (!empty($results[$key]['I18n'][$field])) { 
    $value = $results[$key]['I18n'][$field]; 
} 
0

pourrait vous envoyer votre découverte appel à vos données (et peut-être quelques lignes au-dessus et au-delà de cet appel)?

Normalement, le comportement de la traduction fonctionne comme ceci:

$this->Model->locale = 'de_de'; 
$result = $this->Model->find('all', array(...); 

Les paramètres régionaux est généralement définie par une locale variable globale (une approche consiste à stocker les paramètres régionaux de l'utilisateur dans la session et mondial locale-var dans votre app-controller).

Si aucun paramètre régional n'est défini et que vous effectuez un read() avec le paramètre $ recursive = 1 dans votre modèle, Cake récupère TOUTES les traductions disponibles pour chaque paramètre régional existant.

Comment avez-vous configuré le comportement de traduction pour votre modèle? Cela peut être utile si vous publiez la section translate-translate de votre $ actsAs-variable à partir de votre modèle.

Veuillez également vérifier votre table i18n si les paramètres régionaux y sont enregistrés correctement (de_de, PAS de-de!).