zoukankan
html css js c++ java
国际化问题
在这里面使用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编码,它支持互相转换,处理和显示现在世界上用不同语言写的文本。
查看全文
相关阅读:
Failed to fetch URl https://dl-ssl.google.com/android/repository/addo Android SDK更新以及ADT更新出现问题的解决办法
空白文章
Win7下搭建安卓android开发环境
《转》武汉的IT公司
《转》四本与携程相关的书
《转》奇迹在坚持中
《C#高级编程》学习笔记----c#内存管理--栈VS堆
jQuery源码分析-each函数
栈和队列(3)----算法
栈和队列(2)----排序
原文地址:https://www.cnblogs.com/eflylab/p/622149.html
最新文章
读经典——《CLR via C#》(Jeffrey Richter著) 笔记_dynamic基元类型
C#是类型安全语言
读经典——《CLR via C#》(Jeffrey Richter著) 笔记_对象的相等性和同一性
烟大 Contest1024
烟大 Contest1024
事件处理器
条件渲染
class与style绑定
vue实例以及生命周期
vue 模板语法
热门文章
vue 指令
计算属性 computed
vue watcher
ORACLE学习
Eclipse里面开发ExtJS程序
Eclipse环境下配置spket中ExtJS提示
使用 Struts 2 开发 RESTful 服务
端口号被占,怎样解决
Eclipse中如何关联Javadoc
Eclipse最常用快捷键
Copyright © 2011-2022 走看看