Domanda

Non c'è documentazione su cakephp.org e io non sono riuscito a trovare su google.Si prega di link me un po ' di documentazione o a fornire uno!

È stato utile?

Soluzione

Tradurre il comportamento è un altro di CakePHP molto utile, ma scarsamente documentata caratteristiche.Ho implementato un paio di volte, con ragionevole successo di siti web multilingue, secondo le seguenti linee.

In primo luogo, il tradurre comportamento solo internazionalizzare il contenuto del database del tuo sito.Se hai più contenuto statico, ti consigliamo di guardare Torta __('string') funzione wrapper e gettext (ci sono alcune informazioni utili su questa qui)

Supponendo che non c'è un Contenuto che si desidera tradurre con la seguente tabella db:

CREATE TABLE `contents` (
    `id` int(11) unsigned NOT NULL auto_increment,
    `title` varchar(255) default NULL,
    `body` text,
  PRIMARY KEY  (`id`),
) ENGINE=InnoDB  DEFAULT CHARSET=utf8;

Il content.php il modello quindi è:

var $actsAs = array('Translate' => array('title'   => 'titleTranslation',
                     'body'    => 'bodyTranslation'
                     ));

nella sua definizione.Poi devi aggiungere il i18n tabella al database protettori così:

CREATE TABLE `i18n` (
  `id` int(10) NOT NULL auto_increment,
  `locale` varchar(6) NOT NULL,
  `model` varchar(255) NOT NULL,
  `foreign_key` int(10) NOT NULL,
  `field` varchar(255) NOT NULL,
  `content` mediumtext,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8;

Quindi quando si sta salvando i dati al database nel sistema di controllo, impostare le impostazioni internazionali della lingua che si vuole (in questo esempio sarebbe per il polacco):

$this->Content->locale = 'pol';
$result = $this->Content->save($this->data);

Questo creerà le voci nella tabella i18n per il titolo e il corpo dei campi per la pol locale.Trova troverà sulla base dell'attuale locale impostata nel browser dell'utente, restituendo un array come:

[Content]
  [id]
  [titleTranslation]
  [bodyTranslation]

Usiamo l'eccellente p28n componente per attuare un cambio di lingua soluzione che funziona abbastanza bene con il gettext e tradurre i comportamenti.

Non è un sistema perfetto - come si crea HABTM relazioni al volo, può causare alcuni problemi con altre relazioni che possono essere create manualmente, ma se si sta attenti, si può lavorare bene.

Altri suggerimenti

Per chiunque stia cercando la stessa cosa, cakephp aggiornato la loro documentazione.Per Tradurre il Comportamento di andare qui..

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top