0

你好我有两个问题。

首先我想在我的网站上有两种语言,当用户点击标志来改变语言时。问题是我不想使用扩展名为 .po 的语言文件来实现它,因为所有数据都写在数据库中。如果没有 CakePHP 的框架,我将传递一个 GET 变量,例如 ?lang=en,我可以读取正确的记录。如果我在 CakePHP 中使用相同的逻辑,那么我需要在控制器内的所有函数中包含这个变量,我的链接将类似于 /product/en/2。(但是在默认语言中发生的事情我也必须包括在内......)所以我的主要问题是我是否可以使用另一种解决方案(例如 SESSION )来处理这个问题,但是当用户单击另一种语言时如何更改 SESSION 变量? ??

我的主菜单确实有类似的问题,我想将我的菜单包含在 default.ctp 文件的标题中(它也是动态的),我该如何实现?哪个是默认文件的主控制器?? ? (为了实现从数据库中读取值的功能)。

很抱歉,我的英语很重要,但我是 CakePHP 的新手,并且在 MVC 逻辑方面很一般,所以我对我以前用普通 PHP 编写的方式有点困惑。

谢谢!

4

1 回答 1

0

使用名为 params 的蛋糕进行语言设置和路由器将 /lang:eng 重写为 /eng/。

您可以在 AppController::beforeFilter() 中检查、设置和更改此设置以及会话。这是您的主控制器,所有其他控制器都从该控制器继承。

阅读做得很好的官方文档通常很有帮助:请参阅http://book.cakephp.org/2.0/en/core-libraries/internationalization-and-localization.html#localization-in-cakephp它准确地描述了我的内容已经写到这里了。

于 2012-05-24T13:37:47.303 回答