三、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万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
阿西吧是什么意思 阿西吧相当于... 即使你没有受到过任何外语培训,你也懂四国语言。汉语:你好英语:Shit韩语:阿西吧(아,씨발! )日...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...