Croogo:不同Locate的不同布局

时间:2014-04-21 05:58:50

标签: croogo

如何使用" Translate Plugin"

为不同的定位设置不同的布局

例如:

  • 使用链接:[http://example.com/eng]它应该呈现default.ctp 英语
  • 并使用链接:[http://example.com/ja]它应该呈现 default.ctp for Japanese

1 个答案:

答案 0 :(得分:0)

您可以通过阅读 Controller / AppController.php 文件中提供的$this->request->params['locale']变量来实现此目的,然后根据它更改布局。它会是这样的:

class AppController extends CroogoAppController {

    public function beforeRender() {

    // Some code...

        // First, checks if the locale parameter is not empty
        if(!empty($this->request->params['locale']))

            // Then, sets the layout for each case.
            // In this example, we user eng and ja
            switch($this->request->params['locale']) {
                case 'eng':
                    $this->layout = 'Croogo.eng';
                    break;
                case 'esp':
                    $this->layout = 'Croogo.ja';
                break;
            }

        // If it is empty, then loads the default locale layout
        else
            $this->layout = 'Croogo.default';
    }

    // The rest of the AppController code...
}

请注意,我使用了Croogo前缀作为布局文件。我这样做是因为我希望从croogo文件夹中加载布局文件。在我的安装中,它们位于路径 Vendor / croogo / croogo / Croogo / View / Layouts

希望它有所帮助!