Мультиязычность. Выборка из бд.

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

Мультиязычность. Выборка из бд.

Сообщение Artikk »

Здравствуйте. Уже несколько раз делал мультиязычные сайты.
Хотел проконсультироваться. Как вы выбираете нужные данные из бд. Например страница О НАС.
я делаю about и about_en
И в контроллере проверяю:

Код: Выделить всё

if(substr(\Yii::$app->request->url, 0, 3) == '/en') {
$about = Abouten::findOne($id);
}
или

if(substr(\Yii::$app->request->url, 0, 3) == '/ru') {
$about = About::findOne($id);
}
Я правильно делаю? И как это делаете вы?
Аватара пользователя
mat.twg
Сообщения: 222
Зарегистрирован: 2012.02.22, 20:44
Откуда: Санкт-Петербург

Re: Мультиязычность. Выборка из бд.

Сообщение mat.twg »

i18n и пишите переводы, всё делается в одной вьюхе... примеров масса, гуглите..
andku83
Сообщения: 988
Зарегистрирован: 2016.07.01, 10:24
Откуда: Харьков

Re: Мультиязычность. Выборка из бд.

Сообщение andku83 »

использовали https://github.com/OmgDef/yii2-multilingual-behavior

вот сайт где оно используется - https://macplanet.com.ua/ru
Artikk
Сообщения: 742
Зарегистрирован: 2017.02.10, 09:12

Re: Мультиязычность. Выборка из бд.

Сообщение Artikk »

mat.twg писал(а): 2018.05.06, 00:11 i18n и пишите переводы, всё делается в одной вьюхе... примеров масса, гуглите..
я пишу так переводы строк. т.е. вы хотите сказать запрос тоже там писать? это правильно?
Artikk
Сообщения: 742
Зарегистрирован: 2017.02.10, 09:12

Re: Мультиязычность. Выборка из бд.

Сообщение Artikk »

есть варианты еще?
Аватара пользователя
maleks
Сообщения: 1985
Зарегистрирован: 2012.12.26, 12:56

Re: Мультиязычность. Выборка из бд.

Сообщение maleks »

Artikk писал(а): 2018.05.08, 16:15 есть варианты еще?
Да множество этих вариантов мультиязычности на самом деле, оно ж и для yii 1 все то же самое, и на этом форуме неоднократно обсуждались варианты.

То как вы делаете, выглядит неуклюже.
Определять текущий язык надо не в контроллере, а например на уровне парсинга входящего запроса, в urlManager и устанавливать его в app->language и дальше уже пользоваться.

Что у вас за разница в Abouten/About ? Они на одну таблицу указывают но Query в find() у них переопределен? Для findOne() например это не имеет смысла.
Yii2 universal module sceleton - for basic and advanced templates
Artikk
Сообщения: 742
Зарегистрирован: 2017.02.10, 09:12

Re: Мультиязычность. Выборка из бд.

Сообщение Artikk »

Abouten/About в одной таблице англ текст, а в другой русский.
пример реализации можете написать?
someweb
Сообщения: 552
Зарегистрирован: 2017.03.09, 10:12

Re: Мультиязычность. Выборка из бд.

Сообщение someweb »

Если у вас уже разные таблицы, то сделайте одну модель, а в tableName() (https://www.yiiframework.com/doc/guide/ ... table-name) в зависимости от Yii::$app->language возвращайте имя нужной таблицы.
Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа. Роберт Шекли.
Artikk
Сообщения: 742
Зарегистрирован: 2017.02.10, 09:12

Re: Мультиязычность. Выборка из бд.

Сообщение Artikk »

someweb писал(а): 2018.05.08, 22:25 Если у вас уже разные таблицы, то сделайте одну модель, а в tableName() (https://www.yiiframework.com/doc/guide/ ... table-name) в зависимости от Yii::$app->language возвращайте имя нужной таблицы.
т.е. это сделать также проверками if?
Artikk
Сообщения: 742
Зарегистрирован: 2017.02.10, 09:12

Re: Мультиязычность. Выборка из бд.

Сообщение Artikk »

и еще вопрос, разные таблицы делать - это правильно или нет? или можно по другому как-то?
dimoff
Сообщения: 1
Зарегистрирован: 2018.04.30, 10:37

Re: Мультиязычность. Выборка из бд.

Сообщение dimoff »

Artikk писал(а): 2018.05.09, 08:28 и еще вопрос, разные таблицы делать - это правильно или нет? или можно по другому как-то?
Почему бы не добавить в таблицу поле language?
Artikk
Сообщения: 742
Зарегистрирован: 2017.02.10, 09:12

Re: Мультиязычность. Выборка из бд.

Сообщение Artikk »

dimoff писал(а): 2018.05.09, 14:45
Artikk писал(а): 2018.05.09, 08:28 и еще вопрос, разные таблицы делать - это правильно или нет? или можно по другому как-то?
Почему бы не добавить в таблицу поле language?
Ну добавлю я и что мне это даст?
Аватара пользователя
nihaha
Сообщения: 95
Зарегистрирован: 2017.02.12, 13:30

Re: Мультиязычность. Выборка из бд.

Сообщение nihaha »

andku83 писал(а): 2018.05.06, 01:20 использовали https://github.com/OmgDef/yii2-multilingual-behavior

вот сайт где оно используется - https://macplanet.com.ua/ru
а как смену валюты реализовали? сумма считается по курсу или заранее заполняли в двух валютах? переключатель через сессию работает?
andku83
Сообщения: 988
Зарегистрирован: 2016.07.01, 10:24
Откуда: Харьков

Re: Мультиязычность. Выборка из бд.

Сообщение andku83 »

сумма считается по курсу, курс редактируется в админке, переключатель работает через сессию
Ответить