2012-05-07 59 views
1

我有蛋糕php應用程序,我正在使用翻譯功能<?php __('msg'); ?>。 我的app/config/bootstrap.php我添加了行Configure::write('Config.language', 'eng'); - 我希望英語作爲默認語言。我創建的文件夾app/Locale/eng/LC_MESSAGESi18n控制檯任務 - 如何使用它?

然後我打開我的應用程序文件夾中的Windows控制檯,然後鍵入'cake i18n extract' - 有幾個提示 - 我選擇掃描應用程序目錄並輸出到Locale目錄。

在我的文件夾中的應用程序國際化過程後/區域設置一些文件出現:

cake.pot 
cake_dev.pot 
default.pot 

並沒有什麼在app /地點/英

所以我只是複製default.pot到應用程序/地點/英/ LC_MESSAGES並添加了一些譯文,但是當我通過網站打開什麼都沒有打印 - _('')功能的地方...

如何正確設置此?

回答

3

:)你需要從您剛纔創建的文件.POT爲每個郎.po文件..我建議使用poedit做 是

在poEdit的,去File->New Catalog from POT file,然後選擇由蛋糕烘烤產生的default.pot文件。它會問你一些信息,然後你會看到所有的文本翻譯,一個完成,保存到app/Locale/eng/LC_MESSAGES/default.po

當你添加/刪除/修改你的代碼中的一些字符串,你需要運行再次烘烤提取文字。它將更新.pot文件,在Poedit中,您需要打開.po文件並轉至Catalog->Update from POT,它會向您顯示需要翻譯的所有新行,並且有時它會嘗試爲您翻譯它們,具體取決於你以前的譯文

希望這有助於

+0

還是什麼都沒有 - 我創建了區域/英/ LC_MESSAGES default.po(也default.mo出現),並增加了一些翻譯,但__(「」)函數仍然顯示什麼。當我回顯Configure :: read('Config.language')時,它會顯示'eng',所以最新的錯誤是什麼? – user606521

+2

讀你的例子我看到你正在做'<?php __(「msg」)?>'當它應該是'<?php echo __(「msg」);?>'也許是那個 – pleasedontbelong