@tryvols
Front-End разработчик

Как на php реализовать многоязычность при помощи куки?

setcookie('lang', $_POST['lang']);

if(session_start()) {
    $_SESSION['lang'] = $_COOKIE['lang'];
} else {
    $_SESSION['lang'] = $_POST['lang'];
}

$lang = $_SESSION['lang'];

$defaultlang = 'rus';

if (!isset($lang))
{
   $lang = (!file_exists("./lang/{$lang}.php")) ? $defaultlang : $lang;
}

echo "lang=".$lang;

require "./lang/{$lang}.php";


<form action="?set=lang" method="post">
        <select name="lang">
            <option value="rus">ru</option>
            <option value="eng">en</option>
        </select>
        <input type="submit" value="ok" />
    </form>


Основная проблема в том, что до куки доходит только со второго раза
  • Вопрос задан
  • 179 просмотров
Пригласить эксперта
Ответы на вопрос 2
ak-o
@ak-o
web-developer
Как вариант разобрать заголовок "Accept-Language" и сразу выдать "предпочитаемый язык" вместе с кукой. Которую скажем, меняем при необходимости (при выборе другого языка через селект, обновляем страницу, грузим нужный язык и ставим куку)

У себя же использую такую схему:
site.ru/some_page
site.ru/en/some_page
Можно и ru.site.ru / en.site.ru и т.д
Использую такую схему потому что поисковики ищут на странице специальные ссылки, в которых как бы говорится, что эта страница существует на N языках. Тем самым они понимают что это один и тот же контент.
Ответ написан
Комментировать
@KIN1991
Python, PHP developer
реализовывать мультиязычность через куки, не очень хорошая практика, лучше реализовывать через url.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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