Hi,
ich versuche in meine kleine Seite Mehrsprachigkeit einzubauen. Da diese ja von der Session abhängig sein muss, versuche ich mit Hilfe des SessionLocaleResolver die Sprache in der Session zu ändern. Hat damit von euch jemand Erfahrung? Hab es so gebaut, dass es funktionieren müsste, macht es aber natürlich nicht.
Falls das jemand erfolgreich geschafft hat, wäre ich dankbar, wenn das hier mal jemand erklären könnte, wie er das geschafft hat.
Hier mal so wie ich es gemacht habe, wie es eigentlich funktionieren müsste.
In meiner SpringDispatcher-servlet.xml
mit folgender URL sollte nun eigentlich in meinem Request-objekt im Controller die Sprache eine andere sein.
http://localhost:8080/sf/language.htm?siteLanguage=en
So versuche ich die Sprache in dem Controller auszulesen, aber leider enthält die Variable country immer den Wert "de", und keinen anderen.
Sieht jemand einen Fehler?
ich versuche in meine kleine Seite Mehrsprachigkeit einzubauen. Da diese ja von der Session abhängig sein muss, versuche ich mit Hilfe des SessionLocaleResolver die Sprache in der Session zu ändern. Hat damit von euch jemand Erfahrung? Hab es so gebaut, dass es funktionieren müsste, macht es aber natürlich nicht.
Falls das jemand erfolgreich geschafft hat, wäre ich dankbar, wenn das hier mal jemand erklären könnte, wie er das geschafft hat.
Hier mal so wie ich es gemacht habe, wie es eigentlich funktionieren müsste.
In meiner SpringDispatcher-servlet.xml
Code:
<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="changeLangController" class="de.nfranze.sf.controller.changeLangController"/>
<bean id="urlMapping"
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="interceptors">
<list>
<ref local="localeChangeInterceptor"/>
</list>
</property>
<property name="mappings">
<props>
<prop key="/**/language.htm">changeLangController</prop>
</props>
</property>
</bean>
mit folgender URL sollte nun eigentlich in meinem Request-objekt im Controller die Sprache eine andere sein.
http://localhost:8080/sf/language.htm?siteLanguage=en
So versuche ich die Sprache in dem Controller auszulesen, aber leider enthält die Variable country immer den Wert "de", und keinen anderen.
Code:
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
Locale loc=request.getLocale();
String country=loc.getLanguage();
ModelAndView mav = new ModelAndView("home");
return mav;
}
Sieht jemand einen Fehler?