También he i18n los errores que tenía hardcodeados en código, de la siguiente manera.
He utilizado el interceptor tal como se describe en la guía de Spring:
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename" value="messages"/>
</bean>
<bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
<property name="paramName"><value>siteLanguage</value></property>
</bean>
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver"/>
Esto permite que una página sea i18n, y que además, pasando la cadena siteLanguage como param GET, se cambia automáticamente el leguaje a la codificación elegida (si existe!):
http://127.0.0.1:8080/amigoinvisible/index.htm?siteLanguage=en
Pero cómo acceder desde una clase java a esta i18n? Facil, inyecta a tu controller los siguientes beans:
<property name="bundle" ref="messageSource"/>
<property name="localeResolver" ref="localeResolver"/>
Y en tu código utiliza lo siguiente:
bundle.getMessage("form.val.amigo.max",new String[0],localeResolver.resolveLocale(arg0))
Done.




0 comentarios:
Publicar un comentario en la entrada