Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Struktura tabel w systemach wielojęzycznych
Forum PHP.pl > Forum > PHP
camikazee
Witam!

Zastanawiam się jaki jest najbardziej optymalny sposób na napisanie aplikacji wielojęzycznej. Zakładam, że jest możliwość zmiany ilości języków (dodawanie i usuwanie).
Przykład 1
Mamy tabelę treści składającą się z pól id, language_id, title, content oraz link do nich prowadzący tresc(numerid).html
Czy lepszym rozwiązaniem jest do każdej wersji językowej dodawanie danej treści i tworzenie nowego linka, czy zrobić treść główną i dodatkową tabelę pobierającą języki np id, trescid, title, content i rozszerzającą poniekąd tabelę podstawową.

Przykład 2
Sonda. Sonda składająca się z trzech tabel: sondy, pól sondy oraz odpowiedzi. Jak tu rozwiązać wielojęzykowość, czy dla każdego języka tworzyć osobną sondę, czy jeden język podstawowy.

Na chwilę obecną mam zamysł taki, że jest klasa, która pobiera np daną treść i klasa ją rozszerzająca, która w przypadku wykrycia innego języka niż domyślny łączy się z tabelą z danym językiem i nadpisuje tylko wybrane pola (tytuł, treść). Plusem jest fakt, że nie ma np trzech różnych id dla trzech języków, tylko jeden wspólny i w sposób prosty możemy w przypadku braku tłumaczenia dla danego języka wyświetlić treść w języku domyślnym.

W powyższych przykładach bardzo uprościłem strukturę bazy by było to zrozumiałe. Mam nadzieję, że za bardzo nie zakręciłem.
Interesuje mnie opinia czy to jest poprawne rozumowanie i jakich sposobów na wielojęzyczność używacie w swoich projektach.
phpion
Ja stosuję taki układ tabel:

locales [id, name...]
objects [id, is_active...]
object_i18ns [object_id, locale_id, title, content...]

Legenda:
klucz główny
klucz obcy
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.