首頁  >  文章  >  後端開發  >  Cakephp中如何實作i18n?

Cakephp中如何實作i18n?

黄舟
黄舟原創
2016-12-20 09:26:411074瀏覽

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

中文化cakephp有以下幾步:

1,在程式碼中使用__()函數。

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

Php代碼  

__('This is the string i need to translate', true); 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目錄下的cakeconsole也存在於環境變數的PATH中

執行指令cake i18n,這時候應該會出現如下所示的提示,選擇E既可

------------------------------ ---------

I18n Shell

------------------------------------- --
[E]xtract POT file from sources
[I]nitialize i18n database table
[H]elp
[Q]uit
What would you like to do? (E/I/H/Q)
>

i18n task執行完畢後應該applocale目錄下產生名為default.pot的文件,將這個文件拷貝至applocalechsLC_MESSAGES目錄下

使用pot文件的編輯工具翻譯詞條。建議使用Poedit

在appconfigcore.php中加上以下程式碼:

Php程式碼

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

'chs');

好了,這樣就完成簡單的專案中文化了。


其中許多細節由於篇幅原因就不做完整介紹了。有疑問的話請參考cakephp的說明文件。

以上就是Cakephp中如何實現i18n的內容,更多相關內容請關注PHP中文網(www.php.cn)! 

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn