UPDATE 2 : Ich habe dies tatsächlich verwendet und es ist großartig nach ein paar Optimierungen. Hier ist mein Beitrag zum tatsächlichen Design und in Aktion: http://tim.hithlonde.com/2013/lemon-schema-works/
Ich erstelle eine Web-App und möchte, dass sie mehrere Sprachen unterstützt. Diese Struktur besteht aus zwei Komponenten:
- Verbinden des Gebietsschemas ('Englisch', 'Deutch' usw.) mit Begriffen und Verbinden von Begriffen und Begriffen in einer bestimmten Sprache mit einem Rosettastein.
- Gruppieren von Begriffen nach Seite. Ich möchte nicht sagen, SELECT term1, term2 usw. über die 30+ Begriffe, die ich möglicherweise auf einer Seite benötige. Ich möchte nach der Seite fragen, mit der sie verbunden sind.
Hier ist meine vorgeschlagene Tabellenstruktur (beachten Sie, dass alle IDs Beziehungen / Indizes enthalten, um sehr effiziente Abfragen durchzuführen):

* 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//
Dies ermöglicht Abfragen wie:
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
Ich muss nur um zwei Artikel bitten; die Sprach-ID, die ich brauche, und die Seite, die ich brauche. Es werden alle Begriffe in der angegebenen Sprache angezeigt, die Teil der Gruppe von Begriffen für diese Seite sind.
Ich denke, das ist eine wirklich gute Struktur, aber ich würde mich über Feedback freuen.
UPDATE : Zur Verdeutlichung sprechen wir nur über die Lokalisierung der UI-Komponenten . (Beschriftungen, Navigation, hilfreicher Text) Alle vom Benutzer eingegebenen Informationen werden in Unicode gespeichert, nicht in diesem Schema.
UPDATE 2 : Ich habe das tatsächlich benutzt und es ist großartig. Hier ist mein Beitrag zum aktuellen Design und in Aktion: http://tim.hithlonde.com/2013/lemon-schema-works/
<?php echo $term['term_in_english'];?>ich einen soliden MVC-Ansatz anstreben.