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.




Odpovedet emailem