@semki096

Зачем в мультиязычном сайте в адресной строке указывают язык, если его можно брать из сессии?

Зачем к примеру toster.ru/ru/node указывать язык в адресной строке, если можно брать язык клиента из сессии?

Вот что я пока делаю. Определяю язык по браузеру клиента
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);

Далее сверяю, есть ли в моей модели данный язык, если есть записываю его в сессию.
$_SESSION['lang'] = $lang;
Если нет - ставлю дефолтный.

Вопрос - могу ли я обойтись без языка в адресной строке, и может ли это быть чревато и чем? Буду благодарен за советы.
  • Вопрос задан
  • 173 просмотра
Решения вопроса 5
@antimind
Как минимум чтобы можно было перейдя по ссылке попасть на нужный язык.
Ответ написан
@oxidmod
Можете.
Одна из причин почему язык зашивают в ссылке - можно шарить ссылку.
А так вы скинете ссылку на ваш сайт другу с другой страны, а он увидит другой контент.
Ктому же, поисковики не очень любят, когда по одной ссылке разный контент.
Да и вообще на разных языках можно иметь сайты с разной структурой контента. Какая-то инфа интересна для ru комьюнити, но нет смысла ее переводить для en
Ответ написан
Kozack
@Kozack
Thinking about a11y
Ну, как минимум, чтобы:
  1. Разграничивать сайт структурно
  2. Пользователь мог относительно легко изменить язык
  3. Вам было проще реализовать переключатель (Простая ссылка против обновления данных в сесиии)
Ответ написан
ThunderCat
@ThunderCat
{PHP, MySql, HTML, JS, CSS} developer
для поисковых систем, дабы не путать контент по 1 урл с разным содержимым, кроме того для перенаправления на локализованные версии сайта
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы