Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Tłumaczenie bazy danych
Forum PHP.pl > Forum > PHP
korniks
Witam,

mam pewien problem myślowy. Potrzebuje zrobić wersje językowe w aplikacji i zastanawiam się jak zrobić tłumaczenie danych w bazie. Na początku myślałem aby do bazy zapisywać otagowany tekst np. {pl}polski{/pl}{en}english{/en}, a następnie pobierać go i konwertować na xml. Jednak mam watpliwosc co do wydajności takiego rozwiązania. Praktycznie każdy tekst przed wyswietleniem każdego rekordu będzie trzeba odpowiednio obrobić co wydaje się troche czasochłonne.

Drugi sposób polega na przechowywaniu wszystkich tłumaczeń w jednej tabeli i odnosić się do nich po przez klucz obcy.

  1. producct
  2. ---------------
  3. id int PK
  4. description_id int FK
  5. price decimal



  1. translate
  2. ---------------
  3. id int PK
  4. lang varchar
  5. text varchar


Który z tych sposobów jest lepszy pod względem wydajnośći?
modern-web
Cóż, zdecydowanie bardziej optymalne jest drugie rozwiązanie, ze względu na bezpośrednie pobieranie danych z bazy bez potrzeby przetwarzania. Twój pomysł (2) przypomina działanie paczek językowych w popularnych sklepach internetowych, z tym że zamiast operować na plikach, Ty przerzucasz to wszystko do bazy danych więc na większą skalę jest to bardziej wydajny sposób. Jedynym minusem wg. mnie jest stosunkowo skomplikowana obsługa, bo w końcu łatwiej wpisać coś do pliku i kliknąć "zapisz", niż ładować do bazy za pomocą odpowiedniego oprogramowania pośredniego. Zastanowiłbym się - czy to koniecznie musi być oparte na bazie danych? Kluczowe - stałe elementy systemu ze spokojem możesz wpakować jako paczkę językową, a w niej stałe z odpowiednią zawartością. Dalej tłumaczyć nie będę bo pewnie nie raz miałeś styczność z czymś podobnym smile.gif
korniks
Dzięki za odpowiedź. Tekst statyczny jest tłumaczony i przechowywany w plikach jednak niektóre elementy dodawane są z panelu admina. Problem polega na tym, że druga metoda jest dość czasochłonna - wymaga przerobienia wiekszość zapytań ;/. Nie ma chyba jednak nad czym kombinować i lepiej poświęcić trochę wiecej czasu i zrobić to raz a dobrze.
thek
Może zerknij jak rozwiązano to w Symfony2? Jest tam bundle do tego typu operacji Gedmo/Translatable czy jakoś tak...
modern-web
Thek jak zwykle dobrze prawi, przy okazji i ja dziękuję za informację, być może będę musiał skorzystać z podobnego rozwiązania w najbliższej przyszłości smile.gif
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.