![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » MySQL - Интернационализация (i18n) БД |
|
MySQL - Интернационализация (i18n) БД
|
![]() Новый участник Сообщения: 3 |
Доброго времени суток!
Рад, что сайт все еще на плаву, сто лет тут не был. Поиск не выявил схожих тем, если это не так - прошу прощения. Вопрос довольно общий, но использую MySQL, может там какая специфика есть Есть база данных, довольно сложная. Около двух десятков таблиц с отношениями как 1:1, так и 1:M и M:M. Вопрос в том, как правильно интернационализировать такие БД. Для начала достаточно одного дополнительного языка (en). Какие есть способы? Пока что приходят на ум решения с дополнительной БД или дополнительными полями (скажем, name_en). Наверняка есть более красивые варианты. |
|
Отправлено: 16:37, 19-09-2010 |
Ветеран Сообщения: 5624
|
Профиль | Отправить PM | Цитировать Цитата 9dogs:
![]() Цитата 9dogs:
Более красивых вариантов, чем предложенные вами, вряд ли присутствуют. Проще всего, конечно, сделать вторую БД и там все переименовать, а при выборе языка переключаться между базами. Но, в таком случае, надо будет делать зеркалирование баз, чтобы данные были актуальны в любой момент времени. |
||
------- Отправлено: 03:10, 20-09-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать Цитата Delirium:
Вариант с двумя базами смущает именно необходимостью синхронизации. Хотя это вроде не слишком сложно реализуется. Попробую сделать так, для начала. |
|
Отправлено: 05:13, 20-09-2010 | #3 |
Ветеран Сообщения: 5624
|
Профиль | Отправить PM | Цитировать Вариант с доп полями неудобен тем, что придется в каждую таблицу добавлять это поле и в программе проверять и выводить данные с учетом языка. Но зато нет проблем с синхронизацией
![]() |
------- Отправлено: 05:53, 20-09-2010 | #4 |
ИО Капитана Очевидности Сообщения: 5387
|
Профиль | Отправить PM | Цитировать Цитата 9dogs:
Соответсвенно во всех остальных подменяем текстовые поля на коды, которые будут соответствовать значениям TEXT_ID. Запросы правим так, чтобы в результатах в выводились строки, соответствующие значениям ключа (LANG_ID TEXT_ID) В*результате БД будет поддерживать сколько угодно языков. Главное, чтобы кто-нибудь вводил информацию для всех языков |
||
------- Отправлено: 07:34, 20-09-2010 | #5 |
![]() Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать El Scorpio, хорошее решение.
Если еще добавить USER_ID, то появится возможность отдавать пользователю только его данные для перевода. |
Отправлено: 22:53, 20-09-2010 | #6 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
|