In this tutorial, you will learn how to change display language of your application using Locale.
Spring 3 MVC change language using Locale
In this tutorial, you will learn how to change display language of your application using Locale.
In the given below example, depending on the locale setting of user browser, the appropriate language will be selected. Also user will be able to change the language by clicking on the hyperlink showing language name(on the right corner). We are providing two language change option English & German (Deutsch).
The term used for language change adaptation according to regions & languages by computer software is called as internationalization(i18n) and localization(L10n).
Example
Given below example is the upgradation of the previously discussed Tile example. In this section, we will show you only the modify or newly added code. But complete source code with jar file is provided to you for download. Please review the code before go through the below code. Here is the link to Spring3 Tile example.
Application Flow
The first page which will appear to you will be :
When you click on the german you will get following result :
Application directory structure
CODES
Message Source Files
The two message source files are added : messages_de.properties & messages_en.properties .
messages_de.properties
label.firstname=Vorname label.lastname=Familiename label.email=Email label.telephone=Telefon label.addcontact=Addieren Kontakt label.title=Spring 3 Locale Beispiel label.menu=Menü label.footer=© Devmanuals.com
messages_en.properties
label.firstname=First Name label.lastname=Last Name label.email=Email label.telephone=Telephone label.addcontact=Add Contact label.menu=Menu label.title=Spring 3 Locale Example label.footer=© Devmanuals.com
XML File
spring-servlet.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <context:component-scan base-package="net.devmanuals.controller" /> <bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver"> <property name="viewClass"> <value> org.springframework.web.servlet.view.tiles2.TilesView </value> </property> </bean> <bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer"> <property name="definitions"> <list> <value>/WEB-INF/tiles.xml</value> </list> </property> </bean> <!-- Application Message Bundle --> <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> <property name="basename" value="classpath:messages" /> <property name="defaultEncoding" value="UTF-8" /> </bean> <bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"> <property name="paramName" value="lang" /> </bean> <bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver" /> <bean id="handlerMapping" class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"> <property name="interceptors"> <ref bean="localeChangeInterceptor" /> </property> </bean> </beans>
JSP Files
header.jsp
<%@taglib uri="http://www.springframework.org/tags" prefix="spring"%> <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Spring3 MVC Tiles Plug-in</title> </head> <body> <h3><spring:message code="label.title" /></h3> <span style="float: right"> <a href="?lang=en">english</a> | <a href="?lang=de">german</a> </span> </body> </html>
menu.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@taglib uri="http://www.springframework.org/tags" prefix="spring"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Spring3 MVC Tiles Plug-in</title> </head> <body> <p><spring:message code="label.menu" /></p> </body> </html>
footer.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@taglib uri="http://www.springframework.org/tags" prefix="spring"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Spring3 MVC Tiles Plug-in</title> </head> <body> <spring:message code="label.footer" /> </body> </html>
contact.jsp
<%@taglib uri="http://www.springframework.org/tags" prefix="spring"%> <%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%> <html> <head> <title>Spring 3 MVC Series - Contact Manager</title> </head> <body> <form:form method="post" action="addContact.html"> <table> <tr> <td><form:label path="firstname"> <spring:message code="label.firstname" /> </form:label></td> <td><form:input path="firstname" /></td> </tr> <tr> <td><form:label path="lastname"> <spring:message code="label.lastname" /> </form:label></td> <td><form:input path="lastname" /></td> </tr> <tr> <td><form:label path="lastname"> <spring:message code="label.email" /> </form:label></td> <td><form:input path="email" /></td> </tr> <tr> <td><form:label path="lastname"> <spring:message code="label.telephone" /> </form:label></td> <td><form:input path="telephone" /></td> </tr> <tr> <td colspan="2"><input type="submit" value="<spring:message code="label.addcontact"/>" /></td> </tr> </table> </form:form> </body> </html>
[ 0 ] Comments