我要开发一个多语言的小网站。这个网站使用的是ERP数据库,所以我无法选择我的数据库结构......
我的应用程序在core.php中有默认语言,我正在使用I18N Through URL来指定我要显示的语言
对于每种不同的语言,我都有一个不同的表格,其中包含正确语言的产品描述。
所以我需要在构造函数中将cakePhp的“$ useTable”设置为右表。但要做到这一点,我需要知道应用程序的当前语言环境。
我尝试了几件事:
所以我没有看到如何检索这种语言,是否有包含此var的隐藏字段,或者我可以在任何地方检索此信息?
答案 0 :(得分:1)
我没有找到任何简单的方法来检索这个var,因为我们在_beforeFilter之前被调用,所以我要检查参数,会话,cookie和默认var。
所以我创建了一个方法,我把它放在我的“工具”组件中,然后在我的模型中导入它。
如果您有兴趣,可以使用以下模型:
function GetCurrentLocale(){
if(isset($GLOBALS['Dispatcher']->params['language'])) return $GLOBALS['Dispatcher']->params['language'];
if($this->Session->check('Config.language')) return $this->Session->read('Config.language');
if($this->Cookie->read('lang')!==false)return $this->Cookie->read('lang');
return Configure::read('Config.language');
}
我这样称呼它:
App::import('component','Tools');
$tools = new ToolsComponent();
$locale = $tools->GetCurrentLocale();
如果有人找到最好的方法,我会强烈反对看看如何:)