Cakephp中如何?i18n?

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

中文化cakephp有如下幾步:

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

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

Php代碼

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

__('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既可

---------------------------------------
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執行完畢後應該\app\locale目錄下產生名為default.pot的檔案,將這個檔案拷貝至\app\locale\chs\LC_MESSAGES目錄下

使用pot檔案的編輯工具翻譯詞條。推薦使用Poedit

在\app\config\core.php中加上如下代碼:

Php代碼

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

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

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

其中很多細節由於篇幅原因就不做完整介紹了。有疑問的話請參考cakephp的協助文檔。

以上就是Cakephp中如何?i18n的內容,更多相關內容請關注topic.alibabacloud.com(www.php.cn)!

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.