Cakephp理解本地化。。?

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

我想对你们大多数人来说,这可能是一个“愚蠢”的问题,但我就是不明白

由于我是一个初学者,我尝试了很多在谷歌上找到的教程,但没有一个对我有用

我已经运行了CakePHP2.2,我正在努力让本地化工作起来。 我跟着书()

到目前为止我所做的:

//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)
再次感谢您的帮助