Java Location Java本地化
一.国际化 缩写 i18N(来源于国际化的单词缩写以i开始N结束的18位英文),让开发的程序适应世界上不同国家或地区的过程。
二.本地化 (使程序能适应某个地区或语言的使用习惯的过程)
•本地化是通过添加特定语言环境的文本和组件来创建适合特定语言和地区的应用程序的机制。
•本地化可以在不同类型的数据上实现,比如日期、货币和文本。
•为了本地化不同类型的数据,有必要确定语言和国家。
•为了确定语言,Java提供了一组预定义的语言代码,如zh代表中文,en代表英文和国家代码,如AU代表澳大利亚,CN代表中国。
实现:
对于本地化,java的Locale类。Util包的使用方法如下
Locale l=new Locale ("de","DE");
//第一个参数:语言代码; 第二个参数:城市代码
Country | Language Code | Country Code |
---|---|---|
China | zn or zh | ZN or CN |
Germany | de | DE |
United States | en | US |
French | fr | FR |
Russian | ru | RU |
Japanese | ja | JP |
India | Hi | IN |
Localizing Date 本地化时间
本地化日期,需要在格式化日期时指定语言和国家。
DateTimeFormatter localFormater=
DateTimeFormatter.ofPattern("yyyy/MM/dd E a HH:mm:ss", new Locale("en", "US"));
System.out.println(LocalDateTime.now().format(localFormater));
/*
output:
2021/05/26 Wed PM 19:45:49
*/
Localizing Currency 本地化货币
同本地化时间的写法
NumberFormat nft=NumberFormat.getCurrencyInstance(new Locale("en", "US"));
String fro=nft.format(100000);
System.out.println("RMB:"+fro);
/*
OutPut:
$100,000.00
*/
Localizing Number 本地化数字
NumberFormat nft1=NumberFormat.getNumberInstance(new Locale("en", "US"));
NumberFormat nft2=NumberFormat.getNumberInstance(new Locale("zh", "CN"));
NumberFormat nft3=NumberFormat.getNumberInstance(new Locale("ru", "RU"));
String fro1=nft1.format(12345600);
System.out.println("NUM:"+fro1); //美国
String fro2=nft2.format(12345600);
System.out.println("NUM:"+fro2); //中国
String fro3=nft3.format(12345600);
System.out.println("NUM:"+fro3); //俄语
/*
output:
NUM:12,345,600
NUM:12,345,600
NUM:12?345?600
*/
Localing Text 本地化文本
- 在对应项目的src中new-file-写文件名
命名规则:
自定义名字__语言代码.properties
-
然后创建文件成功。可以在文件内写内容 使用如下语句可以使内容显示对应的语言在输入栏
Locale locale=new Locale("zh", "CN"); //选择中文 ResourceBundle rbl= //对应文件名字 对应的本地化语言 ResourceBundle.getBundle("MessagesBundle", locale); System.out.println(rbl.getString("message")); //输出文件中对应message的信息
在MessagesBundle文件中写入 对应message 的内容
message=\u65E9\u4E0A\u597D
-
最终输出: 早上好