MISE À JOUR 2 : En fait, j'ai fini par utiliser cela, et c'est génial après quelques ajustements. Voici mon article sur sa conception actuelle et en action: http://tim.hithlonde.com/2013/lemon-schema-works/
Je crée une application Web et je veux qu'elle prenne en charge plusieurs langues. Cette structure a deux composantes:
- Connexion des paramètres régionaux ('anglais', 'Deutch', etc.) avec des termes, et ayant une pierre de rosette connectant les termes et les termes dans une langue spécifique.
- Regroupement des termes par page. Je ne veux pas dire, SELECT term1, term2, etc. à travers les 30+ termes dont je pourrais avoir besoin sur une page. Je veux demander par la page à laquelle ils sont connectés.
Voici ma structure de table proposée (notez que tous les id ont des relations / index entre eux pour faire des requêtes très efficaces):
* 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//
Cela permettra des requêtes comme:
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
Je n'ai qu'à demander deux articles; l'ID de langue dont j'ai besoin et la page dont j'ai besoin. Il servira tous les termes, dans la langue spécifiée, qui font partie du groupe de termes de cette page.
Je pense que c'est une très bonne structure, mais j'aimerais avoir des commentaires.
MISE À JOUR : Pour clarifier, nous ne parlons que de la localisation des composants de l' interface utilisateur . (étiquettes, navigation, texte utile) Toutes les informations saisies par l'utilisateur seront stockées en unicode, pas dans ce schéma.
MISE À JOUR 2 : J'ai fini par l'utiliser, et c'est génial. Voici mon article sur son design actuel et en action: http://tim.hithlonde.com/2013/lemon-schema-works/
<?php echo $term['term_in_english'];?>
Je m'efforce d'une solide approche MVC.