Мультиязычный сайт на Yii2

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
quasar
Сообщения: 109
Зарегистрирован: 2014.10.22, 09:27

Мультиязычный сайт на Yii2

Сообщение quasar »

Здравствуйте гуру Yii2. Вообщем возникла задача создать мультиязычный сайт. Посмотрел я на просторах интернета о разных подходах программистов к этому делу, но так общей картины и не увидел. Все рассказывают о какой то части кода без описания целостной картины. Поэтому прошу ссылку на доку где бы было описано как реализовать мультиязысность в шаблонах, как хранить мультиязычный контент в базе и как настраивать UrlManager под мультиязычность. Другими словами нужна дока где полностью описывается как делается мультиязычный сайт на Yii2. Заранее спасибо!
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Мультиязычный сайт на Yii2

Сообщение zelenin »

нет, такой доки, как и нет единого подхода.

предлагаю разделить задачу на три:
- написать сервис для определения и установки языка пользователя по нужным вам критериям
- доделать урлменеджер для поддержки мультиязычности в связке с первым сервисом
- придумать способ хранения и получения мультиязычных данных

первые две вещи просты и гуглятся за секунду. Для третьего могут быть разные подходы, зависящие от желаемого удобства и универсальности.
quasar
Сообщения: 109
Зарегистрирован: 2014.10.22, 09:27

Re: Мультиязычный сайт на Yii2

Сообщение quasar »

zelenin писал(а):нет, такой доки, как и нет единого подхода.

предлагаю разделить задачу на три:
- написать сервис для определения и установки языка пользователя по нужным вам критериям
- доделать урлменеджер для поддержки мультиязычности в связке с первым сервисом
- придумать способ хранения и получения мультиязычных данных

первые две вещи просты и гуглятся за секунду. Для третьего могут быть разные подходы, зависящие от желаемого удобства и универсальности.

Спасибо за ответ, но мне почему то казалось что эта задача уже давным давно решена. Неужели нет единого, а главное обкатаного подхода для реализации мультиязычности? Или на Yii мультиязычные сайты делают крайне редко?))
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Мультиязычный сайт на Yii2

Сообщение zelenin »

quasar писал(а):Спасибо за ответ, но мне почему то казалось что эта задача уже давным давно решена.
почему вы тогда на форуме спрашиваете, а не в гугле?
quasar писал(а):Неужели нет единого, а главное обкатаного подхода для реализации мультиязычности?
смотри комментарий к третьей проблеме.
quasar писал(а):Или на Yii мультиязычные сайты делают крайне редко?))
на любом фреймворке мультиязычные сайты делаются с одинаковой частотой - от фреймворка здесь зависит мало (если конечно у него нет поддержки мультиязычности из коробки).
quasar
Сообщения: 109
Зарегистрирован: 2014.10.22, 09:27

Re: Мультиязычный сайт на Yii2

Сообщение quasar »

zelenin писал(а): почему вы тогда на форуме спрашиваете, а не в гугле?
В гугле я уже смотрел, если бы там нашел решение которое полностью дало б ответ на мой вопрос то тут бы не писал.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Мультиязычный сайт на Yii2

Сообщение zelenin »

quasar писал(а):мне почему то казалось что эта задача уже давным давно решена
quasar писал(а):В гугле я уже смотрел, если бы там нашел решение которое полностью дало б ответ на мой вопрос то тут бы не писал
это взаимоисключающие друг друга фразы
quasar
Сообщения: 109
Зарегистрирован: 2014.10.22, 09:27

Re: Мультиязычный сайт на Yii2

Сообщение quasar »

zelenin писал(а):это взаимоисключающие друг друга фразы
Этим софизмом можно заниматься долго. Я спросил возможно кто то знает ссылку где описано применение мультиязычности на Yii2. А то что вы сейчас мне пишите это не ответ на мой вопрос, так и скажите не знаю и не встречал. Я подожду ответ от других форумчан вашу мысль я услышал.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Мультиязычный сайт на Yii2

Сообщение zelenin »

quasar писал(а):
zelenin писал(а):это взаимоисключающие друг друга фразы
Этим софизмом можно заниматься долго. Я спросил возможно кто то знает ссылку где описано применение мультиязычности на Yii2. А то что вы сейчас мне пишите это не ответ на мой вопрос, так и скажите не знаю и не встречал. Я подожду ответ от других форумчан вашу мысль я услышал.
https://www.google.ru/search?client=ubu ... 6ASHkYvACA
viewtopic.php?f=19&t=37374#p191970

именно. Уже разжевали все - осталось начать делать.
Аватара пользователя
maleks
Сообщения: 1992
Зарегистрирован: 2012.12.26, 12:56

Re: Мультиязычный сайт на Yii2

Сообщение maleks »

quasar писал(а): но так общей картины и не увидел. Все рассказывают о какой то части кода без описания целостной картины. Поэтому прошу ссылку на доку где бы было описано как реализовать
Вот первая же ссылка по запросу "yii2 мультиязычность" дает годную статью.
По коду там могут быть помарки, или можно сделать лучше, но общая идея верна.

А насчет мультиязычного контента, тут разные варианты. Можете в готовых цмс=ках себе структуру выбрать по вкусу. Кто то хранит id объекта в одной таблице, а в другой уже переведенный контент. Я делаю, если например для статей, в одной таблице - id, lang, id_главной_языковой_версии
atoumus
Сообщения: 7
Зарегистрирован: 2016.08.14, 06:51

Re: Мультиязычный сайт на Yii2

Сообщение atoumus »

Выше правильно было сказано, у каждого свой подход. Например одни хранят переводы в БД, другие в файлах. У одних язык отображается в URL, у других хранится в сессии. И делать это все можно по разному.

Насчет интернационализации контента, т.е. имеются ввиду статические страницы, то для этого можно использовать 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

Как сделать мультиязычность, по шагам, можно почитать тут.
Ответить