//JAVA import java.util.Locale; import java.util.ResourceBundle; public class Test { public static void main(String[] args) { ResourceBundle res = ResourceBundle.getBundle("app", Locale.CHINA);//根据国家名获取名为app的资源文件 System.out.println(res.getString("welcome.msg" ));//获取key为welcome.msg对应的值 } }
//Login-input.jsp <form action="admin/Login-login" method="post"> <!-- 从默认国家语言的资源文件中拿出相应的标签名显示 --> <s:property value="getText('login.username')"/> <input name="username" /> <s:property value="getText('login.password')"/><input name="password" type="password" /> <input type="submit" value="<s:property value="getText('login.login')"/>" /> </form> <s:debug></s:debug> <a href="admin/lang?request_locale=en_US">en</a><!-- 动态语言转换 --> <a href="admin/lang?request_locale=zh_CN">cn</a> //Login-login.jsp <s:text name="welcome.msg"><!-- 从资源文件中取出对应key的值 --> <s:param value="username"></s:param> </s:text> <!-- OGNL表达式,取出username的值 -->
//struts.xml <constant name="struts.custom.i18n.resources" value="bbs2009"></constant> <action name="lang" class="com.bjsxt.bbs2009.action.LangAction"> <result>/admin/Login-input.jsp</result> </action>
//action package com.bjsxt.bbs2009.action; import com.opensymphony.xwork2.ActionSupport; public class LangAction extends ActionSupport { @Override public String execute() throws Exception { return super.execute(); } }
//中文编码资源文件 login.username=username: login.password=password: login.login=login welcome.msg=welcome:{0} //动态传入参数,从0开始站位 //英文编码资源文件 login.username=\u7528\u6237\u540d\uff1a login.password=\u5bc6 \u7801\uff1a login.login=\u767b\u5f55 welcome.msg=\u6b22\u8fce\u4f60\uff1a{0} //动态传入参数,从0开始站位