Добрый день, уважаемые. Я не очень силён в PHP, потому такой вопрос. Подскажите пожалуйста, как можно реализовать сайт на нескольких языках? Примерно я понимаю суть, т.е. в индексе , происходит выбор языка в зависимости от этого на следующих страницах, в местах где текст вызываются переменные , которые находятся в соответствующих папках выбранного языка. Но вот реализация пока неизвестна. Может подскажите где искать, а может сможете на простейшем примере обяснить. Спасибо заранее.
-- rus.php PHP: <?php $word[0] = 'привет'; $word[1] = 'мир'; $word[2] = 'Это тест русского языка'; ?> -- eng.php PHP: <?php $word[0] = 'hello'; $word[1] = 'world'; $word[2] = 'This is a test of the english language'; ?> -- index.php PHP: <?php $lang = array(0 => 'rus', 1 => 'eng'); include($lang[rand(0,1)].'.php'); echo $word[0].', '.$word[1].'!<br>'.$word[2]; ?>
Это один из простейших способов , но ечли Вы планируете делать админку для языков, то этот способо не самый удачиный. Иногда вместо массива используют список констант. eng.php PHP: <?php define('HELLO', 'Hello'); ?> rus.php PHP: <?php define('HELLO', 'Здравствуйте'); ?> index.php PHP: <?php include($_GET['lang'] == 'eng' ? 'eng' :'rus') .'.php'; echo HELLO; ?>
Нет, админки не будет. Всё достаточно прсто. Спасибо большое за скрипт. Последний вопрос опять же из-за неопытности, каким образом происходит выбор языка, имеется ввиду кодирование. Например, если у меня выбор происходит с помощью HTML: <a href="takaja to stranica jazika"> <img src = "flag_rus.png"></a> т.е. как этот пхп параметр всативть в ссылку? Большое спасибо.
я делал так, 1. если чел зашел впервые - берем дефолтный язык 2. если чел заходил и сменил язык то была создана кука с тем языком т.е. при последующих заходах будет тот язык который он выбрал 3. есть к примеру два файла (rus.lng, eng.lng) в одном к примеру такая структура во втором аналогичная только с другим языком $lang = array ( 'index_title' => "Титулка", 'index_buttom' => "Кнопка", )'; and so on... а пользуешься echo $lang['index_title']; ИМХО просто и удобно...
Если зашел впервые, то берем из настроек браузера (HTTP_ACCEPT_LANGUAGE), если такого нет, то тогда язык по-умолчанию.
Очень неудобно, когда в зависимости от моей страны за меня выбирается язык. Зеркало проекта, расположенное на ближайших ко мне серверах — да, но язык должен выбираться МАКСИМУМ по языку браузера. Есть проекты, вроде Facebook, где сделан выбор языка именно по браузеру. Хотя был случай, когда я был в Германии: браузером я пользуюсь интуитивно, т.е мне плевать на язык. Решил зайти на Facebook к себе, раз — главная страница на немецком языке с их "Willkommen". Как-то до ужаса непривычно, когда за тебя выбирают язык. В США этой разницы, право сказать, не чувствуется (вот что значит унификация). Поэтому, лучше всего определение языка делать по браузеру, чем по географическому положению. Хотя иногда это и приводит к некоторым неожиданным моментам, вроде Facebook, но, зато, меньше шансов прогадать. Ведь в большинстве случаев посетитель выбирает тот язык браузера, носителем которого он является.
Я дал это просто, как альтернативу, а приоритеты над выбором языка можете выставлять, как Вам угодно .
Чтобы сохранять язык при переходе по сайту заноси его в сессию, а в начале проверяй если переменной такой в сессии нет то ставь дефолт, если есть и она соответсвует одному из языков то бери нужный язык.
имхо лучше хранить в куках, а файлы с языками раскидать по разным директориям =) и делать инклуд. Это если на тракторе. А я думаю, ради многоязыкового сайта можно и замутить с БД. БД для текста самое то.
Петр Советовали мне както эту штуковину. Но как по мне - для небольших фраз и надписей - лучше из констант брать.