wersje językowe

0

Wersje językowe dla serwisu internetowego php zaczynają mi spędzać sen z powiek.

Zastanawiam się jak zrobić to najlepiej. Jeżeli zrobię dwie tabele - dane podstawowe i dane lokalizowane, to każdy unit będzie podzielony, będę musiał podzielić wszystkie table lub prawie wszystkie tabele jak poniżej.

tt_table_name
tt_table_name_lang

Zastanawiam się nad jakąś alternatywą.

0

a jak będziesz miał trzy języki to co wtedy? - kolejne tabele??

co masz w ogóle w tt_table_name??

A tak swoją drogą to na wstępie powinieneś dostać zjebkę za pytanie, które już mniej konkretne być nie mogło...
SZCZEGÓŁY!!!!

0
Misiekd napisał(a)

a jak będziesz miał trzy języki to co wtedy? - kolejne tabele??

Tabela tt_table_name przechowuje dane które nie muszą być tłumaczone. Natomiast tabela tt_table_name_langma przechowywać dowolną ilość wersji językowych relacja jeden do wielu np

tt_table_name_lang
id
parent_id
language_id
np_opis_czegostam

Konkretniej. Mamy serwis www i jedną wersję językową tekstów. Prosta sprawa żadnego podziału na języki. Teraz chcę mieć wiele języków. I wygląda na to że muszę każdą tabelę podzielić na dwie. W jednej trzymam wartości nie tłumaczone (wspólne), w drugiej wersje językowe tekstów (dowolna ilość języków). Zastanawiam się czy mam inne opcje niż taki podział. Podałem tylko przykład gdzie występuje tylko jedna tabela.

0

dalej nie napisałeś czy

  1. system już jest i trzeba sztukować czy zaczynasz z czystą kartą
  2. jakie dane są w tabelach - czy są to np. dane produktów, które mają być w kilku językach czy też np. elementy stałe strony
0

System już jest, cały CMS. Działa tak jak trzeba ale nie wbudowałem w nim od początku obsługi języków, teraz chcę je dodać aby nowe serwisy mogły być wielojęzyczne. W tablach są produkty, newsy, menu, strony informacyjne itd. Ponieważ zmiana jest poważna, zastanawiam się nad możliwościami.

0

Ja zrobiłem może niezbyt profesjonalnie, ale najwygodniej dla siebie.

Jak mam tabelę z newsami. Załóżmy wygląda tak:
ID bigint
news text

wiadomo co jest co, to przerobiłem to na coś takiego:

ID
news_pl
news_en

Minusem tego rozwiązania jest, że jeśli chcesz dodać kolejny język, to wtedy musisz dodawać kolejną kolumnę. Natomiast plusem jest prostota użycia, bo pobierasz sobie parametr językowy np. z geta, który doklejasz do nazwy kolumny.

Jeśli chodzi o tekst statyczny, to zrobiłem to za pomocą case'a. Niewiele tego miałem, więc... No i głównie interesowały mnie teksty z bazy. Może moje rozwiązanie podsunie Ci coś ciekawszego :)

0

Juhasowi gratulujemy pomysłu ...
LX jeśli tych danych, które nie trzeba tłumaczyć nie ma jakoś bardzo dużo to zostaw jak jest dodając jedynie kolumnę lang_id (czy jakąś podobną). Jeśli jest ich rzeczywiście dużo to dobrze jest to rozbić na dwie tabele

0

Rozbiję na dwie tabele, chyba nie ma innego sensownego wyjścia.

1 użytkowników online, w tym zalogowanych: 0, gości: 1