2012-01-08 67 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