您的位置:首页 > 编程语言 > Java开发

Java程序国际化的简单实现

2007-04-22 15:05 951 查看
  
国际化(I18N)是指为了使应用程序能适应不同的语言和地区间的变化而不作系统性的改变所采取的设计措施。一个优秀的全球化软件产品的国际化应该包括以下几个方面[4]:
¨         Messages
¨         Labels on GUI components
¨         Online help
¨         Sounds
¨         Colors
¨         Graphics
¨         Icons
¨         Dates
¨         Times
¨         Numbers
¨         Currencies
¨         Measurements
¨         Phone numbers
¨         Honorifics and personal titles
¨         Postal addresses
¨         Page layouts
 
下面通过一个简单的例子来演示Java对国际化的支持[3]。
文件列表:
ResourceBundleTest.java       //根据不同的语言地区设置(英/中),显示相应的内容(英/中)
LocalStrings_en_US.properties     //英文内容
LocalStrings_zh_CN.properties     //中文内容
 
ResourceBundleTest.java程序识别操作系统不同语言[1]不同地区[2]设置,显示相应的内容,如果当现操作系统为英文环境(en_US),则显示“google”;如果当现操作系统为中文环境(zh_CN),则显示“谷歌”。如果需要扩展对其它语言的支持,只要增加相应的属性文件即可,(如日文环境,增加LocalStrings_ja_JP.properties文件和相应的内容),不需要改动ResourceBundleTest.java程序。
 
 
附件:
ResourceBundleTest.java
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
import java.io.UnsupportedEncodingException;
import java.util.Locale;
import java.util.ResourceBundle;
 
public class ResourceBundleTest {
public static void main(String args[]) {
 
        //LocalStrings 为peoperties文件的文件名称,得到当前环境的LocalStrings_xx_XX.properties文件对应的ResourceBundle对像。
        ResourceBundle rb = ResourceBundle.getBundle("LocalStrings");
    // System.out.println("Locale:"+Locale.getDefault().toString());
       
        //得到properties文件里的title值
        String title = rb.getString("title");
  
        try {
                  System.out.println(new String(title.getBytes("8859_1")));
         } catch (UnsupportedEncodingException e) {
                   // TODO Auto-generated catch block
                  e.printStackTrace();
         }
    }
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
LocalStrings_en_US.properties
//////////////////////////////////////////////
title=google
//////////////////////////////////////////////
 
LocalStrings_zh_CN.properties:
//////////////////////////////////////////////
title=谷歌
//////////////////////////////////////////////
 
 
参考资料:
 
1.    语言代码对照表http://www.loc.gov/standards/iso639-2/php/English_list.php
2.    国家代码对照表http://www.iso.ch/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html
3.    JDK中对国际化的支持http://java.sun.com/javase/6/docs/technotes/guides/intl/index.html
4.    关于国际化的教程 http://java.sun.com/docs/books/tutorial/i18n/
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息