首页 > 代码库 > 国际化
国际化
1:什么是国际化?
国际化(internationalization)是设计和制造容易适应不同区域要求的产品的一种方式。
它要求从产品中抽离所有的与语言,国家/地区和文化相关的元素。换言之,应用程序的功能和代码设计考虑在不同地区运行的需要,
其代码简化了不同本地版本的生产。开发这样的程序的过程,就称为国际化。
2:在什么样的状况下使用国际化?
国际化是指的多语言支持,比方说你登录一个系统后,页面上的标签可以默认显示中文,
或者默认显示英文。国际化在web开发中比较常用,以便于不同母语的用户使用系统。
3:为什么使用国际化?
原因:因为语言种类繁多
将项目国际化
1.
在struts.xml文件中配置如下:
<?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> <!-- 在struts2.xml中配置指定资源文件的基名 --> <constant name="struts.custom.i18n.resources" value="http://www.mamicode.com/message"></constant> <!-- 指定编码方案,如果想要转换国际化 必须指定为UTF-8 默认就是u8--> <constant name="struts.i18n.encoding" value="http://www.mamicode.com/UTF-8"></constant> <!-- --> <constant name="struts.ui.theme" value="http://www.mamicode.com/simple"></constant> <!-- 修改该文件,tomcat不用重启 --> <constant name="struts.devMode" value="http://www.mamicode.com/true"/> <package name="default" namespace="/" extends="struts-default"> <action name="loignAction" class="cn.action.languageAction"> <result name="success">/success.jsp</result> <result name="input">/regist.jsp</result> </action> </package></struts>
2.
配置资源文件
中文:message.properties
register.page=\u7528\u6237\u6CE8\u518Cregister.title=\u65B0\u7528\u6237\u6CE8\u518Cname=\u59D3\u540Dpassword=\u5BC6\u7801repassword=\u786E\u8BA4\u5BC6\u7801telephone=\u7535\u8BDD\u53F7\u7801username=\u7528\u6237\u540Dsubmit=\u7ACB\u5373\u6CE8\u518Cname.null=\u7528\u6237\u540D\u4E0D\u80FD\u4E3A\u7A7A
英文:message_en.properties
register.page=HouserRent-User Registerregister.title=New User Registername=Namepassword=Passwordrepassword=RePasswordtelephone=Telephoneusername=UserNamesubmit=Register Nowname.null=Name cannot be null
3.准备界面:
注:使用ognl表达式展示国际化!<s:text>,也可以放在<s:i81n>标签中。
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%@ page isELIgnored="false"%><%@ taglib uri="/struts-tags" prefix="s"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head> <title><s:text name="register.page"></s:text></title></head><body> <s:fielderror></s:fielderror> <h2><s:text name="register.title"></s:text></h2> <s:form action="loignAction"> <table> <tr> <td><s:text name="name" ></s:text></td> <td><s:textfield name="name" key="name"></s:textfield><td> </tr> <tr> <td><s:text name="password"></s:text></td> <td><s:textfield name="password"></s:textfield></td> </tr> <tr> <td><s:text name="repassword"></s:text></td> <td><s:textfield name="repassword"></s:textfield></td> </tr> <tr> <td><s:text name="telephone"></s:text></td> <td><s:textfield name="telephone"></s:textfield></td> </tr> <tr> <td><s:text name="username"></s:text></td> <td><s:textfield name="username"></s:textfield></td> </tr> <tr> <td colspan="2"><s:submit value="http://www.mamicode.com/%{getText(‘submit‘)}"></s:submit></td> </tr> </table> </s:form></body></html>
注:
①将程序中的提示信息、错误信息等放在资源文件中,为不同国家/语言编写对应资源文件
②资源文件由很多key-value对组成,key保持不变,value随国家/语言不同而不同
③这些资源文件使用共同的基名,通过在基名后面添加语言代码、国家和地区代码来进行区分
创建Action类,并继承自ActionSupport类,重写execute(),封装对应的属性:
国际化
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。