国际化问题

在这里面使用JSP来利用property文件应用的一个能显示多国语言的页面,
仅一个JSP和4个properties配置文件
ExpandedBlockStart.gif ContractedBlock.gif <% dot.gif @ page import="java.io.*"  %>
ExpandedBlockStart.gifContractedBlock.gif
<% dot.gif @ page import="java.util.*"  %>
ExpandedBlockStart.gifContractedBlock.gif
<% dot.gif @ page import="java.awt.*"  %>
None.gif
ExpandedBlockStart.gifContractedBlock.gif
<% dot.gif
InBlock.gif
String languageDefault = Locale.getDefault().getLanguage();
InBlock.gif
String countryDefault = Locale.getDefault().getCountry();
InBlock.gif
InBlock.gifLocale defaultLocale 
= null;
InBlock.gif
String charset = null;
InBlock.gif
if (languageDefault == "en" || languageDefault.equals("en")){
InBlock.gif        defaultLocale 
= Locale.ENGLISH;
InBlock.gif        charset 
= "iso-8859-1";
InBlock.gif}
else if (countryDefault == "CN" || countryDefault.equals("CN")){
InBlock.gif        defaultLocale 
= Locale.SIMPLIFIED_CHINESE;
InBlock.gif        charset 
= "gb2312";
InBlock.gif}
else if (countryDefault == "TW" || countryDefault.equals("TW")){
InBlock.gif        defaultLocale 
= Locale.TRADITIONAL_CHINESE;
InBlock.gif        charset 
= "big5";
InBlock.gif}
else{
InBlock.gif        System.out.println(
"LanguageDefault not equals en.CountryDefault not equals TW or CN");
InBlock.gif}
InBlock.gif
InBlock.gif
if (session.isNew()){
InBlock.gif        session.setAttribute(
"locale",defaultLocale);
InBlock.gif        session.setAttribute(
"charset",charset);
InBlock.gif}
else{
InBlock.gif        
String language = request.getParameter("language");
InBlock.gif        
if (language == null || language.equals(null)){
InBlock.gif                session.setAttribute(
"locale",defaultLocale);
InBlock.gif                session.setAttribute(
"charset",charset);
InBlock.gif        }
else{
InBlock.gif                Locale locale 
= null;
InBlock.gif                
if (language.equals("Locale.SIMPLIFIED_CHINESE") || language.equals( "Locale.SIMPLIFIED_CHINESE")){
InBlock.gif                        locale 
= Locale.SIMPLIFIED_CHINESE;
InBlock.gif                        charset 
= "gb2312";
InBlock.gif                }
else if (language.equals( "Locale.TRADITIONAL_CHINESE") || language.equals( "Locale.TRADITIONAL_CHINESE")){
InBlock.gif                        locale 
= Locale.TRADITIONAL_CHINESE;
InBlock.gif                        charset 
= "big5";
InBlock.gif                }
else if (language.equals( "Locale.ENGLISH") || language.equals( "Locale.ENGLISH")){
InBlock.gif                        locale 
= Locale.ENGLISH;
InBlock.gif                        charset 
= "iso-8859-1";
InBlock.gif                }
InBlock.gif                session.setAttribute(
"locale",locale);
InBlock.gif                session.setAttribute(
"charset",charset);
InBlock.gif        }
InBlock.gif}
InBlock.gif
InBlock.gifLocale locale 
= (Locale)session.getAttribute("locale");
InBlock.gifResourceBundle messagesBundle 
= ResourceBundle.getBundle("propertyFiles/uni_property",locale);//资源文件放在propertyFiles包下
InBlock.gif
String localeCountry = locale.getCountry();
InBlock.gif
String localeLanguage = locale.getLanguage();
InBlock.gifSystem.out.println(
"locale:"+locale.toString());
InBlock.gifSystem.out.println(
"localeCountry:"+localeCountry);
InBlock.gifSystem.out.println(
"localeLanguage:"+localeLanguage);
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif
if(localeLanguage == "en"){
InBlock.gif        response.setContentType(
"text/html; charset=ISO8859-1");
InBlock.gif}
else if (localeCountry == "CN"){
InBlock.gif        response.setContentType(
"text/html; charset=gb2312");
InBlock.gif}
else if(localeCountry == "TW"){
InBlock.gif        response.setContentType(
"text/html; charset=big5");
ExpandedBlockEnd.gif}
None.gif
%>
None.gif
None.gif
< html >
None.gif
< head >
None.gif
< meta  name ="GENERATOR"  content ="Microsoft FrontPage 4.0" >
None.gif
< meta  name ="ProgId"  content ="FrontPage.Editor.Document" >
None.gif
< title > Internationzational by propery file </ title >
None.gif
< base  target ="contents" >
None.gif
</ head >
None.gif
< body  >
None.gif
None.gif
< table  border ="0"  width ="796"  style ="font-size: 10pt"  cellspacing ="0"  cellpadding ="0"  height ="60" >
None.gif  
< tr  rowspan =5 >< td  colspan =3 > &nbsp;&nbsp;&nbsp;&nbsp; </ td ></ tr >
None.gif  
< tr  rowspan =5 >< td  colspan =3 > &nbsp;&nbsp;&nbsp;&nbsp; </ td ></ tr >
None.gif  
< tr >
None.gif    
< td  width ="196"  height ="68" ></ td >
None.gif    
< td  width ="470"  height ="64" >
None.gif      
< align ="center" >< href ="#"  onclick ="href='uni_property.jsp?language=Locale.SIMPLIFIED_CHINESE'" >
None.gif      
<% = messagesBundle.getString( " simplifiedChinese " ) %> </ a >  | 
None.gif      
< href ="#"  onclick ="href='uni_property.jsp?language=Locale.TRADITIONAL_CHINESE'" >
None.gif      
<% = messagesBundle.getString( " traditionalChinese " ) %> </ a >  |
None.gif      
< href ="#"  onclick ="href='uni_property.jsp?language=Locale.ENGLISH'" >
None.gif      
<% = messagesBundle.getString( " english " ) %> </ a ></ td >
None.gif     
< td  width ="130"  height ="56" >
None.gif      
< align ="center" >
None.gif      
<% = messagesBundle.getString( " username " ) %>
None.gif     
</ td >
None.gif  
</ tr >
None.gif
</ table >
None.gif
</ body >
None.gif
</ html >

