Internazionalizzazione e Localizzazione in CakePHP 2.1

Sto costruendo un doppio linguaggio app in CakePHP 2.1.x a causa della grande giudizi di Torta “built-in” funzioni di localizzazione. Tuttavia, io sono di wrestling per ottenere questo potente funzionalità per il lavoro.

So che questo argomento è stato affrontato per le precedenti versioni di Torta (qui, qui, qui, e qui), ma non è stato risolto per Torta 2.x. Sono, inoltre, fa riferimento a questi articoli nel ricettario (sì, ho letto il manuale):

Paio di cose, io non voglio fare separare i sottodomini per ogni lingua. Invece, io preferisco l’URL di base del linguaggio di commutazione con il clic di un pulsante (in questo caso, un icona a forma di bandiera). Il sito sarà mantenuto attivamente, in modo che il contenuto deve essere aggiornato in modo dinamico. Chiedere al cliente per la gestione di due siti separati/database è fuori questione.

Devo Tradurre comportamento set up per il mio PostModel, ma non so se funziona. Anche io ho inizializzato I18n eseguendo I18n nella console, hanno confermato le tabelle del database esistono, e impostare il mio .file po, e hanno avvolto tutto il mio contenuto in __(). Tuttavia, quando posso modificare la lingua predefinita nel mio browser francese, il sito rimane in inglese.

Ho provato il P28n Componente, ma penso che sia obsoleto per Torta 2.x. Ho provato anche l’URL di base di lingua commutazione basata su questo dadi e bulloni-di-cake articolo, ma a quanto pare è incompatibile con la nuova CakePHP API.

Qualcuno può indicarmi in direzione di un tutorial o istruzioni di lavoro con CakePHP 2.x? Uno non è già fatto riferimento qui?

Aggiornamento: ho trovato questo articolo: http://www.localizingjapan.com/blog/2011/11/10/localizing-a-cakephp-application/comment-page-1/#comment-7467. Qualcuno sa dove è posto il codice per CakeSession::write('Config.language', 'fre'); e setlocale("LC_ALL", "fr_FR.utf8");?

OriginaleL’autore deewilcox | 2012-04-11

1 risposta

  1. 0

    Semplicemente mettere il codice in AppController::beforeFilter() e impostare i valori di base, tuttavia, è possibile recuperare il linguaggio, da un post di richiesta o di una parte dell’URL.

    Grazie, burzum! Qui è il mio beforeFilter() in AppController: public function beforeFilter() { parent::beforeFilter(); CakeSession::write('Config.language', 'fre'); setlocale("LC_ALL", "fr_FR.utf8"); $this->Auth->allow('index','view','home','display','logout'); }
    Così lontano, che non sembrano avere alcun effetto sul sito. Ecco l’URL: puzzle.leadingedgecommunications.net. Inoltre, voglio il locale per modificare il clic su un pulsante. Come faccio a fare che?
    Il problema è stato con la mia .file po. Ho anche finito per non aver bisogno di setlocale ().

    OriginaleL’autore burzum

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *