Мультиязычный сайт на Yii2
Мультиязычный сайт на Yii2
Здравствуйте гуру Yii2. Вообщем возникла задача создать мультиязычный сайт. Посмотрел я на просторах интернета о разных подходах программистов к этому делу, но так общей картины и не увидел. Все рассказывают о какой то части кода без описания целостной картины. Поэтому прошу ссылку на доку где бы было описано как реализовать мультиязысность в шаблонах, как хранить мультиязычный контент в базе и как настраивать UrlManager под мультиязычность. Другими словами нужна дока где полностью описывается как делается мультиязычный сайт на Yii2. Заранее спасибо!
Re: Мультиязычный сайт на Yii2
нет, такой доки, как и нет единого подхода.
предлагаю разделить задачу на три:
- написать сервис для определения и установки языка пользователя по нужным вам критериям
- доделать урлменеджер для поддержки мультиязычности в связке с первым сервисом
- придумать способ хранения и получения мультиязычных данных
первые две вещи просты и гуглятся за секунду. Для третьего могут быть разные подходы, зависящие от желаемого удобства и универсальности.
предлагаю разделить задачу на три:
- написать сервис для определения и установки языка пользователя по нужным вам критериям
- доделать урлменеджер для поддержки мультиязычности в связке с первым сервисом
- придумать способ хранения и получения мультиязычных данных
первые две вещи просты и гуглятся за секунду. Для третьего могут быть разные подходы, зависящие от желаемого удобства и универсальности.
Re: Мультиязычный сайт на Yii2
zelenin писал(а):нет, такой доки, как и нет единого подхода.
предлагаю разделить задачу на три:
- написать сервис для определения и установки языка пользователя по нужным вам критериям
- доделать урлменеджер для поддержки мультиязычности в связке с первым сервисом
- придумать способ хранения и получения мультиязычных данных
первые две вещи просты и гуглятся за секунду. Для третьего могут быть разные подходы, зависящие от желаемого удобства и универсальности.
Спасибо за ответ, но мне почему то казалось что эта задача уже давным давно решена. Неужели нет единого, а главное обкатаного подхода для реализации мультиязычности? Или на Yii мультиязычные сайты делают крайне редко?))
Re: Мультиязычный сайт на Yii2
почему вы тогда на форуме спрашиваете, а не в гугле?quasar писал(а):Спасибо за ответ, но мне почему то казалось что эта задача уже давным давно решена.
смотри комментарий к третьей проблеме.quasar писал(а):Неужели нет единого, а главное обкатаного подхода для реализации мультиязычности?
на любом фреймворке мультиязычные сайты делаются с одинаковой частотой - от фреймворка здесь зависит мало (если конечно у него нет поддержки мультиязычности из коробки).quasar писал(а):Или на Yii мультиязычные сайты делают крайне редко?))
Re: Мультиязычный сайт на Yii2
В гугле я уже смотрел, если бы там нашел решение которое полностью дало б ответ на мой вопрос то тут бы не писал.zelenin писал(а): почему вы тогда на форуме спрашиваете, а не в гугле?
Re: Мультиязычный сайт на Yii2
quasar писал(а):мне почему то казалось что эта задача уже давным давно решена
это взаимоисключающие друг друга фразыquasar писал(а):В гугле я уже смотрел, если бы там нашел решение которое полностью дало б ответ на мой вопрос то тут бы не писал
Re: Мультиязычный сайт на Yii2
Этим софизмом можно заниматься долго. Я спросил возможно кто то знает ссылку где описано применение мультиязычности на Yii2. А то что вы сейчас мне пишите это не ответ на мой вопрос, так и скажите не знаю и не встречал. Я подожду ответ от других форумчан вашу мысль я услышал.zelenin писал(а):это взаимоисключающие друг друга фразы
Re: Мультиязычный сайт на Yii2
https://www.google.ru/search?client=ubu ... 6ASHkYvACAquasar писал(а):Этим софизмом можно заниматься долго. Я спросил возможно кто то знает ссылку где описано применение мультиязычности на Yii2. А то что вы сейчас мне пишите это не ответ на мой вопрос, так и скажите не знаю и не встречал. Я подожду ответ от других форумчан вашу мысль я услышал.zelenin писал(а):это взаимоисключающие друг друга фразы
viewtopic.php?f=19&t=37374#p191970
именно. Уже разжевали все - осталось начать делать.
Re: Мультиязычный сайт на Yii2
Вот первая же ссылка по запросу "yii2 мультиязычность" дает годную статью.quasar писал(а): но так общей картины и не увидел. Все рассказывают о какой то части кода без описания целостной картины. Поэтому прошу ссылку на доку где бы было описано как реализовать
По коду там могут быть помарки, или можно сделать лучше, но общая идея верна.
А насчет мультиязычного контента, тут разные варианты. Можете в готовых цмс=ках себе структуру выбрать по вкусу. Кто то хранит id объекта в одной таблице, а в другой уже переведенный контент. Я делаю, если например для статей, в одной таблице - id, lang, id_главной_языковой_версии
Re: Мультиязычный сайт на Yii2
Выше правильно было сказано, у каждого свой подход. Например одни хранят переводы в БД, другие в файлах. У одних язык отображается в URL, у других хранится в сессии. И делать это все можно по разному.
Насчет интернационализации контента, т.е. имеются ввиду статические страницы, то для этого можно использовать yii\web\ViewAction с определенной конфигурацией, примерно так:
и потом ложить стаик страницы во вьюхи:
\views\controller-name\pages\en\some.php
\views\controller-name\pages\ru\some.php
Как сделать мультиязычность, по шагам, можно почитать тут.
Насчет интернационализации контента, т.е. имеются ввиду статические страницы, то для этого можно использовать yii\web\ViewAction с определенной конфигурацией, примерно так:
Код: Выделить всё
public function actions()
{
return [
...
'page' => [
'class' => \yii\web\ViewAction::className(),
'viewPrefix' => 'pages/' . \Yii::$app->language
]
...
];
}
\views\controller-name\pages\en\some.php
\views\controller-name\pages\ru\some.php
Как сделать мультиязычность, по шагам, можно почитать тут.