JAVA 初学 i18n 国际化
2016-09-19 20:49
363 查看
internationalization ==> i18n ,i后18个字母n
一般应用于开发多语言系统环境中的,后台日志、控制台打印的信息、前后台页面、js提示信息等
获取当前系统默认语言:
strus2:
jsp:
通常采用xxxx.properties 文件来配置,如:
app_zh_CN.properties、app_en_US.properties
两个properties配置示例:
app_zh_CN.properties为中文配置
app_en_US.properties为英文配置
在struts.xml中添加配置:
注意这个value=’app’,这个app就是国际化配置文件的前缀。struts会根据这个前缀去自动匹配。
在后台中使用,如:
这里需求说明的时,在action中使用时,需要继承ActionSupport,以便使用该对象中的‘getText()’方法。
如此段代码:
在JSP页面中运用:
首先引用s标签
通过s标签获取配置信息,即可
在js中的使用:
思路是创建相对语言的js文件,将翻译好的语言进行相应的键、值配置,如:
创建 pageMessage_cn.js、pageMessage_en.js 文件,我这里在jsp中使用’request.getLocale().toString()’ 得到的是cn或en,所以这里的js文件后面没有写成cn_ZH或en_US来命名。
js文件进行配置,这里我采取对象的方式编写:
JSP页面,根据语言环境引入js文件:
一般应用于开发多语言系统环境中的,后台日志、控制台打印的信息、前后台页面、js提示信息等
获取当前系统默认语言:
strus2:
ServletActionContext.getRequest().getLocale();
jsp:
out.print(request.getLocale());
通常采用xxxx.properties 文件来配置,如:
app_zh_CN.properties、app_en_US.properties
两个properties配置示例:
app_zh_CN.properties为中文配置
login_page_userName=用户名 login_page_password=密码 login_page_loginBtnText=登录
app_en_US.properties为英文配置
login_page_userName=userName login_page_password=password login_page_loginBtnText=login
在struts.xml中添加配置:
<!-- 国际化 --> <constant name="struts.custom.i18n.resources" value="app"></constant>
注意这个value=’app’,这个app就是国际化配置文件的前缀。struts会根据这个前缀去自动匹配。
在后台中使用,如:
/** * */ package com.yz.action; import javax.servlet.ServletContext; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts2.interceptor.ServletRequestAware; import org.apache.struts2.interceptor.ServletResponseAware; import org.apache.struts2.util.ServletContextAware; import com.opensymphony.xwork2.ActionSupport; /** * @author zhong * */ public class LoginAction extends ActionSupport implements ServletRequestAware,ServletResponseAware,ServletContextAware { /** 描述 (@author: yuanzhong) */ private static final long serialVersionUID = 1L; private String userName; private String password; private ServletContext servletContext; private HttpServletRequest servletRequest; private HttpServletResponse servletResponse; public String execute(){ System.out.println("=============execute============"); userName = "ADMIN_execute"; String name = this.getText("login_page_password"); System.out.println("i18n 测试: "+name); return "success"; } public String login(){ System.out.println("===========login=============="); userName = "ADMIN_login"; Cookie cookie = new Cookie("loginUser", "ndxfke"); cookie.setMaxAge(24*60*60); //以秒为单位 servletResponse.addCookie(cookie); servletRequest.getSession().setAttribute("login_user", "ndxfle"); return "success"; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public void setServletContext(ServletContext servletContext) { this.servletContext = servletContext; } @Override public void setServletResponse(HttpServletResponse servletResponse) { this.servletResponse = servletResponse; } @Override public void setServletRequest(HttpServletRequest servletRequest) { this.servletRequest = servletRequest; } }
这里需求说明的时,在action中使用时,需要继承ActionSupport,以便使用该对象中的‘getText()’方法。
如此段代码:
String name = this.getText("login_page_password"); System.out.println("i18n 测试: "+name);
在JSP页面中运用:
首先引用s标签
<%@ taglib prefix="s" uri="/struts-tags"%>
通过s标签获取配置信息,即可
<s:property value="getText('login_page_userName')" />:<input name="username" value="ndxfke">
在js中的使用:
思路是创建相对语言的js文件,将翻译好的语言进行相应的键、值配置,如:
创建 pageMessage_cn.js、pageMessage_en.js 文件,我这里在jsp中使用’request.getLocale().toString()’ 得到的是cn或en,所以这里的js文件后面没有写成cn_ZH或en_US来命名。
js文件进行配置,这里我采取对象的方式编写:
var pageMessage = { login_page_user_text : "USER", login_page_password_text : "PASSWORD" };
var pageMessage = { login_page_user_text : "用户名", login_page_password_text : "密码" };
JSP页面,根据语言环境引入js文件:
<% String locali18nJs = "pageMessage_"+request.getLocale().toString()+".js"; %>
<script type="text/javascript" src="<%=basePath+"js/"+locali18nJs%>"></script> <script type="text/javascript"> alert(pageMessage.login_page_user_text); </script>
相关文章推荐
- Java应用程序国际化(Java I18N) 总结
- Java中i18nAction实现国际化<一>
- 20171108_chr_Javai18n HelloWorld的国际化
- java国际化与 I18N 的由来
- Java for Web学习笔记(七六):国际化i18n(4)其他
- Java for Web学习笔记(七四):国际化i18n(2)Locale Resolver
- Java的国际化(i18n)
- Java SpringMVC实现国际化整合案例分析(i18n)
- Java的国际化支持(I18N问题)
- Java 对国际化 (i18n) 的支持&资源包的调用
- Java SpringMVC实现国际化整合案例分析(i18n) 专题
- Java的国际化(i18n)
- Java的国际化支持(I18N问题)
- Web---JSTL(Java标准标签库)-Core核心标签库、I18N国际化、函数库
- Java for Web学习笔记:国际化i18n Locale Resolver
- Java for Web学习笔记(七三):国际化i18n(1)使用Spring框架MessageSource
- Java SpringMVC实现国际化整合案例分析(i18n)
- java框架篇---Struts2 本地化/国际化(i18n)
- Web---JSTL(Java标准标签库)-Core核心标签库、I18N国际化、函数库
- Java 6 : 自定义国际化(I18N)服务