18 lines
1.7 KiB
Markdown
18 lines
1.7 KiB
Markdown
# D-024. Перенаправление на выбранный язык
|
|||
|
|
|
||
|
|
Статус: принято, 21.10.2026. Уточняет [D-007](D-007-language-detection.md), пункт 2.
|
||
|
|
|
||
|
|
## Контекст
|
||
|
|
|
||
|
|
По D-007 перенаправление шло только при первом заходе без cookie. Тогда выбравший русский при следующем заходе на `veilix.app/` видел бы английский.
|
||
|
|
|
||
|
|
## Решение
|
||
|
|
|
||
|
|
1. Без префикса открывается язык домена по умолчанию (`domains.defaultLocale`, сейчас везде en). Адрес с его префиксом (`/en/…`) перенаправляется на адрес без префикса.
|
||
|
|
2. Адрес без префикса и cookie `NEXT_LOCALE` с языком, включённым на домене, — перенаправление на этот язык, если он не язык по умолчанию.
|
||
|
|
3. Cookie нет — язык браузера среди включённых на домене, затем страна из `X-Geo-Country`, затем язык по умолчанию; перенаправление, если вышел не язык по умолчанию.
|
||
|
|
4. Cookie ставит только переключатель языка. Поисковых ботов (`isbot`) не перенаправляем никогда; перенаправляются только запросы GET и HEAD.
|
||
|
|
|
||
|
|
## Последствия
|
||
|
|
|
||
|
|
Так же по умолчанию работает next-intl. Выбор английского в переключателе тоже запоминается и отключает перенаправление по языку браузера.
|