ОБНОВЛЕНИЕ 2 : Я фактически закончил тем, что использовал это, и это здорово после нескольких настроек. Вот мой пост о его фактическом дизайне и действии: http://tim.hithlonde.com/2013/lemon-schema-works/
Я создаю веб-приложение и хочу, чтобы оно поддерживало несколько языков. Эта структура состоит из двух компонентов:
- Соединение локали («английский», «немецкий» и т. Д.) С терминами и наличие розеттного камня, связывающего термины и термины на определенном языке.
- Группировка терминов по странице. Я не хочу говорить, ВЫБЕРИТЕ term1, term2 и т. Д. Через 30+ терминов, которые могут мне понадобиться на странице. Я хочу спросить на странице, с которой они связаны.
Вот моя предложенная структура таблицы (обратите внимание, что все идентификаторы имеют отношения / индексы для выполнения очень эффективных запросов):
* locale
* id
* value //English, Deutch, etc//
* terms
* id
* value //In English//
* page
* id
* value //Think add entry, menu//
* page_group //group all terms to a page, for easy pulling//
* id
* page.id
* term.id
* rosetta
* id
* locale.id
* term.id
* value //french word for amount, description, etc//
Это позволит такие запросы, как:
SELECT localization.value,
terms.value
FROM localization
INNER JOIN terms ON terms.id=localization.termid
INNER JOIN page_group ON page_group.termid=localization.termid
INNER JOIN page ON page.id=page_group.pageid
INNER JOIN locale ON locale.id=localization.localeid
WHERE page.value='add_entry' AND locale.id=custlangid
ORDER BY terms.id
Мне нужно только попросить два предмета; идентификатор языка, который мне нужен, и страница, которая мне нужна. Он будет обслуживать все термины на указанном языке, которые являются частью группы терминов для этой страницы.
Я думаю, что это действительно хорошая структура, но я хотел бы получить обратную связь.
ОБНОВЛЕНИЕ : Чтобы уточнить, мы просто говорим о локализации компонентов пользовательского интерфейса . (метки, навигация, полезный текст) Вся информация, которую вводит пользователь, будет храниться в Unicode, а не в этой схеме.
ОБНОВЛЕНИЕ 2 : Я фактически закончил тем, что использовал это, и это здорово. Вот мой пост о его фактическом дизайне и действии: http://tim.hithlonde.com/2013/lemon-schema-works/
<?php echo $term['term_in_english'];?>
я стремился к основательному подходу MVC.