四个资源文件如下
None.gif #uni_property.properties
None.gifusername=JSP Developer
None.gifsimplifiedChinese=SimplifiedChinese
None.giftraditionalChinese=TraditionalChinese
None.gifenglish=English 
None.gif
None.gif #uni_property_en.properties
None.gifusername=JSP Developer
None.gifsimplifiedChinese=SimplifiedChinese
None.giftraditionalChinese=TraditionalChinese
None.gifenglish=English
None.gif #uni_property_zh_CN.properties
None.gifusername=JSP\u5f00\u53d1\u8005
None.gifsimplifiedChinese=\u7b80\u4f53\u4e2d\u6587
None.giftraditionalChinese=\u7e41\u4f53\u4e2d\u6587
None.gifenglish=\u82f1\u6587
None.gif #uni_property_zh_TW.properties
None.gifusername=JSP\u958b\u767c\u8005
None.gifsimplifiedChinese=\u7c21\u9ad4\u4e2d\u6587
None.giftraditionalChinese=\u7e41\u9ad4\u4e2d\u6587
None.gifenglish=\u82f1\u6587
None.gif

在同连接上单击会出现不同语言界面,另外需要注意的是
None.gif ResourceBundle messagesBundle  =  ResourceBundle.getBundle( " propertyFiles/uni_property " ,locale); // 资源文件放在propertyFiles包下
None.gif
该方法查找的起始位置为默认的包,也就是没有名字的包,我们这里放属性文件放在propertyFiles包下,所以为propertyFiles/
另外在属性文件中使用的是Unicode编码,它支持互相转换,处理和显示现在世界上用不同语言写的文本。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值