Java 程序国际化
国际化(Internationalization,简称 I18n),可以理解为同一套程序在不同语言环境下使用,不同环境使用不同的语言。
Java里面提供了 Locale 类:
Locale对象表示了特定的地理、政治、文化地区,使用 Locale执行语言环境敏感的任务操作。
有两种方式创建Locale对象:
(1)构造方法
Locale(String language)
Locale(String language,String country)
(2)静态方法
getDefault()
Java中提供了 ResourceBundle 类:
国际化的核心在于语言的不同显示上,通常做法是定义不同的属性文件(*.properties),属性文件的内容形式为 key = value
ResourceBundle是一个对属性文件进行读取的工具类,读取时不用加上文件名的后缀。
getBoundle(String baseName)
getBoundle(String baseName,Locale locale)
getString(String key)
文件目录
properties文件示例
代码示例
package com.seven.javaSE; import java.text.MessageFormat; import java.util.Locale; import java.util.ResourceBundle; import java.util.Scanner; public class I18nDemo { public static void main(String[] args) { //定义不同的Locale对象 Locale locale_CN = new Locale("zh","CN"); Locale locale_US = new Locale("en","US"); //定义读取properties文件的对象 ResourceBundle rb = ResourceBundle.getBundle("com.seven.javaSE.info", locale_CN); System.out.println(rb.getString("systemName")); Scanner sc = new Scanner(System.in); //根据key获取对应的value System.out.println(rb.getString("inputUserName")); String username = sc.nextLine(); System.out.println(rb.getString("inputPassword")); String password = sc.nextLine(); if(username.equalsIgnoreCase("seven")&&password.equals("123")) { System.err.println(rb.getString("loginSuccess")); String welcome = rb.getString("welcome"); //动态填充字符串 welcome = MessageFormat.format(welcome, username); System.out.println(welcome); } else { System.out.println(rb.getString("loginFail")); } } }
本文来自博客园,作者:藤原豆腐渣渣,转载请注明原文链接:https://www.cnblogs.com/javafufeng/p/16305068.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!