Cakephp中如何實現i18n?

好像 網站建設網上一直沒有比較詳細的中文資料來說述如何使用cakephp來實現i18n。正好昨天被逼無奈的將代碼中的提示中文化了一把,略有心得,簡而志之。

中文化cakephp有以下幾步:
1,在代碼中使用__()函數。

在須要進行中文化的地方使用__()函數,以下所示:

__('This is the string i need to translate', true);

將第2個參數置爲ture,這樣若是有相對應的翻譯詞條的話那麼翻譯過的詞條將輸出,不然會輸出未翻譯的詞條。
2,執行i18n task

若是你的代碼中存在__()函數的話,你就能夠執行i18n task來進行代碼掃描了。

i18n task的做用是掃描源碼中全部__()函數,爲__()中的string創建翻譯索引並將這些索引保存在.pot文件中。

那麼如何執行i18n task呢?
命令行進入你項目的app目錄
若是是windows平臺,請確保環境變量的PATH中包含php的bin路徑,並確保你cake目錄下的cake\console也存在於環境變量的PATH中
執行命令 cake i18n,這時候應該會出現以下所示的提示,選擇E既可

Java代碼   收藏代碼
  1. ---------------------------------------  
  2. I18n Shell  
  3. ---------------------------------------  
  4. [E]xtract POT file from sources  
  5. [I]nitialize i18n database table  
  6. [H]elp  
  7. [Q]uit  
  8. What would you like to do? (E/I/H/Q)  
  9. >  


i18n task執行完畢後應該\app\locale目錄下生成名爲default.pot的文件,將這個文件拷貝至\app\locale\chs\LC_MESSAGES目錄下
使用pot文件的編輯工具翻譯詞條。推薦使用Poedit
在\app\config\core.php中加上以下代碼:

Php代碼   收藏代碼
  1. Configure::write('Config.language''chs');  


好了,這樣就完成簡單的項目中文化了。

其中不少細節因爲篇幅緣由就不作完整介紹了。有疑問的 網站建設話請參考cakephp的幫助文檔。(fblww-0308)
相關文章
相關標籤/搜索