Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
pl:dydaktyka:ztb:2010:projekty:thankswithbeer:start [2010/06/27 18:08]
ztb2010
pl:dydaktyka:ztb:2010:projekty:thankswithbeer:start [2019/06/27 15:50] (aktualna)
Linia 441: Linia 441:
  
 ==== Projekt diagramów STD ==== ==== Projekt diagramów STD ====
-{{:​pl:​dydaktyka:​ztb:​2010:​projekty:​thankswithbeer:​twb_std.png|}} 
 {{:​pl:​dydaktyka:​ztb:​2010:​projekty:​thankswithbeer:​twb_std_uzytkownik.png|}}{{:​pl:​dydaktyka:​ztb:​2010:​projekty:​thankswithbeer:​twb_std_gosc.png|}} {{:​pl:​dydaktyka:​ztb:​2010:​projekty:​thankswithbeer:​twb_std_uzytkownik.png|}}{{:​pl:​dydaktyka:​ztb:​2010:​projekty:​thankswithbeer:​twb_std_gosc.png|}}
 +
 +==== Wielojęzyczność ====
 +
 +W projekcie zastosowaliśmy ulepszone rozwiązanie [[http://​code.google.com/​p/​django-multilingual-model/​|multilingualmodel]]. Ulepszenie polegało głównie na lepszej integracji z wbudowanym panelem administracyjnym Django.
 +
 +Całość działania systemu wielojęzykowego obrazuje przykładowy diagram ERD:
 +
 +{{:​pl:​dydaktyka:​ztb:​2010:​projekty:​thankswithbeer:​language_erd.jpg|}}
 +
 +Na obrazku widzimy encję BEERS_BEER (unikalny wpis w bazie, który przechowuje główne informacje dla encji - informacje nie związane z językiem). Dla encji tej mamy powiązanie FK (model_id) w encji BEERS_BEERCONTENT,​ które zawiera pola do tłumaczenia ​ - w przykładzie jedynie pole DESC i STATUS są tymi polami.
 +
 +Do całości brakuje jeszcze przyporządkowania języka dla danego wpisu w tabeli *CONTENT - zupełnie osobna encją MULTILANGUAGE_LANGUAGE.
 +
 +Takie podwójne tworzenie modeli (jeden podstawowy oraz drugi z powiązany z tłumaczeniami pól) stosujemy dla każdej encji wielojęzycznej. Dzięki takiemu rozwiązaniu możemy dodawać kolejne wersje językowe bez konieczności definiowania ich z góry - nic nie stoi na przeszkodzie aby dodać nowy język do tabeli MULTILANGUAGE_LANGUAGE,​ a następnie dodać wpis w BEERS_BEERCONTENT
 +
 +Aby zachować spójność danych można dodać jeszcze klucz UNIQUE(language,​ model_id) do każdego modelu *CONTENT, dzięki czemu na 100% nie będziemy mieli 2 wersji tłumaczeń tego samego języka.
pl/dydaktyka/ztb/2010/projekty/thankswithbeer/start.1277654927.txt.gz · ostatnio zmienione: 2019/06/27 15:56 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0