By
valdemark
Сразу напишу, я чайник, и можно сказать "непонимэ" посему будьте любезны - поподробнее
Дано: есть условная страница index.php на которой вывод сообщений нужно сделать на четырех или больше языках.
Нажатие кнопки запускает скрипт который записывает куку по которой определяется язык пользователя.
Если кука не задана, язык выводится по умолчанию, если задана, то согласно значению куки.
И как всегда что-то не работает... кука не пишется. А что не так я понять не могу... Уже пол дня верчу и так и этак...
Я накидал такой код:
<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>Мультиязычность</title><script> function is_en() { var cookie_name = "lang"; // Имя куки var lang_id = document.getElementById("button_en").value; //Получаем значение куки по нажатию на кнопку expires = new Date(); expires.setTime(expires.getTime() + (1000 * 86400 * 365)); // Вычисляем срок хранения cookie set_cookie(cookie_name, lang_id, expires); // Устанавливаем куку с помощью функции set_cookie } function is_ru() { var cookie_name = "lang"; var lang_id = document.getElementById("button_ru").value; expires = new Date(); expires.setTime(expires.getTime() + (1000 * 86400 * 365)); set_cookie(cookie_name, lang_id, expires); } function is_fr() { var cookie_name = "lang"; var lang_id = document.getElementById("button_fr").value; expires = new Date(); expires.setTime(expires.getTime() + (1000 * 86400 * 365)); set_cookie(cookie_name, lang_id, expires); } function is_de() { var cookie_name = "lang"; var lang_id = document.getElementById("button_de").value; expires = new Date(); expires.setTime(expires.getTime() + (1000 * 86400 * 365)); set_cookie(cookie_name, lang_id, expires); </script> <style> </style> </head> <body> <?php/*Проверяем есть ли кука*/ if (isset($_COOKIE['lang'])){ $langCode = $_COOKIE['lang']; /*если она есть выбираем файл языка по куке*/ } else { $langCode = 'ru'; /*если куки нет язык по умолчанию - русский*/ } include $_SERVER['DOCUMENT_ROOT'].'/language/lang_'.$langCode.'.php'; /*присоединяем файл с языком*/ ?> <p> <?php echo $lang['error'];?> </p> <!-- Тут выводится мультиязычное сообщение --> <p> <?php echo $_COOKIE['lang'];?> </p> <!-- Тут я проверяю что за кука записана в текущий момент --> <p><input type="button" id = "button_en" value="en" onclick="is_en()"></p> <p><input type="button" id = "button_ru" value="ru" onclick="is_ru()"></p><p><input type="button" id = "button_fr" value="fr" onclick="is_fr()"></p><p><input type="button" id = "button_de" value="de" onclick="is_de()"></p> </body></html>и четыре языковых файла. следующего содержания
lang_ru.phplang_en.phplang_fr.phplang_de.php <?php $lang['error'] = "Ошибка";?> и <?php $lang['error'] = "Error";?> и т.д.
Question
forest_moss
всем привет!
очень хочется узнать, кто как оформляет переключение языков на своих сайтах.
было бы круто, если бы сюда написал свой вариант каждый мимо проходящий)))
просто хочется узнать, как принято, и что распространено. включая и простые и сложные подходы.
Link to comment
Share on other sites
5 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.