0

如何使用“翻译插件”为不同的位置设置不同的布局

前任:

  • 带链接:[http://example.com/eng]它应该为英语呈现 default.ctp
  • 并带有链接:[http://example.com/ja]它应该为日语呈现 default.ctp
4

1 回答 1

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中。

希望能帮助到你!

于 2014-07-11T20:07:50.703 回答