@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>


Основная проблема в том, что до куки доходит только со второго раза
  • Вопрос задан
  • 186 просмотров
Пригласить эксперта
Ответы на вопрос 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.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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