CakePHP 2.1中的国际化和本地化

CakePHP 2.1中的国际化和本地化,cakephp,localization,internationalization,Cakephp,Localization,Internationalization,我正在CakePHP 2.1.x中构建一个双语言应用程序,因为Cake的“内置”本地化特性得到了广泛的评论。然而,我正在努力让这个强大的功能发挥作用 我知道这个问题在Cake(、和)的早期版本中已经解决了,但在Cake 2.x中还没有解决。我还参考了食谱中的这些文章(是的,我读过手册): 有两件事——我不想为每种语言分别创建子域。相反,我更喜欢通过点击按钮(在本例中是一个标志图标)进行基于URL的语言切换。网站将积极维护,因此内容需要动态更新。要求客户维护两个独立的站点/数据库是不可能的

我正在CakePHP 2.1.x中构建一个双语言应用程序,因为Cake的“内置”本地化特性得到了广泛的评论。然而,我正在努力让这个强大的功能发挥作用

我知道这个问题在Cake(、和)的早期版本中已经解决了,但在Cake 2.x中还没有解决。我还参考了食谱中的这些文章(是的,我读过手册):

有两件事——我不想为每种语言分别创建子域。相反,我更喜欢通过点击按钮(在本例中是一个标志图标)进行基于URL的语言切换。网站将积极维护,因此内容需要动态更新。要求客户维护两个独立的站点/数据库是不可能的

我已经为我的PostModel设置了Translate行为,但我不知道它是否有效。我还通过在控制台中运行
I18n
初始化了I18n,确认了数据库表的存在,设置了我的.po文件,并将我的所有内容包装在
\uuu()
中。但是,当我将浏览器中的默认语言更改为法语时,网站仍为英语

我试过P28n组件,但我认为它对于Cake 2.x来说已经过时了。我还尝试了基于URL的语言切换,但显然它与新的CakePHP API不兼容

有人能给我指点使用CakePHP 2.x的教程或说明的方向吗?这里还没有提到一个


更新:我找到了这篇文章:。有人知道您将
CakeSession::write('Config.language','fre')的代码放在哪里吗
设置语言环境(“LC_ALL”,“fr_fr.utf8”)

只需将代码放入AppController::beforeFilter()中,并根据您从post请求或URL的一部分检索语言的方式设置值。

谢谢,burzum!这是我在AppController中的
beforeFilter()
public function beforeFilter(){parent::beforeFilter();CakeSession::write('Config.language','fre');setlocale('LC_ALL','fr_fr.utf8');$this->Auth->allow('index','view','home','display','logout');}
到目前为止,这似乎对网站没有任何影响。这是URL:puzzle.leadingecommunications.net。另外,我希望在单击按钮时更改区域设置。我该怎么做?问题出在我的.po文件上。我最终也完全不需要setlocale()。