2012-01-08 58 views
0

,我能到我的CakePHP程序國際化在一定程度上 -CakePHP的:基於以下文章國際化Web應用程序

http://puskin.in/blog/2010/08/cakephp-manage-multiple-language-in-application/

我要擴展這個功能,並提供能力,其中用戶可以保存用戶個人資料中的首選語言。每次用戶登錄時,我都想使用首選語言並以該語言顯示網站的內容。 Ex - Facebook語言設置。只要您更改語言,網站中的靜態內容就會更改爲該語言。

此外,我有一些靜態數據,如下拉查找信息。我的餐桌設計應該如何支持國際餐廳。

任何代碼片段或想法?

回答

1

有一個用戶語言首選項設置是微不足道的。只需將一個字段language添加到用戶表中,並允許用戶在某處爲其設置值。在您的應用程序,您使用Configure::write('Config.language', 'eng')設置默認語言core.php和覆蓋它別的地方,在AppController::beforeFilter最佳:

public function beforeFilter() { 
    if ($this->Auth->user('language')) { 
     Configure::write('Config.language', $this->Auth->user('language')); 
    } 
} 

現在,所有的蛋糕的本地化功能將在用戶選擇的語言輸出的內容。

如果您需要Cake沒有涵蓋的任何其他語言邏輯,您可能必須自己實現它。我建議你打開一個關於你具體問題的新的具體問題。通常,您將基於Configure::read('Config.language')中的值將任何自定義語言邏輯基於該值。如果您擁有包含多種語言描述的產品,則可以擁有Product hasMany Description關係,其中每個Description具有您要過濾的language屬性。

+0

這正是我期待的。並且您的產品中有許多說明...您能否提供一個關於如何根據您的首選語言檢索語言內容的示例?或者我可以開一個新的問題! – jagamot 2012-01-08 04:35:46

+0

是的,請您在對問題進行充分思考之前,請先打開一個新問題,而不必自行結束。 :) – deceze 2012-01-08 04:40:54

+0

好的。這裏是我的新問題 - http://stackoverflow.com/questions/8775649/cakephp-internationalizing-a-web-application-design-and-examples – jagamot 2012-01-08 05:39:06