Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Мультиязычность контента

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Roler
Отправлено: 18 Ноября, 2009 - 17:17:48
Post Id



Посетитель


Покинул форум
Сообщений всего: 458
Дата рег-ции: Авг. 2008  
Откуда: Россия


Помог: 1 раз(а)




Понадобилось сделать сайт с контентом на трёх языках.
Все языковые варианты дублируют друг друга, то есть, есть одни и те же статьи, страницы, но на разных языках.
PHP, MySQL.

Как всё это лучше реализовать?
Делать таблицы для каждого языка не хочется.
 
 Top
JustUserR
Отправлено: 18 Ноября, 2009 - 17:52:48
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Roler Вообще можно придумать различные структуры в том числе и динамические - но проще всего сделать с помощью связанных запросов - то есть у статьей и заголовках и других мультиязычных текстов за есть уникальный номер - а сами оня хранятся в отдельной таблице по номерам - получится чтото типа string table - кстати именно так реализована мультиязычность в Win32-GTK


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Roler
Отправлено: 18 Ноября, 2009 - 18:19:15
Post Id



Посетитель


Покинул форум
Сообщений всего: 458
Дата рег-ции: Авг. 2008  
Откуда: Россия


Помог: 1 раз(а)




То есть, одна таблица для идентефикации и неизменяемых данных(категория, путь, изображение), и одна таблица с различными языковыми вариантами?
 
 Top
JustUserR
Отправлено: 18 Ноября, 2009 - 22:43:22
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Roler Я не знаю какая у вас общая запланированная структура базы данных и схемы таблиц - но идея заключается примерно в следующем
Вы делаете структуру таблиц как вы запланировали и вставляете в них неизменяемые данные а заместо разноязычного текста его уникальный табличный номер
Отдельная таблица является так называемой string table которая содержит помимо уникального ID неуникальный ключ текста (На который ссылаются данные в первой таблице)
Таким образом для получения конечного текста в SQL-запросе фигурирует только номер текста из первой таблицы и номер языка из cookie например


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Djin_dj
Отправлено: 18 Ноября, 2009 - 22:51:17
Post Id



Частый гость


Покинул форум
Сообщений всего: 180
Дата рег-ции: Июнь 2008  
Откуда: Россия


Помог: 0 раз(а)




Честно говоря с такими вещами сталкивался, ну про переключение языков - через сессию лучший вариант а по БД я делал таблицу для контента просто добавлял поле Lang и так уже ru en fr
 
 Top
Монстр_11111
Отправлено: 18 Ноября, 2009 - 23:29:14
Post Id



Частый гость


Покинул форум
Сообщений всего: 248
Дата рег-ции: Нояб. 2009  


Помог: 0 раз(а)




Не знаю что говорю , но советую сделать Вот что -
1. Проходит проверка соответствует ли значение языка по умолчанию, если соответствует хорошо, можно отображать информацию исходником, если не соответствует то 2 пункт
2. Проверка существования той же статьи , но например на английском, если есть отображаем если нет , то 3
3. Показываем то что по умолчанию , даже если не соответствует выбранному языку .
( Это будет удобно когда не все перевел )
 
 Top
Roler
Отправлено: 20 Ноября, 2009 - 14:44:26
Post Id



Посетитель


Покинул форум
Сообщений всего: 458
Дата рег-ции: Авг. 2008  
Откуда: Россия


Помог: 1 раз(а)




Монстр_11111
Желательно сделать так, чтобы всё создавалось одновременно.

JustUserR
А, вот оно что. Спасибо, понял.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB