三、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);}}
}

输出:

 

相关内容

热门资讯

应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
cad打印线条粗细设置 cad... 004-线型(下)打印样式设置和线型文件使用一、线宽设置方法制图规范里边的线宽要求,我们已经定义好,...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
荼蘼什么意思 岁月缱绻葳蕤生香... 感谢作者【辰夕】的原创独家授权分享编辑整理:【多肉植物百科】百科君坐标:云南 曲靖春而至,季节流转,...