~~~用properties文件实现国际化与本地化的一个小例子~~~

JSP源文件如下:

<%@ 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 == "Locale.SIMPLIFIED_CHINESE" || language.equals( "Locale.SIMPLIFIED_CHINESE")){
                        locale = Locale.SIMPLIFIED_CHINESE;
                        charset = "gb2312";
                }else if (language == "Locale.TRADITIONAL_CHINESE" || language.equals( "Locale.TRADITIONAL_CHINESE")){
                        locale = Locale.TRADITIONAL_CHINESE;
                        charset = "big5";
                }else if (language == "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("FullTextSearch.MessagesBundle",locale);
String localeCountry = locale.getCountry();
String localeLanguage = locale.getLanguage();

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>top</title>
<base target="contents">
</head>
<body topmargin="0" leftmargin="0" background="../images/leftbg.gif">

<table border="0" width="796" style="font-size: 10pt" cellspacing="0" cellpadding="0" height="60">
  <tr>
    <td width="196" height="68"><img border="0" src=http://www.163design.net/j/e/".images/cmlogo.gif" width="196" height="68"></td>
    <td width="470" height="64">
      <p align="center"><a href="#" onclick="href='testmulti.jsp?language=Locale.SIMPLIFIED_CHINESE'"><%=messagesBundle.getString("simplifiedChinese")%></a> | <a href="#" onclick="href='testmulti.jsp?language=Locale.TRADITIONAL_CHINESE'"><%=messagesBundle.getString("traditionalChinese")%></a> | <a href="#" onclick="href='testmulti.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>

属性文件如下(英文,简体中文,繁体中文,默认)(放在包FullTextSearch下面)
MessagesBundle_en.properties
username=administrator
simplifiedChinese=SimplifiedChinese
traditionalChinese=TraditionalChinese
english=English

MessagesBundle_zh_CN.properties
username=\u7cfb\u7edf\u7ba1\u7406\u5458
simplifiedChinese=\u7b80\u4f53\u4e2d\u6587
traditionalChinese=\u7e41\u4f53\u4e2d\u6587
english=\u82f1\u6587

MessagesBundle_zh_TW.properties
username=\u7cfb\u7d71\u7ba1\u7406\u54e1
simplifiedChinese=\u7c21\u9ad4\u4e2d\u6587
traditionalChinese=\u7e41\u9ad4\u4e2d\u6587
english=\u82f1\u6587

MessagesBundle.properties
username=administrator
simplifiedChinese=SimplifiedChinese
traditionalChinese=TraditionalChinese
english=English

备注:
汉字转换为ascii码用命令:native2ascii.exe
本程序可以正常运行~~~

时间: 2024-10-25 15:53:59

~~~用properties文件实现国际化与本地化的一个小例子~~~的相关文章

一个分析执行SQL文件来做到数据库上传的小例子。

上传|数据|数据库|执行     我们对数据库进行迁移的时候,用的一般都是mysqldump 或是phpmyadmin先把某个表的数据倒出到一个 SQL 文件中,然后再用mysql 等工具来执行,以下的例子说明了如何从 SQL 文件中读出并结合成SQL语句,再上传到远和机器上去执行,免去了事先上传的麻烦.供各位参考. <html><?php     $hostname="localhost";    $dbname ="dbname";    $u

6.4 Android国际化和本地化

何谓国际化和本地化呢?就是在资源文件夹res内建立不同国家语言的文件,这些国家语言的文件命名是有规定的,具体参见表6-1.当用户设置手机的语言时,程序能根据用户选择的语言情况,而加载相对应的语言文件.用户感受到是程序的本地化,而对于开发人员来讲就是程序实现了国际化. 在本例中实现了一个注册的界面,它可以实现中文简体和中文繁体的本地化过程,编写的string.xml和文件夹命名如表6-1.表6-1 文件命名对比表values/strings.xml 默认values-zh-rCN/strings.

使用Dojo Toolkit向Web应用程序添加国际化和本地化功能

简介 Dojo Toolkit 是一个强大的 JavaScript 库,支持 Web 开发人员使用面向对象的窗口小部件,以极少的开发时间和精力创建富互联网应用程序 (Rich Internet Applications, RIA).这个库中包含 4 个程序包,分别为 Dojo(核心).Dijit(UI 框架).dojox(dojo 扩展)和 util.可按原样使用该工具包提供的功能,也可扩展该工具包并创建自己的窗口小部件.工具包中提供的功能包括 DOM 操作.使用 Ajax 开发.事件.数据存储

J2SE API读取Properties文件的六种方法

使用J2SE API读取Properties文件的六种方法: 1.使用java.util.Properties类的load()方法 示例:InputStream in = lnew BufferedInputStream(new FileInputStream(name)); Properties p = new Properties(); p.load(in); 2.使用java.util.ResourceBundle类的getBundle()方法 示例:ResourceBundle rb =

java读取properties文件的方法

  本文实例讲述了java读取properties文件的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 package com.t

java读取properties文件

关键字: java读取properties配置文件 今天要将以前一个项目的数据连接改成从properties文件中配置.找了好久,网上也不少,可就是读取文件时总是找不到文件在哪(我放在classes目录下了).最后终于成功,记下,以做纪念. Java代码 package com.web.connection; import java.io.IOException;import java.io.InputStream;import java.sql.Connection;import java.s

Spring加载properties文件的两种方式

版权声明:尊重博主原创文章,转载请注明出处哦~http://blog.csdn.net/eson_15/article/details/51365707 目录(?)[+]         在项目中如果有些参数经常需要修改,或者后期可能需要修改,那我们最好把这些参数放到properties文件中,源代码中读取properties里面的配置,这样后期只需要改动properties文件即可,不需要修改源代码,这样更加方便.在spring中也可以这么做,而且Spring有两种加载properties文件

ecalipse中创建properties文件的问题

问题描述 ecalipse中创建properties文件的问题 我的properties文件打开就像TXT文件一样,我在网上搜,他们说是插件有问题,可是我 去看配置的时候,好像有properties的插件..不知道怎么解决... 解决方案 没错啊 ,你想怎样呢? 解决方案二: 我是看视频学的,视频里用的是myEclipse,我用的是eclipse,然后我以为是会有分成表格那样有property和value两个部分,就像 下面那个图最下面各个表格一样,开始的时候我用那个那段代码打印出来的k的值是n

2-scala文件操作--自动关闭打开的资源,读取properties文件

简介 使用scala的loan pattern自动关闭打开的资源 读取properties文件 依赖的jar 使用scala_arm库自动关闭资源文件时,需要引入以下依赖: <dependency> <groupId>com.jsuereth</groupId> <artifactId>scala-arm_${scala.binary.version}</artifactId> <version>1.4</version>