|
Как лучше организовать мультилингвальный сайт?
|
| Автор |
Сообщение |
madhamster Согнул ложку


Зарегистрирован: 09.10.2006 Сообщения: 902
432 
|
Добавлено: Пт, 04 Сен, 2009 20:23 Заголовок сообщения: Как лучше организовать мультилингвальный сайт? |
|
|
Мне нужно сделать сайт на 2 языках, с возможностью расширения.
Каким образом лучше структурировать БД, чтобы удобней было переключать?
Варианты:
1. На каждый язык свою БД под контент. Таким образом менять при коннекте БД.
2. Дублировать таблицы в одной базе с постфиксами языков, изменять навзания таблиц в SQL.
3. Дублировать поля в таблицы под свой язык.
Или что ещё оптимальней можно придумать?
Под словом контент я подразумеваю новости, события, статические страницы и тд, НЕ интерфейсную часть. _________________ NextStage - live music competition |
|
| Вернуться к началу |
|
 |
Артур 11 1110 1000


Зарегистрирован: 22.01.2008 Сообщения: 1159 Откуда: Lietuva 7191 
|
Добавлено: Пт, 04 Сен, 2009 20:32 Заголовок сообщения: |
|
|
madhamster
Я бы выбрал первое.
Много переделывать ненадо
if ($_SESSION['lng'] == "ru"){
mysql_select_db("ru");
} else {...}
И изменять данные на двух языках проще. _________________ Скрипты [PHP/JS] на заказ, в ЛС, недорого.
SAPE |
|
| Вернуться к началу |
|
 |
DEXIF #!/bin/bash


Зарегистрирован: 27.09.2006 Сообщения: 918 Откуда: Минск 49871 
|
Добавлено: Сб, 05 Сен, 2009 03:52 Заголовок сообщения: |
|
|
Красивей выглядел бы конечно 1 вариант при огромной базе...(например тогда можно базы разнести на разные сервера) а для небольшого проекта достаточно и дублировать записи в 1 таблице...
Дубляж таблиц както "неочень" смотрится... хотя... дело вкуса... _________________
S|D|EG| Let's Rock! | XAP в ЛИЧКУ, SAPE |
|
| Вернуться к началу |
|
 |
Веденин Красные глаза


Зарегистрирован: 17.05.2007 Сообщения: 2066 Откуда: Самара 11733 
|
Добавлено: Вс, 06 Сен, 2009 04:54 Заголовок сообщения: |
|
|
Оптимальнее в каждую таблицу где возможна запись разных языков добавить поле lang, например для русского ru, для английского en и т.д., чтобы получить данные достаточно добавить в select часть where lang = 'ru'. + Создать таблицу хранящую список языков их кратких обозначений и возможность перехода между ними в интерфейсе.
Например:
MessageTable
| Код: | id Message_id Message Lang
1 31 Hello world! en
2 31 Привет Мир! ru
3 31 Привіт світ! ua |
| Код: | LangTable
id Name Code
1 English en
2 Русский ru |
Почему это удобнее чем все другие способы перечисенные выше? Просто достаточно добавить новую строчку в таблицу и новый язык уже в теории будет готов к использованию, и не нужно создавать базы данных, таблицы или менять кол-во полей (что требует прав админа MySQL и простому пользователю недоступно). Т.е. для CMS вообще практически единственный правильный. _________________ Написание конвекторов, парсеров, интеграции нескольких сайтов (в личку)
Тематические поисковые системы Рунета: Танцевальная, программиста, поиск книг |
|
| Вернуться к началу |
|
 |
DEXIF #!/bin/bash


Зарегистрирован: 27.09.2006 Сообщения: 918 Откуда: Минск 49871 
|
Добавлено: Вс, 06 Сен, 2009 06:24 Заголовок сообщения: |
|
|
Веденин
собственно об этом я и говорил...  _________________
S|D|EG| Let's Rock! | XAP в ЛИЧКУ, SAPE |
|
| Вернуться к началу |
|
 |
антон888 Два пингвина


Зарегистрирован: 05.11.2007 Сообщения: 311
13441 
|
Добавлено: Сб, 19 Сен, 2009 17:15 Заголовок сообщения: |
|
|
| Веденин писал(а): | | Оптимальнее в каждую таблицу где возможна запись разных языков добавить поле lang |
и ниже | Веденин писал(а): | | не нужно создавать базы данных, таблицы или менять кол-во полей (что требует прав админа MySQL и простому пользователю недоступно) |
Или я что то упустил ? ) _________________ сайт знакомств Забудь про фразу "Мне не с кем". Всегда есть с кем! |
|
| Вернуться к началу |
|
 |
[LP]LordPro.teus Призрак Лорда


Зарегистрирован: 26.07.2007 Сообщения: 5092
42282 
|
Добавлено: Сб, 19 Сен, 2009 17:32 Заголовок сообщения: |
|
|
антон888
вполне логичная связь: т.к. "а" простому пользователю недоступно, применяйте "б" _________________

До выхода LiteDiary 0.3.0: парам-пам-пам-пам! Она уже здесь! |
|
| Вернуться к началу |
|
 |
|