Page 1 of 7

Multilingual - Auto Switch language

Posted: Thu May 21, 2015 7:57 am
by hrulik
Сейчас логика работы такая, если в урле не присутствует force_lng=en, например, то у нас происходит переключение языка по HTTP_ACCEPT_LANGUAGE. Это не всегда хорошо. Допустим ситуация: заходим на сайт нас благополучно переключило и средиректило, если установлен Auto redirect to existing language, на http://site.com/ru/ но мы захотели смотреть сайт на en соответственно перешли на http://site.com/en/ или http://site.com/?force_lng=en там уже кликнули на галерею и на галерее нас снова переключит на руский, и так на каждой странице приходится вручную переходить на en.
Хотелось бы чтоб такого не происходило. Чтобы ставилась кука при первом посещении, и при при принудительном переключении. А потом уже если кука присутствует, и force_lng= не выставлен специально, автопереключения уже не происходило.

Re: Multilingual - Auto Switch language

Posted: Thu May 21, 2015 1:16 pm
by admin
По идее в урлах на мультиязыном сайте будет <!--LNG_URL_PREFIX--> который по факту <?=$_GET['force_lng']?> и урлы будут получатся на

http://site/ru вида http://site/ru/gallery/index.html

или при другом языке

http://site/en вида http://site/en/gallery/index.html

и таким образом при переходе на галеру в параметрах уже будет force_lng и оно не будет автопереключать.

Re: Multilingual - Auto Switch language

Posted: Thu May 21, 2015 3:22 pm
by hrulik
Дело в том что "en" ситуация особая, даже если ставим domain.com/?force_lng=en ну или через реврайты domain.com/en/ то переменная $_GET['force_lng'] всё равно будет "". Вы так сделали видимо чтобы редирект для en шел просто на "/" а не на /en/, что в общем то логично. И если для других языков ссылки на галеры можно сделать вида /ru/gallery то для "en" они всеравно будуть /gallery
и когда мы перейдем на галеру нас опять средиректит на /ru/gallery даже несмотря на куку "en"

Re: Multilingual - Auto Switch language

Posted: Thu May 21, 2015 3:27 pm
by hrulik
редирект даже вот так происходит при вызове domain.com/scj/tube/?content_id=001f89aa55fc3dbf39ff8ac6b155f45f&skip_cache=1&force_lng=en ==> domain.com/ru/scj/tube/?content_id=001f89aa55fc3dbf39ff8ac6b155f45f&skip_cache=1&force_lng=en
надо бы это всё как то причесать....

Re: Multilingual - Auto Switch language

Posted: Thu May 21, 2015 3:49 pm
by admin
Дело в том что "en" ситуация особая, даже если ставим domain.com/?force_lng=en ну или через реврайты domain.com/en/ то переменная $_GET['force_lng'] всё равно будет "".
а у вас в языках есть en или это дефолтный язык ?

Если дефолтный то LNG_URL_PREFIX будет пустой и урлы получатся без префикса языка.

Re: Multilingual - Auto Switch language

Posted: Thu May 21, 2015 3:53 pm
by hrulik
ну да en дефолтный конечно. давайте сделаем чтобы если кука force_lng установлена чтобы автоматически уже не редиректило

Re: Multilingual - Auto Switch language

Posted: Thu May 21, 2015 3:59 pm
by admin
Ок, добавили в ап что бы при наличии $_GET['force_lng'] не редиректило

Re: Multilingual - Auto Switch language

Posted: Thu May 21, 2015 4:00 pm
by hrulik
и $_COOKIE['force_lng']

Re: Multilingual - Auto Switch language

Posted: Thu May 21, 2015 4:04 pm
by admin
А куки мы не ставим нигде эту соотв нет смысла проверять
Если вы самостоятельно добавляете ее то можно добавить в common условно

$_GET[....] = $_COOKIE[...]

Re: Multilingual - Auto Switch language

Posted: Thu May 21, 2015 4:50 pm
by hrulik
как то стало не правильно работать.....