Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как удобнее всего сделать многоязыковый интерфейс?
 
 автор: ANGO   (07.01.2007 в 03:16)   письмо автору
 
 

Никогда не пробовал, каким образом лучше всего делать многоязычный интерфейс сайта? Что бы перевод можно было осуществить на каждой конкретной странице?
Кто то посоветует где почитать?

   
 
 автор: DEM   (07.01.2007 в 03:19)   письмо автору
 
   для: ANGO   (07.01.2007 в 03:16)
 

Ну тут или использовать

<?php
if($_GET['lang'] == "ru")
{
  echo 
"Выводим русский текст";
}
elseif(
$_GET['lang'] == "eng")
{
  echo 
"Выводим такой же текст но на английском";
}
?>



Или если есть регистрация, то храним выбранный язык в БД юзера

   
 
 автор: ANGO   (07.01.2007 в 03:36)   письмо автору
 
   для: DEM   (07.01.2007 в 03:19)
 

Да я типа так и делал ...
но сайт, блин, большой ...
я вначале закинул переменные типа

$Lang["Country"]="Страна";
$Lang["Region"]="Регион";
$Lang["City"]="Город";

в разные 3 файла для трех языков которые подключал тупо значением из сессии, типа так

include $_SERVER['DOCUMENT_ROOT']."/lang_".$LangID.".php";

удобно, и без условий, только по уполчанию в сессию при посещении первой страницы загоняется русский...
но возникла проблема, 3 файла по 200 строк перевода - не удобно. чето менять или добавлять ...
сделал в базе - считываю первое поле, и поле соответствующего языка в массив

$Lang=array();
while($row=mysql_fetch_assoc($res)){
$Lang[$row["Lang"]] = $row["La$LangID"];
}

значения массива типа такие получились:

[Login] => Вход
[Logout] => Выход 



а потом вывожу в нужных местах типа

$Lang["Country"]


так нагружает сервак немного ....

как бы это сделать удобнее?
может есть еще какие способы?

   
 
 автор: NIK   (07.01.2007 в 13:07)   письмо автору
 
   для: ANGO   (07.01.2007 в 03:36)
 

не стал разбираться как делали вы, но принцип кажется понял. Вообще обычно создают языковые файлы, в которых при помощи констант прописывают выражения на нужном языке. Затем на страницах сайта считывают откуда-то выбранный язык - файл, БД, сессии, куки - и подключают нужный языковой файл с выражениями. В самом коде страницы текстовые выражения заменяют на константы, которые прописывались в яз. файле. ИМХО это достаточно удобно способ. Я по крайней мере недостатков не вижу и сам использовал бы его.

Хранить выражения в БД тоже вариант, но среди недостатков имеется сложность в редактировании. Файл намного проще редактировать чем базу. Место всё-равно будет заниматься хоть на файлах, хоть на БД, как ни крути..

   
 
 автор: cheops   (07.01.2007 в 13:56)   письмо автору
 
   для: ANGO   (07.01.2007 в 03:16)
 

Возможно вас заинтересуют темы по ссылкам
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=1012
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=3578
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=3468
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=5157
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=6844
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=8320

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования