[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как запомнить выбранный язык?
sherxan
Cайт на двух языке - (ru, en) основное язык - (en). Уважаемые Программист скажите пожалуйста как сделать так чтобы после выбора языка (ru), вовремя перехода на главную страницу, вместе (www.site.com) загрузился (www.site.com/index.php?lang=ru) и наоборот.
мой код:

if(isset($_GET['lang']))
$language = $_GET['lang'];
else
$language = "";

if ($language == "ru") {
include("headerRU.php");
} else {
include("header.php");
}


<a href="index.php?lang=ru"><img src="img/flags/RU.gif" align="right" title="Russian"></a>
<a
href="index.php?lang=no"><img src="img/flags/GB.gif" align="right" title="English"></a>

Низкий вам поклон...
sg.com
вам нужно про куки почитать, суть приблизительно такая:


if(isset($_GET['lang']))
setcookie("lang", $_GET['lang'], time()+3600); /* срок действия 1 час */
// setcookie() задаёт cookie, которое будет передано клиенту вместе с другими HTTP- заголовками.
// Как и любой другой заголовок, cookie должны передаваться до того как будут выведены какие-либо другие данные скрипта (это ограничение протокола).
// Это значит, что в скрипте вызовы этой функции должны располагаться до остального вывода, включая вывод тегов <html> и <head>, а также пустые строки и пробельные символы.
// После передачи клиенту cookie станут доступны через массив $_COOKIE при следующей загрузке страницы. Значения cookie также есть в $_REQUEST.


if(isset($_COOKIE['lang']))
$language = $_COOKIE['lang'];
else
$language = "";

if ($language == "ru") {
include("headerRU.php");
} else {
include("header.php");
}
sherxan-g
Спасибо вам благородный человек, это то что нужно. Но возникла такая проблема, надо два раза кликнуть значок языка чтобы изменился язык сайта, как это исправить?
FatCat
if(isset($_COOKIE['lang']))
$language = $_COOKIE['lang'];
else
$language = "";

if(isset($_GET['lang']))
{
setcookie("lang", $_GET['lang'], time()+3600); /* срок действия 1 час */
$language = $_GET['lang'];
}

if ($language == "ru")
include("headerRU.php");
else
include
("header.php");


Так, наверное.

_____________
Бесплатному сыру в дырки не заглядывают...
sherxan-g
Спасибо вам . Низкий поклон...
Kusss
Попробуйте вот так
<?php
$langTime = time() + 3600*24*31*100;

// После выбора языка перезагрузить страницу
if(isset($_GET['lang'])) {
setcookie("lang", $_GET['lang'], $langTime);
header('Location: '.$_SERVER['HTTP_REFERER'] );
die();
}


if (isset($_COOKIE["lang"])) {
// Если выбран язык
switch ($_COOKIE["lang"]){
case "rus":
define("LANG","rus");
break;
case "eng":
define("LANG","eng");
break;
default:
setcookie("lang", "rus", $langTime);
header('Location: '.$_SERVER['HTTP_REFERER'] );
die();
break;
}
}
else {
// Язык пользователя по умолчению
preg_match('/^\w{2}/',$_SERVER['HTTP_ACCEPT_LANGUAGE'], $matches);
switch (strtolower($matches[0])){
case "ru":
define("LANG","rus");
break;
case "en":
define("LANG","eng");
break;
case "us":
define("LANG","eng");
break;
default:
define("LANG","rus");
break;
}
}


// Подключаем файл с нужным языком
include_once 'lang/lang_'. LANG .'.php';

<a href="index.php?lang=rus"><img src="img/flags/RU.gif" align="right" title="Russian"></a>
<a
href="index.php?lang=eng"><img src="img/flags/GB.gif" align="right" title="English"></a>
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.