6.3.6 Sauvegarder dans une autre langue
Le texte original de cette section a changé depuis qu'il a été traduit. Aidez-nous à corriger cette différence. Vous pouvez :
Vous pouvez forcer le modèle qui utilise le TranslateBehavior à sauvegarder dans une autre langue que celle détectée.
Pour dire à un modèle dans quelle langue le contenu devra être sauvé, changez simplement la valeur de la propriété $locale du modèle, avant que vous ne sauvegardiez les données dans la base. Vous pouvez faire çà dans votre contrôleur ou vous pouvez le définir directement dans le modèle.
<?php
class PostsController extends AppController {
var $name = 'Posts';
function add() {
if ($this->data) {
$this->Post->locale = 'de_de'; // nous allons sauvegarder la version allemande
$this->Post->create();
if ($this->Post->save($this->data)) {
$this->redirect(array('action' => 'index'));
}
}
}
}
?> <?phpclass PostsController extends AppController {var $name = 'Posts';function add() {if ($this->data) {$this->Post->locale = 'de_de'; // nous allons sauvegarder la version allemande$this->Post->create();if ($this->Post->save($this->data)) {$this->redirect(array('action' => 'index'));}}}}?>
<?php
class Post extends AppModel {
var $name = 'Post';
var $actsAs = array(
'Translate' => array(
'nom'
)
);
// Option 1) définir simplement la propriété directement
var $locale = 'fr_fr';
// Option 2) créer une méthode simple
function setLangue($locale) {
$this->locale = $locale;
}
}
?> <?phpclass Post extends AppModel {var $name = 'Post';var $actsAs = array('Translate' => array('nom'));// Option 1) définir simplement la propriété directementvar $locale = 'fr_fr';// Option 2) créer une méthode simplefunction setLangue($locale) {$this->locale = $locale;}}?>


























