Bonsoir à tous,
Comme un bon élève j'ai suivi le tuto de Grafikart sur l'internationalisation.
Pas de problème du coté des traductions PO.
Pas de problème pour l'écriture sous plusieurs langues (I18n et sa table se débrouille très bien)
Seul problème, la modification du Behaviour de mes modèles empêche le find('all') de récupérer le contenu dans la bonne locale (ou plutot meme du contenu tout court...)
J'illustre :
Mon Modèle :
var $actsAs = array(
'Translate' => array(
'title' => '_title',
'descript' => '_descript'
)
);
me renvoie :
(int) 0 => array(
'Activity' => array(
'id' => '14',
'title' => '',
'descript' => '',
'img_url' => '/img/activities/std/851578-455087414601994-1601110696-n_1396994007.png',
'locale' => 'eng'
),
(int) 0 => array(
'Activity __i18n__ title' => 'en',
'Activity __i18n__ descript' => 'des en'
),
'_title' => array(
(int) 0 => array(
'id' => '101',
'locale' => 'fra',
'model' => 'Activity',
'foreign_key' => '14',
'field' => 'title',
'content' => 'fr'
),
(int) 1 => array(
'id' => '102',
'locale' => 'eng',
'model' => 'Activity',
'foreign_key' => '14',
'field' => 'title',
'content' => 'en'
),
(int) 2 => array(
'id' => '103',
'locale' => 'spa',
'model' => 'Activity',
'foreign_key' => '14',
'field' => 'title',
'content' => 'sp'
),
(int) 3 => array(
'id' => '104',
'locale' => 'eus',
'model' => 'Activity',
'foreign_key' => '14',
'field' => 'title',
'content' => 'eus'
)
),
'_descript' => array(
(int) 0 => array(
'id' => '105',
'locale' => 'fra',
'model' => 'Activity',
'foreign_key' => '14',
'field' => 'descript',
'content' => 'des fr'
),
(int) 1 => array(
'id' => '106',
'locale' => 'eng',
'model' => 'Activity',
'foreign_key' => '14',
'field' => 'descript',
'content' => 'des en'
),
(int) 2 => array(
'id' => '107',
'locale' => 'spa',
'model' => 'Activity',
'foreign_key' => '14',
'field' => 'descript',
'content' => 'des sp'
),
(int) 3 => array(
'id' => '108',
'locale' => 'eus',
'model' => 'Activity',
'foreign_key' => '14',
'field' => 'descript',
'content' => 'des eus'
)
)
), ...
La ou Modèle :
var $actsAs = array(
'Translate' => array(
'title',
'descript'
)
);
me renvoie : (en locale eng)
(int) 0 => array(
'Activity' => array(
'id' => '14',
'title' => 'en',
'descript' => 'des en',
'img_url' => '/img/activities/std/851578-455087414601994-1601110696-n_1396994007.png',
'locale' => 'eng'
)
Ma question est a présent, comment garder la possibilité d'enregistrer sur plusieurs langues et sélectionner la lecture d'une seule ?
J'ai bien essayé de forcer la locale ou encore de trafiquer le $actsAs à la volée, mais sans succès.
Je m'en remet à vous, merci de votre aide.
Bonne soirée.