Croogo: разные макеты для разных локаций
Как установить разную раскладку для разных локаций с помощью "Перевести плагин"
например:
- со ссылкой:
[http://example.com/eng]
он должен отображать default.ctp для английского языка - и со ссылкой:
[http://example.com/ja]
он должен отображать default.ctp для японского
1 ответ
Один из способов сделать это, прочитав $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.
Надеюсь, поможет!