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

Форум PHP

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

 

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

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

тема: мультиязычность - способ?
 
 автор: oppo   (14.10.2005 в 01:55)   письмо автору
 
 

Как по легкому организовать мультиязычность?
Есть демо сайт -....http://www.gop.xeno.ru/real/ нужно 3 языка вся информация вводиться в основном через чекбоксы...
разными могут быть только названия ссылок/категорий и подкатегорий а также описание недвижимости и агента -краткое/расширенное..
Можно конечно кинуть сайт в 3 папки RUS... /ENG и /EST но может какую функцию применить чтоб конвертировала в базу в зависимости от языка и выводила (сжатый контент)
по выбранному языку или лучше префиксы поменять в таблицах где данные будут разные?

   
 
 автор: Loki   (14.10.2005 в 09:16)   письмо автору
 
   для: oppo   (14.10.2005 в 01:55)
 

Если информация хранится в БД, то можно завести по столбцу на каждый язык и выводить данные в зависимости от выбранных установок. Аналонично можно и с файлами: подключать файлы с соответствующими перфиксами. Но три папки - проще всего, так как нет гарантий что сайт для каждого языка будет абсолютно идентичен (у меня, например, за неделю до окончания работ заказчик решил что русская и английская версия будут различаться по структуре). Так что лучше от таких сюрпризов подстраховаться.

   
 
 автор: cernos   (14.10.2005 в 09:33)   письмо автору
 
   для: Loki   (14.10.2005 в 09:16)
 

Мне кажется лучше хранить се слова в отдельных файлах rus.php engl.php
В этих файлах массивы со всеми встречающимися словами.

   
 
 автор: elenaki   (14.10.2005 в 11:32)   письмо автору
 
   для: cernos   (14.10.2005 в 09:33)
 

я считаю, что лучше в базе хранить, т.к. в текстовых файлах можно наделать много ошибок. я делала и трех-язычные сайты и сайты с неограниченным количеством языков. где админ сам добавлял нужный язык, а потом заполнял таблицы со словами на нем. уточнение - не по столбцу на каждый язык, а по строке. первый столбец в каждой таблице - lang, и потом выбирать строки, где lang= язык, выбранный пользователем и записанный в переменную сессии. при такой струкуре удобно и добавлять и удалять языковые версии.

   
 
 автор: Loki   (14.10.2005 в 12:45)   письмо автору
 
   для: elenaki   (14.10.2005 в 11:32)
 

Да, пожалуй так удобнее: столбцу хоть можно дать внятное название:)

   
 
 автор: oppo   (14.10.2005 в 14:52)   письмо автору
 
   для: elenaki   (14.10.2005 в 11:32)
 

Спасибо за ответы..Сайт использует MYSQL базу. То что в коде связано со статикой я заменил на констр. типа
"._DELETE ."
и вынес в russian.php констр. типа
 DEFINE("_DELETE","Удалить");

Мне нравиться примеры elenaki этим http://softtime.ru/forum/read.php?id_forum=1&id_theme=302я как то попользовался...Как я понял это так
-------------------------------------------- ----------------------------------------------------
| CategoryID | CategoryName | | CategoryID | lang | CategoryName |
-------------------------------------------- ----------------------------------------------------
| 1 | For rent | ==========> | 1 | eng | For rent |
-------------------------------------------- --------------------------------------------------------
| 2 | For sale | ==========> | 1 | rus | Для продажи |
-------------------------------------------- --------------------------------------------------------
как в сессиях передать язык ?
..... еще нашел такую ссылку http://www.tonymarston.net/php-mysql/internationalisation.html

   
 
 автор: cheops   (14.10.2005 в 14:42)   письмо автору
 
   для: oppo   (14.10.2005 в 01:55)
 

Приведу несклько ссылок по теме
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=5157
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=1012

   
 
 автор: oppo   (14.10.2005 в 20:59)   письмо автору
 
   для: cheops   (14.10.2005 в 14:42)
 

спасибо ..кое- что взял Сделал переключение пока ...

$menu_lang = "<select name='newlangsel' onChange=\"self.location=this.options[this.selectedIndex].value;\" class=\"op\">\n";
    $handle=opendir('languages');
    while ($file = readdir($handle)) 
    {
        if (ereg("(.+)\.php", $file, $matches)) 
        {
            $langFound = $matches[1];
            $languageslist .= "$langFound ";
        }
    }

Но с регулярными у мя слабенько почему если в папке languages появляется файл (в ходе исправлений языка)например не с расширением php -(russian.php) а russian.php.BAK
все равно он по ereg вытаскивается?

   
 
 автор: cheops   (15.10.2005 в 00:49)   письмо автору
 
   для: oppo   (14.10.2005 в 20:59)
 

Да, должен, так как нет ограничений на границу слова.

   
 
 автор: localGhost   (15.10.2005 в 01:43)   письмо автору
 
   для: cheops   (15.10.2005 в 00:49)
 

я у себя сделал так: при первой загрузке страницы в сессию заноситься ru или eng и т.д., если тексты больше и храняться в БД то да, ту нужно создавать отдельные столбца в таблице для каждого языка, а если есть на странице короткие фразы или слова (чтоб не писать страницу с оформлением для каждого языка по отдельности) я использовал ини файл
lang_ru.ini:

; main menu:
1001 = Главная
1002 = Каталог
1003 = Форум
1004 = Чат
1005 = Обратная связь

; buttons
2006 = Отправить сообщение
2007 = Удалить сообщение

; e.t.c. ...

а потом парсил необходимый файл для выбранного языка с помощью функции parse_ini_file() в переменную и подставлял в нужные места... получилось мне кажеться достаточно удобно.. а если надо запомнить какой язык выбрал пользовател, просто записываю в плюшку (в куку).

   
 
 автор: oppo   (19.10.2005 в 11:27)   письмо автору
 
   для: localGhost   (15.10.2005 в 01:43)
 

всем спасибо (elenaki идею реализовал) таки добил ...http://www.uusmets.ee/ помучался правда с ссесиями (пробелы нельзя оставлять и вывод допускать в header ) .
==cheops Да, должен, так как нет ограничений на границу слова==
:) ага $ надо

  if (ereg("(.+)\.php$", $file, $matches)) 



Надо бы придумать чтоб если по чебоксам проставить выбор всех языков то чтоб копировались данные парралельно для всех языков в MYSQL по insert или update (для легкости чтоб не делать ввод для каждого из языков) Но это больше для души чем кому то.

   
Rambler's Top100
вверх

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