Re: Мультиязычный индекс
Posted: Thu Apr 16, 2020 9:39 am
Я делаю язык по мануалу 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, а не писать в шаблонах детект самому, если уж он все равно не может без редиректа
Там вставляется пхп код определения языка для пользователя в порядке приоритета
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, а не писать в шаблонах детект самому, если уж он все равно не может без редиректа