
这里自己将所遇到的这类问题,查看相关资料,通过JDK自带的相关API实现这种国际化 *** 作。
使用到的类主要有:import Java.util.Localeimport java.util.ResourceBundle还需要简单的国家化资源文件(针对不同语言有不同文件 .properties文件,键值对)
比如新建一个包com.xiaoli.test,里面放置两个国际化文件,中文(LDPC.properties)和英文(LDPE.properties)支持:
[java] view plain copy
<p>sys.login.index=index.jsp\u9875</p>
[java] view plain copy
sys.login.index=index.jsp page
上面键值对是指:index.jsp 页
而后建立相关测试类实现如下:
[java] view plain copy
package com.xiaoli.test
import java.util.Locale
import java.util.ResourceBundle
public class ResourceMessage
{
private static ResourceMessage resourceMessage = null
private ResourceBundle resourceMessage_zh = null
private ResourceBundle resourceMessage_en = null
private Locale local
//此时该国际化资源文件为下面的完全限定类名访问,LDP为资源文件前缀
private static final String SOURCE_FILE_ZH= "com.xiaoli.test.LDPC"
private static final String SOURCE_FILE_EN= "com.xiaoli.test.LDPE"
private ResourceMessage()
{
//分别将两个文件绑定到相应的语言环境下
resourceMessage_zh = ResourceBundle.getBundle(SOURCE_FILE_ZH, Locale.CHINA)
resourceMessage_en = ResourceBundle.getBundle(SOURCE_FILE_EN,
Locale.ENGLISH)
}
/**
* 单例模式
* 只创建一个实例
* @return
* @see [类、类#方法、类#成员]
*/
public static ResourceMessage getInstance()
{
if (null == resourceMessage)
{
synchronized (ResourceMessage.class)
{
resourceMessage = new ResourceMessage()
}
}
return resourceMessage
}
public String getMessage(String key)
{
return getMessage(key, local)
}
public String getMessage(String key, Locale local)
{
if (null == local)
{
local = Locale.getDefault()
}
String msg = null
if (Locale.CHINA.equals(local))
{
msg = resourceMessage_zh.getString(key)
}
else if (Locale.ENGLISH.equals(local))
{
msg = resourceMessage_en.getString(key)
}
//如果找不到资源文件,返回key
if (null == msg || "".equals(msg))
{
return key
}
return msg
}
/** 测试方法
* @param args
* @see [类、类#方法、类#成员]
*/
public static void main(String[] args)
{
String key = "sys.login.index"
//String value = ResourceMessage.getInstance().getMessage(key, Locale.ENGLISH)
//使用当前默认的语言环境获取,这里为中文支持
String value = ResourceMessage.getInstance().getMessage(key)
System.out.println(value)
}
}
结果,根据手动设置的不同语言环境可以打印不同的值:
index.jsp页 和 index.jsp page
所谓资源文件就是*.properties啊,把需要国际化的输出字符串都弄成键值对存放在properties中,每种语言一个配置文件,键相同,值就是各种语言的翻译;国际化的时候读取不同的配置文件就OK了:Properties p=new Properties()p.load(new FileInputStream(new File(String FileName)))p.getProperty(String key)。
国际化就是在你导入struts之后工程目录下的ApplicationResources.properties文件当你在struts-config.xml配置了:<message-resources parameter="xxx.xx.xxx.ApplicationResources" />比如简体中文的是:ApplicationResources_zh_CN.properties会自动根据你 *** 作系统的语言环境转换语言,但是在你JSP网页上,必须要用struts标签欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)