ACTUALIZACIÓN 2 : De hecho, terminé usando esto, y es genial después de un par de ajustes. Aquí está mi publicación sobre su diseño real, y en acción: http://tim.hithlonde.com/2013/lemon-schema-works/
Estoy creando una aplicación web y quiero que sea compatible con varios idiomas. Esta estructura tiene dos componentes:
- Conexión de la configuración regional ('inglés', 'Deutch', etc.) con términos, y tener términos de conexión de rosetta stone y términos en un idioma específico.
- Agrupación de términos por página. No quiero decir, SELECCIONAR término1, término2, etc. a través de los más de 30 términos que pueda necesitar en una página. Quiero preguntar por la página a la que están conectados.
Aquí está mi estructura de tabla propuesta (tenga en cuenta que todos los ID tienen relaciones / índices entre ellos para hacer consultas muy eficientes):
* 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//
Esto permitirá consultas como:
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
Solo tengo que pedir dos artículos; la identificación del idioma que necesito y la página que necesito. Servirá todos los términos, en el idioma especificado, que forman parte del grupo de términos para esa página.
Creo que esta es una estructura realmente buena, pero me encantaría recibir algunos comentarios.
ACTUALIZACIÓN : Para aclarar, solo estamos hablando de la localización de los componentes de la interfaz de usuario . (etiquetas, navegación, texto útil) Toda la información que ingrese el usuario se almacenará en unicode, no en este esquema.
ACTUALIZACIÓN 2 : De hecho, terminé usando esto, y es genial. Aquí está mi publicación sobre su diseño real, y en acción: http://tim.hithlonde.com/2013/lemon-schema-works/
<?php echo $term['term_in_english'];?>
que me esfuerzo por un enfoque MVC sólido.