download.bg
 Вход Списание  Новини  Програми  Статии  Форум  Чат   Абонамент  Топ95   Архив 

Многоезичен сайт

Автор
Съобщение
lavleis
Нед, 01.03.09, 18:30
Здравейте! Може и да има такива теми тук, но нещо ми убягнаха. Как може да се направи сайта на няколко езика, има ли някаква програма или нещо от сорта. Не ми се вярва сайтовете които са със по 5-6 езика да са си играли да ги превеждат със google.
Поздрави!
anonymous
Нед, 01.03.09, 20:47
Ето ти един прост вариант. Предварително се уговаряме, че превода си е от теб.
<?php
//bulgarian
if (mysql_query("CREATE TABLE bg (id int(11),tekst text)"))
   echo "Table bg [OK]<br />";
else
   echo "Failed to create table bg<br />";
 
//german
if (mysql_query("CREATE TABLE de (id int(11),tekst text)"))
   echo "Table de [OK]<br />";
else
   echo "Failed to create table de<br />";
//...................
//други таблици за език, който ще ползваш
//.................
//какъвто ти там език трябва
if (mysql_query("CREATE TABLE ru (id int(11), tekst text)"))
   echo "Table ru [OK]<br />";
else
   echo "Failed to create table ru<br />";
?>

След което си INSERT - ваш в съответните таблици съответните преводи.
Разбира се може да си направиш колкото полета искаш в таблиците в зависимост от нуждите на сайта ти.

Може да е където и да е, но да кажем в index.php гледаме избрания език:
$lang = htmlspecialchars($_GET[lang]);
switch ($lang) {
   case 'bg':
    ; //каквото искаш да става за български език
   break;
   case 'de':
    ; // каквото искаш да става за немски
   break;
   case 'ru':
    ; // и така за всеки един език, който ще има в сайта ти
   break;
  // други case за другите езици
   default: 
     $lang = "XX"; // заместващ ХХ с някав език за да няма изненади като
    // се обращаш към база данни
 
   // е тука е езика, който искаш като се влезе в сайта ти информацията
    // да е изписана на него
   // и този език не е описан в case
   break;
}

Заявка към базата за избрания съответен език данни става
$query = musql_query("SELECT * FROM $lang");
// Заявката си я правиш с каквато си сложност искаш. 
// Идеята е, че таблицата към която се обръщаш се извлича от променлива 
 

Не забравяш да подаваш $lang във връзките си:
<a href="?lang=<?php echo $lang; ?>&other_var=show_it">виж хотелите по черноморието</a>

В случай, че не искаш да си претрупваш нещата ползваш сесийна променлива:
<?php
$_SESSION[lang] = ($_GET[lang]) ? htmlspecialchars($_GET[lang]) : $_SESSION[lang];
$lang = $_SESSION[lang];

Това е опростен начин. И макар, че сам го нахвърлял само, вярвам, че няма да имаш проблем при схващането на идеята.

Успех!

lavleis
Пон, 02.03.09, 18:01
Благодаря ти много за помощта. Ще видим какво ще стане ;)

Коментар

за нас | за разработчици | за реклама | станете автори | in english  © 1998-2024   Experta Ltd.