Определение языка по настройкам пользователя

На сайтах с поддержкой переключения языков нужно определять язык, выставляемый по умолчанию. Для этого мы используем HTTP_ACCEPT_LANGUAGE и cookies.

Структура сайта

Предположим, что сайт имеет разделы на русском, английском и немецком языках по адресам /ru/, /en/ и /de/. Чтобы не ставить лишних редиректов и не терять поисковый эффект от главной страницы, мы используем язык по умолчанию на /. То есть при дефолтном английском это выглядит так:

  • Английский: /
  • Русский: /ru/
  • Немецкий: /de/

Если пользователь введёт запрос /en/about/, он будет автоматически переадресован на /about/ с английским контентом.

Определение языка

Мы определяем язык только при заходе на главную страницу. Это важно, т. к. пользователю, пришедшему по ссылке с указанием языка, нужно включать именно этот язык вне зависимости от настроек.

Алгоритм выглядит примерно так:

  1. Смотрим cookies. Если указан параметр language, переадресуем на соответствующий язык и обновляем cookie.
  2. Смотрим HTTP_ACCEPT_LANGUAGE, разбираем его по частям. Важно понимать, что язык en и, к примеру, en-us — все равно английский. Переадресуем на соответствующий язык, ставим cookie с параметром language.
  3. Если HTTP_ACCEPT_LANGUAGE не указан (часто встречается у поисковых роботов или пользователей, использующих фильтрацию сетевого трафика), то оставляем язык по умолчанию (адрес остаётся /) и ставим cookie с этим языком.

Переключение языка

При любом запросе с указанием языка мы обновляем cookie, выставляя значение указанного языка. Если посетителю нужно переключиться на язык, выставленный по умолчанию (в нашем примере это английский), т. е. который не указывается в URL явно, пользователь отправляется на /en/, по которому сервер отвечает новым значением cookie и редиректом на /. То же справедливо для подразделов, если есть возможность переключать язык на внутренних страницах без выхода на главную.

Т. е. ссылки для переключения языка для раздела about будут такими:

  • Английский: /en/about/ → /about/
  • Русский: /ru/about/
  • Немецкий: /de/about/

Прочие системы

Остальное совсем просто: хранение данных с указанием языка, таблица приоритетности языков, парсер HTTP_ACCEPT_LANGUAGE и т. п. Мы также используем флаг MULTILANGUAGE в конфигурации сайта для включения режима поддержки нескольких языков.

При реализации важно помнить, что поисковые системы тоже приходят на сайт и проходят по редиректам, игнорируя cookies, поэтому по прямым запросам нужно всегда выдавать релевантные данные.

← Все записи блога


Контактная информация

Особенности решения

Расчет стоимости и окупаемости

Ваше имя

Пожалуйста, введите свое имя:

Адрес электронной почты Результаты расчета стоимости решения будут отправлены на почту.

Пожалуйста, введите правильный адрес электронной почты:

Контактный телефон

Пожалуйста, введите свой телефон:

 

Выбор особенностей решения →

Название организации
Адрес сайта
Отрасль Выберите отрасль для моментального вывода примерной стоимости решения.
Комментарии при необходимости
 

Расчет стоимости и срока окупаемости решения →

Результаты расчета

Ниже выводится примерная стоимость решения для выбранной вами отрасли. Как правило, решение направлено на увеличение продаж и сокращение операционных расходов, поэтому оно очень быстро окупает себя и начинает приносить чистую прибыль.

Примерная стоимость решения
Примерный срок окупаемости от  до  месяцев

Более подробный расчет с конкретными предложениями вы получите по электронной почте в ближайшее время. По всем вопросам обращайтесь по электронной почте info@verelle.com или по телефону +7 495 795-54-97. Спасибо за обращение в компанию Verelle.