ATUALIZAÇÃO 2 : Eu acabei usando isso, e é ótimo depois de alguns ajustes. Aqui está o meu post sobre seu design real e em ação: http://tim.hithlonde.com/2013/lemon-schema-works/
Estou construindo um aplicativo Web e quero que ele suporte vários idiomas. Essa estrutura possui dois componentes:
- Conectando a localidade ('english', 'Deutch' etc.) com os termos e tendo uma pedra de roseta conectando termos e termos no idioma específico.
- Agrupando termos por página. Eu não quero dizer, SELECIONE termo1, termo2, etc, através dos mais de 30 termos que posso precisar em uma página. Quero perguntar pela página à qual estão conectados.
Aqui está minha estrutura de tabela proposta (observe que todos os IDs têm relacionamentos / índices entre eles para fazer consultas muito 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//
Isso 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
Eu só tenho que pedir dois itens; o ID do idioma de que preciso e a página de que preciso. Ele exibirá todos os termos, no idioma especificado, que fazem parte do grupo de termos dessa página.
Eu acho que essa é uma estrutura muito boa, mas eu gostaria de receber algum feedback.
ATUALIZAÇÃO : Para esclarecer, estamos apenas falando sobre a localização dos componentes da interface do usuário . (rótulos, navegação, texto útil) Todas as informações inseridas pelo usuário serão armazenadas em unicode, não neste esquema.
ATUALIZAÇÃO 2 : Acabei usando isso, e é ótimo. Aqui está o meu post sobre o design real e em ação: http://tim.hithlonde.com/2013/lemon-schema-works/
<?php echo $term['term_in_english'];?>
uma estratégia sólida de MVC.