Задать вопрос

Правильно организованный выбор языка для сайта

Каким образом правильно организовать выбор языка пользователю?

Есть сайт, который по-умолчанию на русском языке, но появилась поддержка других языков.

По-дефолту так и открывается mysite.com. Англоязычная версия — mysite.com/en/

Но что делать если пришёл англоговорящий человек? Сейчас показывается русская версия сайта, а где-то в уголке есть переключатель языков.

Есть ли какая-то общепринятая практика?

Если куда-то редиректить сразу в зависимости от языка человека — то сразу вопросы — как определить язык (ip страны vs настройка в бравзере), и как заредиректить, чтобы с поисковиками всё ок осталось?
  • Вопрос задан
  • 7459 просмотров
Подписаться 5 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 6
dshvechikov
@dshvechikov
думаю логичнее делать проверку, если язык браузера, к примеру, входит в число поддерживаемых языков, то отображать его, если нет, то английский, как интернациональный
Ответ написан
@gro
У нас так:
1. Все языковые версии по каталогам.
2. С корня редирект на языковую версию.
3. Определяем язык по IP + Accept-Language.
4. Если пользователь переключает язык — запоминается в куках. В следующий раз с корня редиректим на выбранный язык.

Проблем с поисковиками особых не было.
Ответ написан
Комментировать
alekciy
@alekciy
Вёбных дел мастер
Устанавливать язык исходя из Accept-Language заголовка с клиента. Если там нет языка поддерживаемого сайтом, то выводится язык по умолчанию. Это для первого входа. После того, как пользователь сам явно выбрал нужный язык пишем его в куки и для повторных входов используем его.
Ответ написан
@max_rip
Думаю все таки лучше сделать попап, с выбором языка. А показывать его если локаль браузера отличается от выбранного языка сайта, ну и показывать его только один раз.
Ответ написан
Комментировать
@xsash
На основе IP
Не берусь за авторство идеального кода, сделал на одном проекте так: pastebin.com/9peMcj2y

В папке geo (база от maxmind.com)
geoip.dat geoip.inc geoipregionvars.php
Ответ написан
@egorinsk
Не очень-то вежливо молча редиректить. Гораздо лучше, если английский пользователь впервые заходят на русскую страницу, показать вверху большую красивую плашку с предложением читать сайт на родном языке.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы