@semki096

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

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

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

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

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

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

Войти через центр авторизации
Похожие вопросы
19 июл. 2019, в 08:49
35000 руб./за проект
19 июл. 2019, в 07:57
65000 руб./за проект
19 июл. 2019, в 06:36
15000 руб./за проект