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

例如:

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

===============>>#1 票数:0

做到这一点的一种方法是读取$this->request->params['locale']变量,该变量在Controller / AppController.php文件中可用,然后根据其更改布局。 就像这样:

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

希望能帮助到你!

  ask by Hank translate from so

未解决问题?本站智能推荐: