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
Форумы портала PHP.SU :: Версия для печати :: Мультиязычность контента
Форумы портала PHP.SU » PHP » Программирование на PHP » Мультиязычность контента

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

1. Roler - 18 Ноября, 2009 - 17:17:48 - перейти к сообщению
Понадобилось сделать сайт с контентом на трёх языках.
Все языковые варианты дублируют друг друга, то есть, есть одни и те же статьи, страницы, но на разных языках.
PHP, MySQL.

Как всё это лучше реализовать?
Делать таблицы для каждого языка не хочется.
2. JustUserR - 18 Ноября, 2009 - 17:52:48 - перейти к сообщению
Roler Вообще можно придумать различные структуры в том числе и динамические - но проще всего сделать с помощью связанных запросов - то есть у статьей и заголовках и других мультиязычных текстов за есть уникальный номер - а сами оня хранятся в отдельной таблице по номерам - получится чтото типа string table - кстати именно так реализована мультиязычность в Win32-GTK
3. Roler - 18 Ноября, 2009 - 18:19:15 - перейти к сообщению
То есть, одна таблица для идентефикации и неизменяемых данных(категория, путь, изображение), и одна таблица с различными языковыми вариантами?
4. JustUserR - 18 Ноября, 2009 - 22:43:22 - перейти к сообщению
Roler Я не знаю какая у вас общая запланированная структура базы данных и схемы таблиц - но идея заключается примерно в следующем
Вы делаете структуру таблиц как вы запланировали и вставляете в них неизменяемые данные а заместо разноязычного текста его уникальный табличный номер
Отдельная таблица является так называемой string table которая содержит помимо уникального ID неуникальный ключ текста (На который ссылаются данные в первой таблице)
Таким образом для получения конечного текста в SQL-запросе фигурирует только номер текста из первой таблицы и номер языка из cookie например
5. Djin_dj - 18 Ноября, 2009 - 22:51:17 - перейти к сообщению
Честно говоря с такими вещами сталкивался, ну про переключение языков - через сессию лучший вариант а по БД я делал таблицу для контента просто добавлял поле Lang и так уже ru en fr
6. Монстр_11111 - 18 Ноября, 2009 - 23:29:14 - перейти к сообщению
Не знаю что говорю , но советую сделать Вот что -
1. Проходит проверка соответствует ли значение языка по умолчанию, если соответствует хорошо, можно отображать информацию исходником, если не соответствует то 2 пункт
2. Проверка существования той же статьи , но например на английском, если есть отображаем если нет , то 3
3. Показываем то что по умолчанию , даже если не соответствует выбранному языку .
( Это будет удобно когда не все перевел )
7. Roler - 20 Ноября, 2009 - 14:44:26 - перейти к сообщению
Монстр_11111
Желательно сделать так, чтобы всё создавалось одновременно.

JustUserR
А, вот оно что. Спасибо, понял.

 

Powered by ExBB FM 1.0 RC1