三、Java核心技术(进阶)-国际化编程
创始人
2025-05-29 20:10:22

一、概念

国际化编程:通过一套软件适配多个语言包。

二、相关函数

java.util.ResourceBundle:用于加载一个语言_国家语言包

java.util.Locale:定义一个语言_国家

三、相关类

Locale类

Locale(zh_CN,en_US,...)

-语言:zh、en等

-国家/地区:CN、US等

相关方法:

  • -getAvailableLocales():返回所有可用Locale
  • -getDefault():返回默认的Locale

ResourceBundle类:

-加载语言文件,并getString(String key)返回对应的value

三、语言文件

Properties文件(参见《Java核心技术》第十章)

-要求:存储文件必须是ASCII文件,ASCII以外文字,必须用Unicode表示,可用native2ascii.exe(%JAVA_HOME%\bin目录下)进行转码

-命名规则

包名+语言+国家地区.properties

如:message.properties、message_zh.properties、message_zh_CN.properties

四、语言文件匹配路径(匹配顺序)

ResourceBundle 根据key找value的查找路径

  • -包名_当前Locale语言_当前Locale国家地区_当前Locale变量(variant)
  • -包名_当前Locale语言_当前Locale国家地区
  • -包名_当前Locale语言
  • -包名_默认Locale语言_默认Locale国家地区_默认Locale变量(variant)
  • -包名_默认Locale语言_默认Locale国家地区
  • -包名_默认Locale语言
  • -包名

五、添加语言文件

语言文件使用的都是ascii编码,利用java库函数native2ascii,将本地语言转成ascii格式\uXXXX;

C:\Users\shism>cd C:\Users\shism\Desktop\文件C:\Users\shism\Desktop\文件>native2ascii msg_zh_CN.txt msg_zh_CN.properties

 

拷贝进程序资源目录中

 

 

六、实践及输出

import javafx.fxml.LoadException;import java.util.Locale;
import java.util.ResourceBundle;/*** @author: Shism* @Date: Created in 16:50 2023/3/16* @Description:**/
public class NewHelloworld {public static void main(String[] args) {//获取默认语言环境及国家Locale myLocale = Locale.getDefault();System.out.println(myLocale);//根据本地语言环境zh_CN,加载语言文件 msg_zh_CN.propertiesResourceBundle ResourceBundle = java.util.ResourceBundle.getBundle("msg", myLocale);System.out.println(ResourceBundle.getString("hello"));//更改本地默认语言文件为en_US,加载语言文件 msg_en_US.propertiesmyLocale = new Locale("en", "US");ResourceBundle = java.util.ResourceBundle.getBundle("msg", myLocale);System.out.println(ResourceBundle.getString("hello"));//获取java支持语言环境及国家System.out.println("=============");Locale[] localeList = Locale.getAvailableLocales();for (Locale locale : localeList){System.out.println(locale);}}
}

输出:

 

相关内容

热门资讯

世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...