zoukankan      html  css  js  c++  java
  • Java中的国际化

    一.什么是国际化?

    国际化是指应用程序运行时,可根据客户端请求来自的国家/地区、语言的不同而显示不同的界面。

    二.Java如何实现国际化?

    Java程序的国际化思路是将程序中的标签、提示等信息放在资源文件中,程序需要支持哪些国家、语言环境,就对应提供相应的资源文件。

    Java程序的国际化主要通过三个类来完成:

    java.util.ResourceBundle:用于加载国家、语言资源包

    java.util.Locale:用于封装特定的国家/区域、语言环境。

    java.text.MessageFormat:用于格式化带占位符的字符串。

    为了实现程序的国际化,必须先提供程序所需的资源文件。资源文件的内容时很多key-value对,其中key是程序使用的部分,而value则是程序界面的显示字符串。

    资源文件的命名可以有如下三种形式:

    baseName_language_country.properties 

    baseName_language.properties

    baseName.properties

    其中baseName是资源文件的基本名,可随意指定,而language和country都不可以随意变化而必须是Java所支持的语言和国家。

    下面就是一个例子:

    首先在src源文件文件夹下创建两个properties文件

    一定要按照相应的格式来创建文件,否则编译器将找寻不到文件。

    文件中使用key-value来存储如下:

     

     

    使用ResourceBundle类来获取属性文件中对应的值

    package com.peng.teach;
    
     
    
    import java.util.Locale;
    
    import java.util.ResourceBundle;
    
     
    
    import javax.swing.JFrame;
    
     
    
    public class JframeText extends JFrame {
    
        public JframeText(String str) {
    
            super(str);
    
        }
    
     
    
        public static void main(String[] args) {
    
            // 语言环境类:locale
    
            Locale locale = Locale.getDefault();// 获取操作系统默认的语言
    
            // 使用ResourceBundle
    
            ResourceBundle bu = ResourceBundle.getBundle("cheng");//获得属性文件
    
            JframeText jf = new JframeText(bu.getString("username"));//将需要转化的字段取出并且完成转化
    
            jf.setSize(300, 400);
    
            jf.setVisible(true);
    
            jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    
        }
    
    }

     运行结果将转化为中文

    如果将默认语言改为英文将完成英文的转化:

    Locale locale = Locale.UK;// 获取UK语言
  • 相关阅读:
    ModelBinder——ASP.NET MVC Model绑定的核心
    asp.net
    深入C#内存管理来分析 值类型、引用类型、装箱、拆箱、堆栈几个概念
    C#网络编程
    [Architecture Pattern] Service Locator
    RestSharp使用详解
    系统性能优化一例
    C#开发的高性能EXCEL导入、导出工具DataPie
    ASP.NET MVC以ValueProvider为核心的值提供系统: DictionaryValueProvider
    ASP.NET MVC以ValueProvider为核心的值提供系统: NameValueCollectionValueProvider
  • 原文地址:https://www.cnblogs.com/SAM-CJM/p/9364460.html
Copyright © 2011-2022 走看看