Смяна на езика в страницата чрез сесия.
Публикувана от ko6rata на January 19 2011 10:41:56

Разширена новина
В този урок ще покажа как да направите страницата си на повече от 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();
?>

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