Io uso <?php echo __("this is my string"); ?>
nelle mie visualizzazioni per visualizzare il testo in più lingue. Ho creato una directory .po file per il tedesco:CakePHP 2.1 .po file/traduzione non funzionante
=> app/Locale/GER/LC_MESSAGES/default.po
msgstr "questo è il mio stringa"
msgstr "Dies ist meine zeichenkette"
Quando aggiungo Configure::write('Config.language','ger');
alla mia AppController.php beforeFilter funzionano il testo rimane ancora 'questo è il mio stringa'. Anche se creo un file .po per l'inglese con un msgstr diverso, il testo rimane lo stesso.
Devo modificare un'impostazione specifica per attivare la traduzione?
ho un follow-up problema: ho aggiunto Configure::write('Config.language','eng');
a core.php per impostare la mia lingua predefinita, ma ora non posso cambiare il valore, anche se cerco di ignorare in AppController.php beforeFilter con:
Configure::write('Config.language', 'deu'); //'de' also doesn't work
CakeSession::write('Config.language', 'deu'); //'de' also doesn't work
Se cambio il valore in core.php funziona perfettamente bene, ma una volta messo in core.php non posso cambiarlo.
risolto: ah, ho dimenticato di aggiungere parent::beforeFilter();
all'interno della funzione beforeFilter di tutti i controller.
Ulteriori informazioni:
- Se si desidera definire una lingua predefinita (e di solito si), aggiungere
Configure::write('Config.language', 'eng');
al core.php
Grazie per il suggerimento con il file L10n.php, lo farò usalo per riferimenti futuri. –
grazie, guarda il cuore di cakePhp, mi aiuta a capire. –