Мультиязычный индекс

Locked
ulan
Posts: 1437
Joined: Fri Nov 23, 2018 2:49 pm

Re: Мультиязычный индекс

Post by ulan »

я конечно врубил моск
rewrite ^/index\.php$ /scj/cgi/index.php?force_lng=en last;
и при переходе с любого языка на индекс я должен получить снова енглиш язык а я этого не получаю

в чем тогда ошибка
admin
Site Admin
Posts: 37995
Joined: Wed Sep 10, 2008 11:43 am

Re: Мультиязычный индекс

Post by admin »

в том, что реврайт этот не для индекса а для ^/index\.php$
Don't forget to run script update
ulan
Posts: 1437
Joined: Fri Nov 23, 2018 2:49 pm

Re: Мультиязычный индекс

Post by ulan »

Давайте разберемся еще раз
if (!-e $request_filename){
rewrite "^/([^/]{2})/(.*)$" /$2?force_lng=$1&$query_string break;
}

location = / {
index /scj/cgi/index.php?force_lng=en;
}

location / {
rewrite ^/index\.php$ /scj/cgi/index.php?force_lng=en last;
Теперь у меня постоянно английский язык

Вернул все обратно и делаю по мануалу
https://smartcj.com/wiki/doku.php?id=ru ... _сайта_i18
Выключаю Auto Switch language
и полагаюсь на Auto redirect to existing language
https://{DOMAIN}/{LANGUAGE}/{ORIGINAL_REQUEST}


Имею 5 созданных языков + дефолтный ен

что я хочу увидеть (допустим я захожу с русского браузера)
1) При заходе на корень сайта меня кидает на /ru/ ---- все верно
2) При переходе на ЕН версию языка она ведь у меня дефолтная и стоит в корне - я должен увидеть английский язык - но так как в куке стоит уже русский язык я вижу на индексе русский язык ((
3) при повторном заходе на сайт он должен посмотреть что в куке у меня русский язык и проивзести редик на /ru/ - но тоже не работает
admin
Site Admin
Posts: 37995
Joined: Wed Sep 10, 2008 11:43 am

Re: Мультиязычный индекс

Post by admin »

"При переходе на ЕН версию языка она ведь у меня дефолтная и стоит в корне "

не стоит никакая версия в корне, нет такого понятия

язык берется либо из куки либо из force_lng

вам надо сделать тк, что б у вас было или то или то

совершенно весь код у вас в темплейте, там не надо быть гением и програмистом что б разобраться в тех 10 строках.

"2) При переходе на ЕН версию языка она ведь у меня дефолтная и стоит в корне - я должен увидеть английский язык - но так как в куке стоит уже русский язык я вижу на индексе русский язык (("

да, потому что чтоб не было п.3 надо что б в урле был указан язык
Don't forget to run script update
ulan
Posts: 1437
Joined: Fri Nov 23, 2018 2:49 pm

Re: Мультиязычный индекс

Post by ulan »

А если я не хочу чтобы у меня в урле был указан язык, я хочу чтобы так называй индекс и был ЕН версиеи сайта
как сделать?
admin
Site Admin
Posts: 37995
Joined: Wed Sep 10, 2008 11:43 am

Re: Мультиязычный индекс

Post by admin »

в реврайте прописать &force_lng=en
только в рейврайте корня сайта а не index.php как сделано у вас
Don't forget to run script update
ulan
Posts: 1437
Joined: Fri Nov 23, 2018 2:49 pm

Re: Мультиязычный индекс

Post by ulan »

location = / {
index /scj/cgi/index.php?force_lng=en;
}

Теперь у меня язык не один не переключается
admin
Site Admin
Posts: 37995
Joined: Wed Sep 10, 2008 11:43 am

Re: Мультиязычный индекс

Post by admin »

ок, давайте пойдем с другой стороны

сделайте без реврайтов, они вас путают

без реврайтов все ок?
Don't forget to run script update
ulan
Posts: 1437
Joined: Fri Nov 23, 2018 2:49 pm

Re: Мультиязычный индекс

Post by ulan »

ulan wrote: Thu Apr 16, 2020 9:28 am location = / {
index /scj/cgi/index.php?force_lng=en;
}

Теперь у меня язык не один не переключается
site.com/?force_lng=de

все равно ен версия
admin
Site Admin
Posts: 37995
Joined: Wed Sep 10, 2008 11:43 am

Re: Мультиязычный индекс

Post by admin »

потому что стоит

location = / {
index /scj/cgi/index.php?force_lng=en;
}

надо просто подумать , не строчить сразу, а задуматься на 5 минут будет ли работать так как вы хотите
Don't forget to run script update
Locked