Welcome to the Cookbook

loading...

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 :

Plus d'information à propos des traductions

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.

Exemple A : dans votre contrôleur
<?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'));
			}
		}
	}
}
?>
  1. <?php
  2. class PostsController extends AppController {
  3. var $name = 'Posts';
  4. function add() {
  5. if ($this->data) {
  6. $this->Post->locale = 'de_de'; // nous allons sauvegarder la version allemande
  7. $this->Post->create();
  8. if ($this->Post->save($this->data)) {
  9. $this->redirect(array('action' => 'index'));
  10. }
  11. }
  12. }
  13. }
  14. ?>
Exemple B : dans votre modèle
<?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;
	}
}
?>
  1. <?php
  2. class Post extends AppModel {
  3. var $name = 'Post';
  4. var $actsAs = array(
  5. 'Translate' => array(
  6. 'nom'
  7. )
  8. );
  9. // Option 1) définir simplement la propriété directement
  10. var $locale = 'fr_fr';
  11. // Option 2) créer une méthode simple
  12. function setLangue($locale) {
  13. $this->locale = $locale;
  14. }
  15. }
  16. ?>