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

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

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

Post by ulan »

Я делаю язык по мануалу https://smartcj.com/wiki/doku.php?id=ru ... _сайта_i18

Там вставляется пхп код определения языка для пользователя в порядке приоритета
1 кука
2 force_lng (если пользователь находится в конкретной языковой зоне site.com/<язык>)
3 язык браузера
4 английский (дефолтный) если язык, что определился не входит в поддерживаемые языки

И полученный результат используется для выбора текста

но не могу согласовать это с системой редиректа. она просто игнорирует куку force_lng и если юзер (с ру браузером) сменил язык на site.com/de/ и потом зашел на site.com, то его перекинет на site.com/ru/

что хотелось бы от редиректа?
1 если пользователь ранее выбрал язык (force_lng) и зашел на морду, то его редиректит на нужный языковый урл
2 иначе как и щас от языка браузера
3 но если итоговый язык не поддерживается, то выбирается дефолтный: en
4 если язык en, то никакой редирект не делать.

То есть енг-юзер блуждает по сайту как есть, а тот, кто ранее насильно сменил язык (кука) или поддерживаемый язык браузера редиректися в site.com/<язык>/

то есть что образно получается

1 редирект должен учитывать форсированный язык (кука)
2 чтобы не было site.com/en/ должен быть способ задать урл по которому язык будет выставлен en
(по идее он уже есть. это явный site.com/?force_lang=en (лишь бы от него не было побочных эффектов))
3 ну и по хорошему разве не может движок сам определять язык и заведовать кукой и передать в шаблон типа $userlang, а не писать в шаблонах детект самому, если уж он все равно не может без редиректа
ulan
Posts: 1437
Joined: Fri Nov 23, 2018 2:49 pm

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

Post by ulan »

admin wrote: Thu Apr 16, 2020 9:39 am потому что стоит

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

надо просто подумать , не строчить сразу, а задуматься на 5 минут будет ли работать так как вы хотите
ну можно еще раз почитать что я пишу
мне не нужна /en/ страница для енглиша
он должен быть на морде
XLodger
Posts: 32
Joined: Wed Aug 14, 2019 9:22 am

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

Post by XLodger »

я сделал проще для урла domain.com/en/ просто поставил реврайт на domain.com
и у меня не подставляет при перестановке для этого языка /en/ в урл а сам язык меняется на en
все остальные языки /de/ /it/ с этой частью просто и все
Last edited by XLodger on Thu Apr 16, 2020 11:33 am, edited 1 time in total.
admin
Site Admin
Posts: 37994
Joined: Wed Sep 10, 2008 11:43 am

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

Post by admin »

Ок, добавил в ап редирект по куке

если стоит кука COOKIE['force_lng'] и человек открывает индекс без GET['force_lng'] , то редиректим на язык указанный в куке.

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

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

Post by ulan »

admin wrote: Thu Apr 16, 2020 11:32 am Ок, добавил в ап редирект по куке

если стоит кука COOKIE['force_lng'] и человек открывает индекс без GET['force_lng'] , то редиректим на язык указанный в куке.

смотрите все ли ок у вас, если нет то показывайте какой переход работает не так с хедерами
Да ридерект срабатывает как надо
как теперь мне только корень сделать английским по умолчанию если
location = / {
index /scj/cgi/index.php?force_lng=en;
}
не помогло(
admin
Site Admin
Posts: 37994
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 »

ну конкретно должен быть ЕН язык
ен язык не создавал на старнице языков (он как я понял дефолтный)
вот как его привязать к индексу с установкой кук и плюшек)))
может типа если сайт мультиязычный давать какому то языку привязку к морде?
admin
Site Admin
Posts: 37994
Joined: Wed Sep 10, 2008 11:43 am

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

Post by admin »

если вы заходите на сайт
и нет force_lng
то показывает дефолтный язык

если у вас не показывает деофлтный (ЕН) - значит стоит force_lng
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: 37994
Joined: Wed Sep 10, 2008 11:43 am

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

Post by admin »

дефолтный - тот который при редактировании написан как main
Don't forget to run script update
Locked