Now
a days, any typical web application is supporting multiple human languages. For
example, when the application is opened from germany, then all the information
is displayed in german. If the application is opened from America, the
information is displaed in English. User can choose his favorite langauges,
based on the language selection we need to display the webpage.
In
this post, I am going to explain, how spring supports internationalization.
Step 1: Create properties
file in below format.
{PROPERTIES_FILE_NAME}_{LOCALE_CODE}.properties
Ex:
appMessages_en.properties
: Specifies the messages in English languages
appMessages_de.properties
: Specifies the messages in german language
appMessages.properties
: It is the default locale file.
If
a key does not exist in a certain requested locale, then the application will fall
back to the default locale value.
Step 2:
<bean
id="messageSource"
class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basename"
value="WEB-INF/propertyFiles/appMessages" />
</bean>
Find
the below working application.
package com.sample.myApp.controllers; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class HelloWorldController { @RequestMapping("/welcome") public String getHelloMessage() { return "welcome"; } }
Create
welcome.jsp file under WEB-INF/jsp folder.
<%@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>Hello World Spring Web MVC</title> </head> <body> <h1><spring:message code="welcomeMessage" /></h1> </body> </html>
Create
appMessages_de.properties, appMessages_en.properties files under
WEB-INF/propertyFiles.
welcomeMessage=Guten Morgen......
appMessages_en.properties
welcomeMessage=Good Morning......
Create
web.xml, HelloWorld-servlet.xml files under WEB-INF folder.
web.xml
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>Spring MVC Hello WorldApplication</display-name> <servlet> <servlet-name>HelloWorld</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>HelloWorld</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
HelloWorld-servlet.xml
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 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 http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"> <mvc:annotation-driven /> <context:component-scan base-package="com.sample.myApp" /> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/" /> <property name="suffix" value=".jsp" /> </bean> <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> <property name="basename" value="WEB-INF/propertyFiles/appMessages" /> </bean> </beans>
Create
index.jsp file under webapp folder.
index.jsp
<%@taglib prefix="form" uri="http://www.springframework.org/tags/form"%> <html> <head> <title>Welcome Page</title> </head> <body> <h2>Click on below button to get welcome page</h2> <form method="post" action="/springdemo/welcome" id="f1"> <input type="submit" name="submit" value="submit" style="font-size: 18px;" /> </form> </body> </html>
Project
structure looks like below.
Run
the application on server.
Click
on submit button.
Now
let’s change the browser default language to german and re hit /welcome page.
For
example, follow below steps to change the language to german in firefox.
1. Tools -> Options
2. Search for language
in the find box.
3. Click on Choose…
button, it opens below window.
Use the dropdown ‘Select a language to add…’.
Select German and click on Add button.
Click on OK button.
Now, when I rehit the url /welcome, I seen
the welcome message in germany.
No comments:
Post a Comment