The application already had a messagesource in the form of
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basenames">
<list>
<value>messages</value>
</list>
</property>
</bean>
I had to declare an interceptor and then a resolver.
<bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
<property name="paramName" value="siteLanguage">
</property>
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver"></bean></bean>
and add the interceptor to the urlMapping
The project already had message.properties so I added a new localised message-set for French as messages_fr.properties
Then add the spring taglib to include.jsp
<%@ taglib prefix="spring" uri="/WEB-INF/spring.tld" %>
and finally update the jsp so use the spring taglib instead of jstl. So for example
<spring:message code="title"></spring:message>
Changing the language setting inside the browser to French resulted in the output being localised for Fr_fr -> SUCCESS!
Now I need to move forward onto a translation interface, however I'm seeing a few complications as I'm not sure how to go about a few things. Namely, I need to be able to add links of some form to all the message.keys in translator mode. When translator mode is enabled the controller could redirect to a different jsp and manually add a traditional link for each message.key but this is going to result in a lot of tedious re-coding. I'm hoping to just be able to render the jsp and add the link somehow without requiring a different jsp for when translator is enabled.
The other issue I need to consider is how to interface to simply localise any text pulled from a database.
No comments:
Post a Comment