Как создать простой переключатель языка файлов cookie PHP?

Я пытаюсь настроить, как я думал, простой переключатель языка. Я думал, что буду использовать файлы cookie PHP, но они работают не так, как задумано.

Я прочитал несколько руководств по файлам cookie и просмотрел несколько подобных примеров здесь, в StackOverflow, но мне, должно быть, чего-то не хватает, потому что он не может заставить его работать должным образом.

Я устанавливаю язык, передавая его как переменную URL (lang = en или lang = ru). Кажется, все в порядке. Однако код, который у меня есть на данный момент, который устанавливает файл cookie, кажется, на один шаг отстает, поэтому изначально он не имеет значения (я бы хотел, чтобы он был по умолчанию 'en'), а затем, если пользователь нажимает 'ENG' она по-прежнему не имеет значения, а затем, если пользователь нажимает на русский язык, значение отображается как «en», а затем, если я снова нажимаю кнопку «ENG», значение отображается как «ru».

Вот код, который я сколотил:

if( $_GET['lang'] ) {
    $lang = (string)$_GET['lang'];
    setcookie( 'lang', $lang, time() + 60*60*24*30 );
} elseif( !isset($_COOKIE['lang']) ) {
    $lang = 'en';
} else {
    $lang = $_COOKIE['lang'];
}

Как только я получу эту работу, я собираюсь использовать значение cookie для отображения либо английского, либо русского меню, используя немного условного PHP.

Спасибо.

7
задан Matt 17 October 2011 в 13:19
поделиться