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
как то стало не правильно работать.....