TopSladur.com - Кой е най-големия?
Помогни ни да направим Uroci.net по - богат! Добави урок

Смяна на езика в страницата чрез сесия

PHP » PHP
mafia605   трудност:    видян: 4721

В този урок ще покажа как да направите страницата си на повече от 1 език чрез сесия.
Първо ще създадем файла settings.php, който съдържа всички функции.
Ето и кода на файла settings.php:
------------------------------------------
<?php

// тази функция проверява дали съществува сесията 'lang' и ако съществува според това дали е bg, empty или en да
// инклудва файла за съответния език
function language() {
if(empty($_SESSION['lang']))
{
include('en.php');
}
elseif($_SESSION['lang'] == "en")
{
include('en.php');
}
elseif($_SESSION['lang'] == "bg")
{
include('bg.php');
}
}

// тази функция проверява съдържанието на сесията 'lang' и показва езика в момента и бутон за смяната му
function disp_language() {
if(empty($_SESSION['lang']))
{
echo '<a xhref=index.php?lang=bg>bg</a> en';
}
elseif($_SESSION['lang'] == "en")
{
echo '<a xhref=index.php?lang=bg>bg</a> en';
}
elseif($_SESSION['lang'] == "bg")
{
echo 'bg <a xhref=index.php?lang=en>en</a>';
}
}

// Това е функцията за хедъра на index.php

function disp_header(){
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<? echo CHARSET; ?>">
<title>fgdgfghf</title>
</head>
<body>
<?
}

// Това е функцията за футъра на index.php
function footer() {
echo '
</body>
</html>';
}
?>

---------------------------------------------

След като сме създали файла с функцийте settings.php сега ще създадем файловете с езика, които са en.php и bg.php
Сега ще покажа каква е структурата на файловете. Ще покажа и за двата файла en.php и bg.php.
Ето и файла en.php, където в конструкцията define("HEADER", 'Lesson made for uroci.net'); HEADER e името чрез което ще показвате текста, който сте задали в единичните кавички:

---------------------------------

<?php
define("CHARSET", 'iso-8859-1');
// Tekstovoto suobshtenie
define("HEADER", 'Lesson made for uroci.net');
?>

--------------------------

Ето и кода на файла bg.php:

----------------------------

<?php
define("CHARSET", 'windows-1251');
// Tekstovoto suobshtenie
define("HEADER", 'Урока е направен за uroci.net');
?>

-------------------------------

Остана да създадем файла index.php, на който ще изкараме съобщението
HEADER и бутони за смяна на езика. Ето как ще стане това, кода на файла index.php:

--------------------------------------

<?php
session_start();

// Инклудваме файла settings.php, който сме направили с всички функции
include('settings.php');

// Проверяваме дали е натиснато бутончето за смяна на езика или е влузнато за първи път
if(empty($_GET['lang']))
{
}
elseif($_GET['lang'] == "bg")
{
if($_SESSION['lang'] = "en")
{
unset($_SESSION['lang']);
$_SESSION['lang'] = "bg";
}
}
elseif($_GET['lang'] == "en")
{
if($_SESSION['lang'] = "bg")
{
unset($_SESSION['lang']);
$_SESSION['lang'] = "en";
}
}

// Показваме функцията language() от файла settings.php, която провурава сесията 'lang' и инклудва съответния файл
// с езика


language();

// Показваме функцията disp_header() от файла settings.php, която съдържа шапката на index.php

disp_header();

// Показваме функцията disp_language() от файла settings.php, която съдържа бутоните за смяна на езика


disp_language();

// Тук показваме текста от HEADER, който сме задали в файловете за езика

echo '<br><div align="center">';
echo HEADER;
echo '</div>';

// Функцията footer() съдържа футера на файла index.php

footer();
?>

------------------------------

Това е всичко. По този шаблон можете да добавите още езици освен показаните 2 в този урок. Надявам се да съм бил от полза!

автор: mafia605



Коментари (11)

jooorooo на 18.12 2006 в 20:29ч.
не съм проучил ф-ията language() и реших да го пробвам. мо ми дажа грешка на settings.php на 55-ти ред, демек ?>
jooorooo на 18.12 2006 в 20:33ч.
Parse error: syntax error, unexpected $end in D:10.12.2006news systemstestovasettings.php on line 55
mafia605 на 18.12 2006 в 22:33ч.
Сега видях че съм сложил без да искам по едно х пред href в функцията disp_language(). А колкото до функцията language(), няма проблем, кажи кво ти дава.
jooorooo на 18.12 2006 в 22:55ч.
прочетох на бързо за функцията и се оправих. в settings.php това трябва да е защото не вади резултат
jooorooo на 18.12 2006 в 23:45ч.
не го изкара системата? в сетингс.пхп не трябва да е а трябва да е
jooorooo на 18.12 2006 в 23:45ч.
? echo чарсет трябва да стане
charmed на 16.01 2007 в 09:46ч.
Това не сменя нищо освен кодировката на сайта, а езика си остава същият.
valant на 01.06 2007 в 19:20ч.
Как да направя така, че страницата ми да се зарежда на en, a не на bg?
dobritu на 11.08 2007 в 20:04ч.
При мен всичко си върви , само че смених това :
echo 'bg en';
}
elseif($_SESSION['lang'] == "en")
{
echo 'bg en';
}
elseif($_SESSION['lang'] == "bg")
{
echo 'bg en';

с това :

echo 'bg en';
}
elseif($_SESSION['lang'] == "en")
{
echo 'bg en';
}
elseif($_SESSION['lang'] == "bg")
{
echo 'bg en';

Просто бяха объркани и не излизаше като линк, иначе всичко си работи сменя си езика и не само charset сменя целия език :-)
azerot на 17.07 2008 в 17:39ч.
яко е, че може да си направиш темплейт доста лесно :)
ivanbratanov на 12.08 2008 в 12:53ч.
КАКВО ТРЯБВА ДА ПРОМЕНЯ В ТОВА ЗА ДА ДОБАВЯ ОЩЕ ЕДИН ЕЗИК?

// Проверяваме дали е натиснато бутончето за смяна на езика или е влузнато за първи път
if(empty($_GET['lang']))
{
}
elseif($_GET['lang'] == "bg")
{
if($_SESSION['lang'] = "en")
{
unset($_SESSION['lang']);
$_SESSION['lang'] = "bg";
}
}
elseif($_GET['lang'] == "en")
{
if($_SESSION['lang'] = "bg")
{
unset($_SESSION['lang']);
$_SESSION['lang'] = "en";
}
}

Регистрирайте се, за да добавите коментар

реклама

© Всички права запазени. 2006-2008. Created by: Site.bg
Препоръчваме: IT Новини | Кино и игри | Диплома.бг | Paparak.bg | Тунинг Портал | uchenik.com | TRAVEL туризъм | Реферати | AmAm.bg | Иде.ли | Курсови работи | AnimeS-bg.com | Фото Форум | Запознанства | Мрежа от приятели | IT Light | Spodeli.net | Фото-Култ | Dalavera.net | IDG.BG | Teenproblem.net | mucunki.com | Блог - Образование | Fresh-BG.com | Hanovete.com | Bulfleet.com | Mythlands.com | Ohoboho.com | News24 | Казанлък.Com | Atol.bg | Elmaz.com | MobileBulgaria.com | Setcom.bg