Multilingual - Auto Switch language

Post Reply
hrulik
Posts: 493
Joined: Sat Apr 14, 2012 7:06 am

Multilingual - Auto Switch language

Post 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= не выставлен специально, автопереключения уже не происходило.
admin
Site Admin
Posts: 37241
Joined: Wed Sep 10, 2008 11:43 am

Re: Multilingual - Auto Switch language

Post 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 и оно не будет автопереключать.
Don't forget to run script update
hrulik
Posts: 493
Joined: Sat Apr 14, 2012 7:06 am

Re: Multilingual - Auto Switch language

Post by hrulik »

Дело в том что "en" ситуация особая, даже если ставим domain.com/?force_lng=en ну или через реврайты domain.com/en/ то переменная $_GET['force_lng'] всё равно будет "". Вы так сделали видимо чтобы редирект для en шел просто на "/" а не на /en/, что в общем то логично. И если для других языков ссылки на галеры можно сделать вида /ru/gallery то для "en" они всеравно будуть /gallery
и когда мы перейдем на галеру нас опять средиректит на /ru/gallery даже несмотря на куку "en"
hrulik
Posts: 493
Joined: Sat Apr 14, 2012 7:06 am

Re: Multilingual - Auto Switch language

Post 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
надо бы это всё как то причесать....
admin
Site Admin
Posts: 37241
Joined: Wed Sep 10, 2008 11:43 am

Re: Multilingual - Auto Switch language

Post by admin »

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

Если дефолтный то LNG_URL_PREFIX будет пустой и урлы получатся без префикса языка.
Don't forget to run script update
hrulik
Posts: 493
Joined: Sat Apr 14, 2012 7:06 am

Re: Multilingual - Auto Switch language

Post by hrulik »

ну да en дефолтный конечно. давайте сделаем чтобы если кука force_lng установлена чтобы автоматически уже не редиректило
admin
Site Admin
Posts: 37241
Joined: Wed Sep 10, 2008 11:43 am

Re: Multilingual - Auto Switch language

Post by admin »

Ок, добавили в ап что бы при наличии $_GET['force_lng'] не редиректило
Don't forget to run script update
hrulik
Posts: 493
Joined: Sat Apr 14, 2012 7:06 am

Re: Multilingual - Auto Switch language

Post by hrulik »

и $_COOKIE['force_lng']
admin
Site Admin
Posts: 37241
Joined: Wed Sep 10, 2008 11:43 am

Re: Multilingual - Auto Switch language

Post by admin »

А куки мы не ставим нигде эту соотв нет смысла проверять
Если вы самостоятельно добавляете ее то можно добавить в common условно

$_GET[....] = $_COOKIE[...]
Don't forget to run script update
hrulik
Posts: 493
Joined: Sat Apr 14, 2012 7:06 am

Re: Multilingual - Auto Switch language

Post by hrulik »

как то стало не правильно работать.....
Post Reply