Есть допустим сайт на 2-3 языках. Переход между ними осуществляетса кликом мыши на соответствоющему линке(флагу-картинке). В этот момент в куки заносится название выбраного языка. Потом на каждой странице идет проверка языка и инклудитса соответствуещий файл, который содержит определения констант-заголовков и т. д. на соответствующем языке. Вся динамическая инфа хранитса в базе даных, которая модифицыруетса через СMS-админку. К этой инфе относитса: содержание страниц(заголовок, название в меню и собственно контент), новости(название, анонс, собственно новость), статистика... Задача стоить сделать с одноязычного сайта 3-х язычний. Со статической инфой на мой взгляд оптимальным будет инклудить соответствуещий файл (первый абзац). А от с динамической у меня есть пока 2 варианта: 1. Создавать отдельние таблицы для новостей - news_ru, news_en, news_cz, аналогично для страниц - pages_ru, pages_en, news_cz. Со статистикой вообще интересно выходит - для 3 языков 3 статистики?! 2. Создавать отдельние поля в 1 таблице - в страницах title_ru, title_en, title_cz; menu_name_ru, menu_name_en, menu_name_cz; content_ru, content_en, content_cz. Аналогично для новостей. Статистика тогда одна для всех (как в одноязычном варианте). - Но громоздкии таблицы выходят, и модифицыровать все таблицы в базе нужно+функцыи виборки MySQL. Какой подход лучше? Какие замечания вообще? Заранее спасибо!
dark-demon Что-то здесь не так Допустим, у тебя есть 2 перевода для данной страницы page_id, соответственно 2 записи в таблице content. Что указывать странице в качестве content_id?
bruno а если языков будет десятка два, а на подавляющем большинстве - 1-2 странички? имхо, лучше всего сделать так: page_id language_id title ... в этом случае количество языков перестанет играть значение)
bruno, единственный проект, который я делал за деньги, был сразу на 4-х языках, так что раз на раз не приходится и ситуация может быть совершенно не предсказуемой. Однако я бы сущность "page" заменил бы на сущность "content", т.к. на одной странице может быть несколько независимых блоков с данными, редактирование которых может быть никак не связано или связано слабо. Но тут всё зависит от принципов используемых средств автоматизации разработки.