global.name = Name global.age = Age global.telephone = Telephone global.email = Email global.submit = Submit global.success = Employee Successfully Added global.form = Employee Formglobal_hn.properties:
global.name = \u0928\u093E\u092E global.age = \u0909\u092E\u094D\u0930 global.telephone = \u091F\u0947\u0932\u0940\u092B\u094B\u0928 global.email = \u0908\u092E\u0947\u0932 global.submit = \u092A\u094D\u0930\u0938\u094D\u0924\u0941\u0924 \u0915\u0930\u0928\u093E global.success = \u0915\u0930\u094D\u092E\u091A\u093E\u0930\u0940 \u0938\u092B\u0932\u0924\u093E\u092A\u0942\u0930\u094D\u0935\u0915 \u091C\u094B\u0921\u093C\u093E \u0917\u092F\u093E global.form = \u0915\u0930\u094D\u092E\u091A\u093E\u0930\u0940 \u092A\u0930\u094D\u091A\u093Eglobal_de.properties:
global.name = Nennen global.age = Alter global.submit = Einreichen global.form = Angestellter Formular global.telephone = Telefonieren global.email = Emaeiln global.success = Mitarbeiter erfolgreich amglobal_es.properties:
global.name = Nombre de usuario global.age = Edad global.telephone = Teléfono global.email = Emaile global.submit = Presentar global.form = Formulario Empleado global.success = Empleado con éxito Agregadoglobal_fr.properties:
global.name = Nom d'utilisateur global.age = l'âge global.telephone = téléphone global.email = Emailé global.submit = Soumettre des global.form = Formulaire d'employés global.success = Employé ajouté avec succèsglobal_zh_CN.properties:
global.name = \u540D global.age =\u5E74\u9F84 global.telephone = \u7535\u8BDD global.email = \u7535\u5B50\u90AE\u4EF6 global.submit=\u63d0\u4ea4 global.form = \u5458\u5DE5\u8868\u5355 global.success = \u5458\u5DE5\u6210\u529F\u6DFB\u52A0
<s:property value="getText('some.key')" />
The text tag retrieves a message from the default resource bundle ie. struts.properties<s:text name="some.key" />The i18n tag pushes an arbitrary resource bundle on to the value stack. Other tags within the scope of the i18n tag can display messages from that resource bundle:
<s:i18n name="some.package.bundle">
<s:text name="some.key" />
</s:i18n>
The key attribute of most UI tags can be used to retrieve a message from a resource bundle:<s:textfield key="some.key" name="textfieldName"/>Localization Example:

<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<title><s:property value="getText('global.form')" /> - Struts2 Demo | dineshonjava.com</title>
<s:head />
</head>
<body>
<h2><s:property value="getText('global.form')" /></h2>
<s:form action="employee" method="post" validate="true">
<s:textfield name="name" key="global.name" size="20" />
<s:textfield name="age" key="global.age" size="20" />
<s:textfield name="email" key="global.email" size="20" />
<s:textfield name="telephone" key="global.telephone" size="20" />
<s:submit name="submit" key="global.submit" align="center" />
</s:form>
<s:url id="localeEN" namespace="/" action="locale" >
<s:param name="request_locale" >en</s:param>
</s:url>
<s:url id="localeHN" namespace="/" action="locale" >
<s:param name="request_locale" >hn</s:param>
</s:url>
<s:url id="localeES" namespace="/" action="locale" >
<s:param name="request_locale" >es</s:param>
</s:url>
<s:url id="localezhCN" namespace="/" action="locale" >
<s:param name="request_locale" >zh_CN</s:param>
</s:url>
<s:url id="localeDE" namespace="/" action="locale" >
<s:param name="request_locale" >de</s:param>
</s:url>
<s:url id="localeFR" namespace="/" action="locale" >
<s:param name="request_locale" >fr</s:param>
</s:url>
<s:a href="%{localeEN}" >English</s:a>
<s:a href="%{localeHN}" >Hindi</s:a>
<s:a href="%{localeES}" >Spanish</s:a>
<s:a href="%{localezhCN}" >Chinese</s:a>
<s:a href="%{localeDE}" >German</s:a>
<s:a href="%{localeFR}" >France</s:a>
</body>
</html>
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<title><s:property value="getText('global.form')" /> - Struts2 Demo | dineshonjava.com</title>
</head>
<body>
<h2><s:property value="getText('global.success')" />.</h2>
</body>
</html>
Here we would need to create following two actions. package com.dineshonjava.com.struts2.action.locale;
import com.opensymphony.xwork2.ActionSupport;
/**
* @author Dinesh Rajput
*
*/
public class EmployeeLocaleAction extends ActionSupport {
private static final long serialVersionUID = 1L;
public String execute() {
return SUCCESS;
}
}
EmployeeAction.javapackage com.dineshonjava.com.struts2.action;
import com.opensymphony.xwork2.ActionSupport;
/**
* @author Dinesh Rajput
*
*/
public class EmployeeAction extends ActionSupport {
private static final long serialVersionUID = 1L;
private String name;
private Integer age;
private String email;
private String telephone;
public String addEmployee() {
return SUCCESS;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getTelephone() {
return telephone;
}
public void setTelephone(String telephone) {
this.telephone = telephone;
}
}
We will create our struts.xml with two actions as follows:<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="false" />
<constant name="struts.custom.i18n.resources" value="global" />
<package name="default" extends="struts-default" namespace="/">
<action name="employee" class="com.dineshonjava.com.struts2.action.EmployeeAction">
<result name="success">/success.jsp</result>
<result name="input">/employee.jsp</result>
<result name="error">/error.jsp</result>
</action>
<action name="locale" class="com.dineshonjava.com.struts2.action.locale.EmployeeLocaleAction">
<result name="success">/employee.jsp</result>
</action>
</package>
</struts>
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>Struts2I18N</display-name>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>







Labels: struts2