web.xml
<?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_2_5.xsd" id="WebApp_ID" version="2.5"> <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>
struts.xml
<!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.custom.i18n.resources" value="langproperties" /> <!-- Configuration for the default package. --> <package name="default" extends="struts-default"> <action name="language" > <result>index.jsp</result> </action> <action name="registerForm" > <result>registerForm.jsp</result> </action> <action name="loginForm" > <result>loginForm.jsp</result> </action> <action name="register" class="action.RegisterActoin" method="register" > <result name="success">loginForm.jsp</result> </action> <action name="login" class="action.LoginActoin" method="login" > <result name="success">loginSuccess.jsp</result> </action> </package> </struts>
index.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@taglib prefix="s" uri="/struts-tags"%> <!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>Struts2 Localization/Internationalization-codesstore.blogspot.com</title> </head> <body> <s:include value="languageBar.jsp" /> <s:include value="menuBar.jsp" /> </body> </html>
languageBar.jsp
<%@taglib prefix="s" uri="/struts-tags"%> <div>Languages : <s:a href="language.action?request_locale=en">English </s:a> | <s:a href="language.action?request_locale=sin">Sinhalese</s:a> <hr> </div>
menuBar.jsp
<%@taglib prefix="s" uri="/struts-tags"%> <div> <s:a href="loginForm.action">Login</s:a> | <s:a href="registerForm.action">Register</s:a> <hr> </div>
loginForm.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@taglib prefix="s" uri="/struts-tags" %> <!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>Struts2 Localization/Internationalization-codesstore.blogspot.com</title> </head> <body> <s:include value="languageBar.jsp" /> <s:include value="menuBar.jsp" /> <s:form action="login" method="post"> <s:textfield key="label.username" name="username"/> <s:password key="label.password" name="password"/> <s:submit key="label.login"/> </s:form> </body> </html>
registerForm.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@taglib prefix="s" uri="/struts-tags" %> <!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>Struts2 Localization/Internationalization-codesstore.blogspot.com</title> </head> <body> <s:include value="languageBar.jsp" /> <s:include value="menuBar.jsp" /> <s:form action="register" method="post"> <s:textfield key="label.username" name="username"/> <s:password key="label.password" name="password"/> <s:password key="label.passwordretype" name="passwordretype"/> <s:textfield key="label.email" name="email"/> <s:submit key="label.register"/> </s:form> </body> </html>
loginSuccess.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@taglib prefix="s" uri="/struts-tags"%> <!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>Struts2 Localization/Internationalization-codesstore.blogspot.com</title> </head> <body> <s:include value="languageBar.jsp" /> <s:include value="menuBar.jsp" /> <s:actionmessage/> </body> </html>
langproperties.properties
label.username=Username label.password=Password label.login=Login label.passwordretype=Retype Password label.email=Email label.register=Register message.loginSucess=Welcome to system
langproperties_sin.properties
label.username=Nama label.password=Murapadhaya label.login=Logwenna label.passwordretype=Murapadhaya Nawathath label.email=Email label.register=Liyapadhinchi message.loginSucess=Sadaren piliganimu
LoginAction.java
package action; import com.opensymphony.xwork2.ActionSupport; public class LoginActoin extends ActionSupport { public String login() { addActionMessage(getText("message.loginSucess")); return SUCCESS; } }
RegisterAction.java
package action; import com.opensymphony.xwork2.ActionSupport; public class RegisterActoin extends ActionSupport { public String register() { return SUCCESS; } }
Project structure in eclipse
Hi Sameera,
ReplyDeleteI went through your codes.But this is not converting to sinhala.Are there any additional things to do ? I did this example with adding unicodes to sinhala property file,then perfectly worked.
http://tlt.its.psu.edu/suggestions/international/bylanguage/sinhalachart.html
anyway thank you very much for your example.It was great helpful to me.
Thanks
Isuru.
Hi Sameera,
ReplyDeleteCan you please explain select tag with internationalization with an example.
Thanks,
Manoj