Доброго времени суток
Сделал языковой переключатель и вот такую логику от которой подключая языковые пакеты и отображаю на выбранном языке данные.
if (isset($_GET['language_id']) && !empty($_GET['language_id']) && $_GET['language_id'] == "en") {
__IncludeLang($_SERVER['DOCUMENT_ROOT']. $templateFolder . '/lang/'.'en'.'/'.basename(__FILE__));
session_start();
if (isset($_REQUEST['language_id']))
$_SESSION["language_id"] = ($_REQUEST['language_id'] == 'ru') ? 'ru' : 'en';
} else if (isset($_GET['language_id']) && !empty($_GET['language_id']) && $_GET['language_id'] == "ru" || !isset($_GET['language_id']) && empty($_GET['language_id'])) {
__IncludeLang($_SERVER['DOCUMENT_ROOT']. $templateFolder . '/lang/'.'ru'.'/'.basename(__FILE__));
$_SESSION['language_id'] = "ru";
}
Данная логика подключена в header.php. В рамках текущей страницы все отлично работает, но если например я наглавной странице переключил язык на английский, далее захожу в категорию товаров, то там уже опять отображается руссая версия сайта и опять нужно делать выбор языка. Понятно что тут отрабатывает else if, но как можно сделать такую логику что бы от выбранного языка, сохранить его в сессию, и далее это же значение использовать на другой странице? Подскажите пожалуйста. По умолчанию у меня русский, я сейчас пытаюсь сделать что бы если выбрали язык то на основании этого отображаю данные на нужном языке, и если не выбрали язык то отображаю так же на русском.
Или какие еще есть варианты? Поделитесь пожалуйста опытом =)
ПРАВИЛЬНЫМ вариантом во всех смыслах будет передавать идентификатор языка в ссылке, каждый раз. Например site.ru/about/
- русская версия, а site.ru/en/about/
- английская. Или site.ru/about/?lang=kz
(такой себе вариант).
НИКОГДА не используйте для этого сессии, куки и прочее.
Как сможете сделать роутинг с языками, сами же выкинете свою поделку и сможете написать универсальный определитель/переключатель языка.
P.S. Языковой код для казахского языка - kk, а не kz))
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Странное поведение команды shell_exec: при выполнении она выполняется 2 раза
Появилась проблема с vk apiМетод messages
Всем привет, работу над веб проектами я веду локальноНа OpenServer