对于稍微大一点的系统,国际化都是一个必须的步骤,很多系统为了不同的语言,做出了不同的页面甚至程序来支持,然后,对于.net或java相对成熟的平台下面,我们大可以利用已有的一些框架支持,来轻松的实现国际化的支持,下面我们以Spring为例子大致讲解一下如何利用已有框架简单的做到国际化的支持,我们简单的拿一个欢迎语句的中英文版本来做处理:
1、资源文件的编写:
英文版本资源文件,新建resource\user_en_US.properties,在资源文件中编写:
welcome.label=welcome {0} :time {1}
中文版本资源文件,新建resource\user_zh_CN.properties,在资源文件中编写:
welcome.label=欢迎你 {0} :时间 {1}
2、使用org.springframework.context.support.ResourceBundleMessageSource来配置messageSource(该名称为Spring约定):
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basenames">
<list>
<value>user</value>
</list>
</property>
</bean>
3、现在,我们可以写测试类,说明如何使用国际化了:
public class testStation {
/**
* @param args
*/
public static void main(String[] args) {
ApplicationContext ctx = new
FileSystemXmlApplicationContext("src/com/cun/resource/applicationContext.xml");
try {
Object[] obj=new Object[]{"wuyansheng",new Date()};
System.out.println(ctx.getMessage("welcome.label",obj, Locale.CHINA));
System.out.println(ctx.getMessage("welcome.label",obj, Locale.US));
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
结果输出如下:
欢迎你 wuyansheng :时间 11-2-24 下午2:11
welcome wuyansheng :time 2/24/11 2:11 PM
即根据不同的本地语言环境,输出不同的信息。
4、怎么让异常信息也国际化呢,例如我们可以在页面的BaseAction中处理异常信息的国际化:
/**
* @return spring 上下文
*/
protected ApplicationContext getAppCtx(){
return WebApplicationContextUtils.getWebApplicationContext(getSession()
.getServletContext());
}
/**
* 获取资源信息
* @param key
* @param args
* @return
*/
public String getText(BaseException e){
String key = e.getKey();
String msg = super.getText(key, null, e.getParams());//本身Action是否配置了错误信息,
if(msg != null) return msg;
return getAppCtx().getMessage(key, e.getParams(), key, getLocale());
}
这样在子类getText,传进具体的异常类,取出相应的异常信息。
分享到:
相关推荐
1. 国际化 国际化(internationalization),又称为i18n(因为这个单词从i到n有18个英文字母,因此命名)。对于某些应用系统而言,它需要发布到不同的国家地区,因此需要特殊的做法来支持,也即是国际化。通过国际化...
java实现国际化中英文语言切换 java语言切换JSP国际化 java实现国际化中英文语言切换 java语言切换JSP国际化
代码的详细描述详见博客 ssm框架上实现国际化/多语言
国际化版本应用,国际化语言切换及系统配置应用。SPRINGMVC国际化代码应用。
国际化测试方案实例 部署和常规功能测试方案 文本处理测试方案 区域设置识别测试方案
android应用内和系统设置,两种设置多语言国际化。代码完整,包括切换简体,繁体中文和英文
财务管理系统国际化研究
android软件国际化
基于struts2-hibernate-spring的Java Web系统国际化设计与实现.pdf
JavaWeb国际化开发语言代码表
腾讯软件走向海外市场分析,指导软件的国际化开发,以适应各地区、文化、风俗、习惯等,从而扩大产品的市场。
jquery 国际化 有道云笔记:http://note.youdao.com/noteshare?id=2a55b141006bcaadca6b8d6c6c055c5a
国际化的软件测试管理方法 国际化的软件测试管理方法
软件系统国际化的设计研究.doc
为提高应用型本科高校教学质量,提出了"教育国际化"和"教育信息化"双轮驱动模式;教育国际化应坚持开放式办学理念,引进海外优质教育资源,开展汉语国际教育与推广;教育信息化应建立教师培训云端一体化平台,开发网络教学...
国际物流系统化与合理化.doc
世隆多语言系统基于世隆企业应用开发平台(SLEAP)进行统一设计、开发,具有可配置的体系结构,可以针对不同的物流企业、不同的业务模式,不同的语言需求,进行深度多语言化配置,以满足企业多语言人才、跨地域性...
web页面多语言,.net国际化,本地化。
1. 首先建一个MVC国际化项目Internationalization。 2. 选中项目右键-->“添加”-->“添加ASP.NET文件夹”-->“App_GlobalResources”。 3. 选中“App_GlobalResources”右键添加一个资源文件Language.resx。在其中...