2015-04-29 22 views
10

Sto cercando di implementare una traduzione in Cakephp ma non funziona e non mi mostra alcun errore.Translation cakephp not working

ho questo HTML in un element

<a href="/sites/pages/servicos" target="_blank"> 
    <span class="title">Serviços</span> 
    <div class="description"><?php __('o que fazemos') ?></div> 
</a> 

In App Controller all'interno beforeFilter():

Configure::write('Config.language', 'eng'); 

Nella mia cartella locale/eng/LC_MESSAGES/default.po ho questo:

msgid "o que fazemos" 
msgstr "What we do" 

Ma non è funzionante ... Grazie

+0

qual è il problema che stai avendo? La stringa si presenta come "o que fazemos"? O non vedi niente? Sei sicuro che il tuo metodo beforeFilter() venga chiamato per quella vista specifica? –

+1

Questo spettacolo "o que fazemos". Il beforeFilter() viene chiamato nel controller dell'app ... –

risposta

3

Penso che tu sia solo dimenticato "echo"

<?php echo __('o que fazemos'); ?> 
+0

non funziona ugualmente = ( –

+2

Ho appena terminato l'app fresca, aggiunto il tuo html in Views/Pages/home.ctp, configurato 'Config.language' a ' eng 'in beforeFilter e incollato il tuo .po e niente ... ha aggiunto l'eco e la stringa' What we do 'c'è .... l'ultima risorsa è che l'elemento è memorizzato nella cache, svuota la cache in 'tmp/cache ' – ptica

1

Avete generato correttamente i file i18n con il comando ./cake i18n?

Utilizzare PoEdit per modificare i file di traduzione, invece di farlo manualmente se lo si è fatto.

http://poedit.net/

0
  • Prima di tutto, hai generare il file default.pot digitando app\console\cake seguito da i18n extract dopo aver il file completo in formato _()?
  • In secondo luogo, perché hai inserito lo Configure::write('Config.language', 'eng'); in App Controller invece di app\Config\core.php (raccomandazione). E come + JazzCat ha detto poichè è un file .po si consiglia vivamente di usare poedit.

PS: è possibile impostare la lingua in AppController utilizzando sessione:

$this->Session->write('Config.language', 'en');