Tady bych si dovolil maličko poopravit - server nevrací v jazyce (Locale),
v jakém si prohlížeč řekne. Locale nastavuje "locale ressolver". Spring má
několik hotových locale ressolveru (request, session, cookies...) Pan Nagy
pouzil CookieLocaleRessolver.
V jedné své aplikaci ve Springu lokalizaci používám, ale také mi chvíli
trvalo než jsem ji rozchodil. Zde je má konfigurace:
app-servlet.xml
<bean id="localeChangeInterceptor"
class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
<property name="paramName" value="siteLanguage" />
</bean>
<bean id="localeResolver"
class="org.springframework.web.servlet.i18n.SessionLocaleResolver"
/>
<bean id="urlMapping"
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="interceptors">
<list>
<ref bean="localeChangeInterceptor" />
</list>
</property>
...
LocaleChangeInterceptor ve výše uvedeném kódu samozřejmě není nutný.
app-context.xml
<bean id="messageSource"
class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename">
<value>messages</value>
</property>
</bean>
Po deploynutí jsou soubory messages*.properties umístěny v WEB-INF/classes.
V JSP stránce pak volám např:
<spring:message code="menu.logoff" />
Vzpomínám si, že když mi lokalizace nefungovala stačilo explicitně
nastavit message bundle přímo na JSP stránce pomocí fmt:setBundle.
Dále je potřeba dát si pozor na kódování *.properties souborů. API, které
properies soubory čte předpokládá, že jsou v kódování ISO 8859-1. Existuje
na to např převodní utilitka native2ascii.
Ve své aplikaci jsem též používal Struts menu, které umí zobrazovat
položky na základě ROLE přihlášeného uživatele a též podporuje lokalizaci.
Vzpomínám si, že s tím jsem se trápil celý den. Kdyby byl zájem o ukázku
kódu dejte vědět.
Dne Thu, 14 Sep 2006 15:45:38 +0200 Vladimír Náprstek
<[EMAIL PROTECTED]> napsal/-a:
jaký máte v prohlížeči nastaven jazyk? Ve firefoxu je to ve Předvolbách,
část Rozšířené, karta Obecné a tlačítko Vybrat jazyky.
Server Vám stránky vrací v tom jazyce, v jakém si prohlížeč řekne...
Karel Nagy píše v Čt 14. 09. 2006 v 14:34 +0200:
Ahoj,
uz od rana se morim s lokalizaci stranek ve Springu. Podle
dokumentace a prikladu (Countries v adresari
springframework/samples/countries) to vypada jednoduse, ale ja nejsem
schopny dosahnout kyzeneho efektu :-(. Pritom to zkousim na male
testovaci aplikaci v Netbeans, ve ktere jsou pouze konfiguracni soubory
a jeden jsp soubor spolu s controllerem. Nize uvadim vypis z dulezitych
souboru. Pokud nekoho napada, kde delam chybu (a asi to bude neco
trivialniho), tak budu velice vdecny.