【问题标题】:Cakephp understanding Localization..?Cakephp理解本地化..?
【发布时间】:2012-10-11 12:55:18
【问题描述】:

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

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

我正在运行 Cakephp 2.2,我正在尝试使本地化工作。 我跟着书(http://book.cakephp.org/2.0/en/core-libraries/internationalization-and-localization.html

到目前为止我做了什么:

//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/ 。 但是什么都没有发生……?

能否请您指出正确的方向..?

再次抱歉这个问题,但由于我是初学者,我现在被卡住了。 :(

提前感谢您的帮助

【问题讨论】:

  • 它不会在/deu 文件夹中,因为这是您设置的Config.language 吗?此外,不,它不会重定向用户 - 它会在 /app/View/deu/Pages/ 而不是 /app/View/Pages/ 中查找视图文件

标签: cakephp localization routes


【解决方案1】:

所有这些代码都会编辑$this->viewPath 变量。

这将使CakePHP 在调用render() 时看起来与标准目录不同。如果您打算创建不同的文件夹,通常会这样做,每个文件夹都包含特定本地化的视图文件。

如果您的 View 文件夹当前如下所示:

View
    - Elements
    - Emails
    - Errors
    - Helper
    - ...

它应该看起来像这样:

View
    - deu
        - Elements
        - Emails
        - Errors
        - Helper
        - ...
    - Elements
    - Emails
    - Errors
    - Helper
    - ...

通过这种方式,您可以为许多不同的本地化指定完全不同的视图文件。根目录下的文件夹应该是默认的本地化。

它目前没有做任何事情的原因是它在进行file_exists() 检查时找不到相关的视图文件。一旦您根据需要进行了重组,它应该可以正常工作。

【讨论】:

  • 非常感谢您的帮助!!我添加了“deu-tree”。当我运行“debug(Configure::read('Config.language'));”它返回 'deu' 但 "debug($this->viewPath);"返回 '​​Pages' 我认为它应该返回 'deu/Pages'。知道为什么吗?
  • 没问题 =) 我知道这是一个基本问题,但你确定在调用 AppController 的 beforeFilter() 之后调用 debug($this->viewPath); 吗?
  • 我已经在“echo $content_for_layout”之前的所有视图中将调试行添加到default.ctp。
  • 是的,听起来不错。好的,在beforeFilter() 函数中和周围尝试一些die() 语句怎么样?尝试将 die($this->viewPath) 放在 if 语句中,在应该更改值之后。让我知道会发生什么 =)
  • 在整个周末搜索互联网后,我意识到在我的服务器上,文件存在检查只能这样工作:file_exists(APP.'View'.DS.$this->viewPath.DS.$locale)再次感谢您的帮助
猜你喜欢
  • 1970-01-01
  • 2011-03-11
  • 1970-01-01
  • 2012-05-11
  • 2019-01-24
  • 1970-01-01
  • 1970-01-01
  • 2011-09-11
  • 2019-01-30
相关资源
最近更新 更多