Есть сайт с 4 языками. Мультиязычность работает с помощью codemix/localeurls. Инфо на сайте идентичная только переводы одной инфы на 4 языках.
Надо что 2 языка работали на 1 шаблоне и другие 2 языка на втором шаблоне.
С какого места надо оталкиваться. На форуме поиск ничего похожего не дал и в гугле тоже.
Спасибо заранее.
Как использовать разные шаблоны для разных языков ?
Re: Как использовать разные шаблоны для разных языков ?
имеется в виду какой-то один шаблон? или все шаблоны?
если один, то просто проверять язык и рендерить то что нужно.
если разные, то можно создать 2 темы и в зависимости от языка подключать одну из них
если один, то просто проверять язык и рендерить то что нужно.
если разные, то можно создать 2 темы и в зависимости от языка подключать одну из них
Re: Как использовать разные шаблоны для разных языков ?
так а в чем проблема?
1. Если нужны разные view для одного action(можно конечно и в нескольких/всех экшенах так прописывать, если их немного)
2. Если нужны только разные layout - создать базовый контроллер, от которого будут наследоваться все остальные контроллеры приложения и в конструкторе или методе init выбирать layout примерно с той же логикой, что и в пункте 1(только вместо рендера устанавливать свойство $this->layout)
3. Если нужны и разные layout и разные view для всех экшенов, то нужно создавать 2 темы, в которых это все и размещать, а при инициализации приложения в зависимости от языка устанавливать нужную тему
1. Если нужны разные view для одного action(можно конечно и в нескольких/всех экшенах так прописывать, если их немного)
Код: Выделить всё
if(in_array(Yii::$app->language, ['ru', 'en'])) {
return $this->render('template1');
} else {
return $this->render('template2');
}
3. Если нужны и разные layout и разные view для всех экшенов, то нужно создавать 2 темы, в которых это все и размещать, а при инициализации приложения в зависимости от языка устанавливать нужную тему