Cakephp理解本地化。。?
我想对你们大多数人来说,这可能是一个“愚蠢”的问题,但我就是不明白 由于我是一个初学者,我尝试了很多在谷歌上找到的教程,但没有一个对我有用 我已经运行了CakePHP2.2,我正在努力让本地化工作起来。 我跟着书() 到目前为止我所做的:Cakephp理解本地化。。?,cakephp,localization,routes,Cakephp,Localization,Routes,我想对你们大多数人来说,这可能是一个“愚蠢”的问题,但我就是不明白 由于我是一个初学者,我尝试了很多在谷歌上找到的教程,但没有一个对我有用 我已经运行了CakePHP2.2,我正在努力让本地化工作起来。 我跟着书() 到目前为止我所做的: //In my bootstrap.php I added Configure::write('Config.language', 'deu'); // In my AppController.php I added public function be
//In my bootstrap.php I added
Configure::write('Config.language', 'deu');
// In my AppController.php I added
public function beforeFilter() {
$locale = Configure::read('Config.language');
if ($locale && file_exists(VIEWS . $locale . DS . $this->viewPath)) {
$this->viewPath = $locale . DS . $this->viewPath;
}
}
根据我的理解,现在应该将访问者重定向到/ger/。
但什么都没发生
你能给我指一下正确的方向吗
再次为这个问题感到抱歉,但由于我是初学者,我现在陷入了困境(
提前感谢您的帮助此代码只需编辑
$this->viewPath
变量即可
当调用render()
时,这将使CakePHP看起来与标准目录不同。如果要创建不同的文件夹,通常会这样做,每个文件夹都包含特定本地化的视图文件
如果视图文件夹当前看起来像这样:
View
- Elements
- Emails
- Errors
- Helper
- ...
View
- deu
- Elements
- Emails
- Errors
- Helper
- ...
- Elements
- Emails
- Errors
- Helper
- ...
相反,它应该是这样的:
View
- Elements
- Emails
- Errors
- Helper
- ...
View
- deu
- Elements
- Emails
- Errors
- Helper
- ...
- Elements
- Emails
- Errors
- Helper
- ...
通过这种方式,您可以为许多不同的本地化指定完全不同的视图文件。根目录中的文件夹应为默认本地化
它当前没有执行任何操作的原因是,当它使
文件_存在()时,它找不到相关的视图文件
检查。一旦您根据需要进行了重组,它应该可以正常工作。它会不会在/deu
文件夹中,因为这是您设置的Config.language
?另外,它不会重定向用户-它会在/app/view/deu/Pages/
中查找视图文件,而不是/app/view/Pages/
谢谢非常感谢您的帮助!!我添加了“deu树”。当我运行“debug(Configure::read('Config.language'));“它返回'deu',但是”debug($this->viewPath);“返回'Pages',我想它应该返回'deu/Pages'。知道为什么吗?没问题=)我知道这是一个基本问题,但您是否明确地调用了debug($this->viewPath)代码>在调用AppController的beforeFilter()之后?我在“echo$content\u for\u layout”之前的所有视图中将调试行添加到default.ctp中。是的,听起来不错。好的,在beforeFilter()
函数中及其周围尝试一些die()
语句怎么样?在应该更改值之后,尝试将die($this->viewPath)
放入if语句中。让我知道会发生什么=)在整个周末搜索互联网后,我意识到在我的服务器上,文件存在检查的工作方式如下:file\u exists(APP.View.DS.$this->viewPath.DS.$locale)
再次感谢您的帮助