2011-10-31 110 views
1

國際化進程無法正常工作。CakePHP 2.0國際化問題

我跑了cake i18n export。之後,我將翻譯放入文件夾app/locale/por/LC_MESSAGES/default.po.中的文件「.po」中。

我在AppController Configure::write('Config.language', 'por');中調用方法beforeFilter()

但是該翻譯未顯示在__()-方法中。

回答

2

這裏有一些可行的建議:

•清零PATH_YOUR_APP/tmp/cache蛋糕緩存。刪除modelspersistent中的文件,但不刪除目錄本身。我相信持久性是本地化字符串被保存的位置,但是兩者都是確定的。

•您是否覆蓋了您的任何控制器中的beforeFilter,而不是AppController?如果這樣稱呼在控制器的beforeFilter方法parent::beforeFilter();,處理其他的東西之前,像這樣:

public function beforeFilter() { 
    parent:beforeFilter(); 
    //Do stuff here 
} 

•您是如何創建的翻譯文件? .po目錄中是否還有.mo文件?由於字符編碼問題,我相信直接編輯0​​和.pot文件是不被推薦的(但我可能會被誤認爲是)。 Poedit是處理.po文件的好工具,雖然它可能更健壯。

+0

只是清除它的緩存工作!謝謝! –

+0

感謝您使用緩存清除提示。這解決了我的問題。 – trante

0

一些更多的東西來檢查

  1. 檢查瀏覽器的語言是否被選定爲第一語言
  2. 是在各行,妥善你MSGID,msgstr等鍵封閉雙引號內的文字正確葡萄牙?
  3. 我不是CakePHP專家,但嘗試將配置移動到bootstrap.php。你的代碼似乎符合邏輯。
+0

我也嘗試過bootstrap,但問題是緩存...但是,謝謝! –