Dobrý den,
já jsem podobný problém vyřešil tak, že jsem si vytvořil vlastní typ
LString.
- formát ukládání není příliš úsporný, ale moje databáze na těchto
textech nestojí.
"<L lang=cs><![CDATA[Text v češtině]]></L><L lang=de><![CDATA[Text v
němčině]]></L>"
- mezi metody tohoto typu patří např:
getValue(Locale)
getValueDefault(Locale)
getValueDefault()
setValueDefault(String)
setValue(Locale, String)
appendToAllLocales(String)
getLocales()
toString()
equals(Object)
isEmpty()
- nemusel jsem měnit strukturu databáze.
- ve swing aplikaci tento přístup funguje.
- nepotřeboval jsem řešit "ORDER BY", ale zde by zřejmě bylo možné
dopsat funkce pro databázi nebo použít regulární výraz.
Petr Michálek
[EMAIL PROTECTED] napsal(a):
Dobrý den
Potřebuji vytvořit výcejazyčnou verzy webové aplikace. Aplikace prezentuje
kalalog knih.
Podle zjištěných Locale by měla nabídnout jazykovou verzy s informacemi o knize.
Informace o knihách jsou uloženy v DB.
Entita knihy je normální POJO objekt.
Vlastně všechny informace (titulek, popisek, žánr...) kromě roku vydání se budou překládat.
Než do třídy přidávat další pole:
private String CZ_title;
private String DE_title;
private String US_title;
...
a pak je na základě prefixu Locale ve view vrstvě číst, nebylo by lepší
vytvořit úplně nové tabulky:
CZ_book
DE_book
US_book
a podle Locale nějak přinutit aplikaci aby četla z tabulky podle Locale?
Přijde mi to jako přehlednější řešení, než mít v jediné tabulce desítky duplicitních polí lišících se pouze prefixem.
Myslel jsem, jestli třeba Hibernate něco takového nenabízí, ale nic kloudného
jsem nenašel.
Ještě jsem zapomněl dodat, že aplikace používá Spring, Struts, JPA(Hibernate).
Děkuji za radu
Tomáš