在这里面使用JSP来利用property文件应用的一个能显示多国语言的页面,
仅一个JSP和4个properties配置文件
<%
@ page import="java.io.*"
%>

<%
@ page import="java.util.*"
%>

<%
@ page import="java.awt.*"
%>


<%
String languageDefault = Locale.getDefault().getLanguage();
String countryDefault = Locale.getDefault().getCountry();

Locale defaultLocale = null;
String charset = null;
if (languageDefault == "en" || languageDefault.equals("en")){
defaultLocale = Locale.ENGLISH;
charset = "iso-8859-1";
}else if (countryDefault == "CN" || countryDefault.equals("CN")){
defaultLocale = Locale.SIMPLIFIED_CHINESE;
charset = "gb2312";
}else if (countryDefault == "TW" || countryDefault.equals("TW")){
defaultLocale = Locale.TRADITIONAL_CHINESE;
charset = "big5";
}else{
System.out.println("LanguageDefault not equals en.CountryDefault not equals TW or CN");
}

if (session.isNew()){
session.setAttribute("locale",defaultLocale);
session.setAttribute("charset",charset);
}else{
String language = request.getParameter("language");
if (language == null || language.equals(null)){
session.setAttribute("locale",defaultLocale);
session.setAttribute("charset",charset);
}else{
Locale locale = null;
if (language.equals("Locale.SIMPLIFIED_CHINESE") || language.equals( "Locale.SIMPLIFIED_CHINESE")){
locale = Locale.SIMPLIFIED_CHINESE;
charset = "gb2312";
}else if (language.equals( "Locale.TRADITIONAL_CHINESE") || language.equals( "Locale.TRADITIONAL_CHINESE")){
locale = Locale.TRADITIONAL_CHINESE;
charset = "big5";
}else if (language.equals( "Locale.ENGLISH") || language.equals( "Locale.ENGLISH")){
locale = Locale.ENGLISH;
charset = "iso-8859-1";
}
session.setAttribute("locale",locale);
session.setAttribute("charset",charset);
}
}

Locale locale = (Locale)session.getAttribute("locale");
ResourceBundle messagesBundle = ResourceBundle.getBundle("propertyFiles/uni_property",locale);//资源文件放在propertyFiles包下
String localeCountry = locale.getCountry();
String localeLanguage = locale.getLanguage();
System.out.println("locale:"+locale.toString());
System.out.println("localeCountry:"+localeCountry);
System.out.println("localeLanguage:"+localeLanguage);



if(localeLanguage == "en"){
response.setContentType("text/html; charset=ISO8859-1");
}else if (localeCountry == "CN"){
response.setContentType("text/html; charset=gb2312");
}else if(localeCountry == "TW"){
response.setContentType("text/html; charset=big5");
}
%>

<
html
>
<
head
>
<
meta
name
="GENERATOR"
content
="Microsoft FrontPage 4.0"
>
<
meta
name
="ProgId"
content
="FrontPage.Editor.Document"
>
<
title
>
Internationzational by propery file
</
title
>
<
base
target
="contents"
>
</
head
>
<
body
>

<
table
border
="0"
width
="796"
style
="font-size: 10pt"
cellspacing
="0"
cellpadding
="0"
height
="60"
>
<
tr
rowspan
=5
><
td
colspan
=3
>
</
td
></
tr
>
<
tr
rowspan
=5
><
td
colspan
=3
>
</
td
></
tr
>
<
tr
>
<
td
width
="196"
height
="68"
></
td
>
<
td
width
="470"
height
="64"
>
<
p
align
="center"
><
a
href
="#"
onclick
="href='uni_property.jsp?language=Locale.SIMPLIFIED_CHINESE'"
>
<%
=
messagesBundle.getString(
"
simplifiedChinese
"
)
%>
</
a
>
|
<
a
href
="#"
onclick
="href='uni_property.jsp?language=Locale.TRADITIONAL_CHINESE'"
>
<%
=
messagesBundle.getString(
"
traditionalChinese
"
)
%>
</
a
>
|
<
a
href
="#"
onclick
="href='uni_property.jsp?language=Locale.ENGLISH'"
>
<%
=
messagesBundle.getString(
"
english
"
)
%>
</
a
></
td
>
<
td
width
="130"
height
="56"
>
<
p
align
="center"
>
<%
=
messagesBundle.getString(
"
username
"
)
%>
</
td
>
</
tr
>
</
table
>
</
body
>
</
html
>
四个资源文件如下
#uni_property.properties
username=JSP Developer
simplifiedChinese=SimplifiedChinese
traditionalChinese=TraditionalChinese
english=English
#uni_property_en.properties
username=JSP Developer
simplifiedChinese=SimplifiedChinese
traditionalChinese=TraditionalChinese
english=English
#uni_property_zh_CN.properties
username=JSP/u5f00/u53d1/u8005
simplifiedChinese=/u7b80/u4f53/u4e2d/u6587
traditionalChinese=/u7e41/u4f53/u4e2d/u6587
english=/u82f1/u6587
#uni_property_zh_TW.properties
username=JSP/u958b/u767c/u8005
simplifiedChinese=/u7c21/u9ad4/u4e2d/u6587
traditionalChinese=/u7e41/u9ad4/u4e2d/u6587
english=/u82f1/u6587
在同连接上单击会出现不同语言界面,另外需要注意的是
ResourceBundle messagesBundle
=
ResourceBundle.getBundle(
"
propertyFiles/uni_property
"
,locale);
//
资源文件放在propertyFiles包下
该方法查找的起始位置为默认的包,也就是没有名字的包,我们这里放属性文件放在propertyFiles包下,所以为propertyFiles/
另外在属性文件中使用的是Unicode编码,它支持互相转换,处理和显示现在世界上用不同语言写的文本。
仅一个JSP和4个properties配置文件








































































































四个资源文件如下























在同连接上单击会出现不同语言界面,另外需要注意的是


另外在属性文件中使用的是Unicode编码,它支持互相转换,处理和显示现在世界上用不同语言写的文本。