Java程序国际化初识

1、基本思路

Java程序的国际化的思路是将程序中的标签、提示等信息放在资源文件中,程序需要支持哪些国家、语言环境,就对应提供相应的资源文件。资源文件是key-value对,每个资源文件中的key是不变的,但value则随不同国家、语言改变。

2、使用的类

java.util.ResourceBundle:用于加载一个国家、语言资源包。

java.util.Locale:用于封装一个特定的国家/区域、语言环境。

java.text.MessageFormat:用于格式化带占位符的字符串。

3、示例代码(模拟登录)

代码

/**

* 程序国际化

* 1、使用的类:Locale、 ResourceBundle、MessageFormat

* 2、properties属性文件(或配置文件),内容以键值对的方式存放

* 3、ResourceBundl工具类,来绑定属性文件,并指定Locale对象,来自动选择使用那个属性文件,默认将使用与操作系统相同的语言环境

* getString()方法来从属性文件中使用key来获取value

* 注意:ResourceBundle工具类是只读的,不能用于向属性文件中写入数据

* @author xiaofei

*/

public class I18nDemo {

public static void main(String[] args) {

// 创建一个本地语言环境对象,该对象会给根据参数设置来自动选择与之相关的语言环境

// 参数:语言,地区,可以从IE浏览器中的工具当中查看各个国家/地区对应的代码

Locale locale_CN = new Locale("zh", "CN");

Locale locale_US = new Locale("en", "US");

// 获取当前系统默认的语言环境

Locale locale_default = Locale.getDefault();

Scanner sc = new Scanner(System.in);

// 使用配置文件

String baseName = "i18n.info";// baseName即为属性文件的前缀名,带上包名

// 用于绑定属性文件的工具类,bundle是大量,包,捆的意思

ResourceBundle r = ResourceBundle.getBundle(baseName, locale_US);// 指定用英文

System.out.println(r.getString("system.name"));

// 接收用户输入的用户名

System.out.println(r.getString("input.username"));

String username = sc.nextLine();

// 接收用户输入的密码

System.out.println(r.getString("input.password"));

String password = sc.nextLine();

if ("admin".equals(username) && "123".equals(password)) {

System.out.println(r.getString("login.success"));

String welcome = r.getString("welcom");

// 动态文本格式化,其中welcome,{0}中的{0}叫做占位符

welcome = MessageFormat.format(welcome, username);

System.out.println(welcome);

} else {

System.out.println(r.getString("login.error"));

}

}// main

}

属性文件

info_zh_CN.properties

system.name=\u5458\u5DE5\u7BA1\u7406\u7CFB\u7EDF

input.username=\u8F93\u5165\u7528\u6237\u540D\uFF1A

input.password=\u8F93\u5165\u5BC6\u7801\uFF1A

login.success=\u767B\u5F55\u6210\u529F\uFF01

login.error=\u767B\u5F55\u5931\u8D25\uFF01

welcom=\u6B22\u8FCE\u4F60\uFF0C{0}\uFF01

info_en_US.properties

system.name=EMP Manage System

input.username=Input Your UserName:

input.password=Input Your Password:

login.success=Login Success!

login.error=Login Fail!

welcom=welcome,{0}!

4、运行结果

英文时

中文时

java国际化程序创建属性文件,Java程序国际化学习代码一相关推荐

  1. java国际化程序创建属性文件_Java国际化(i18n)ResourceBundle类

    ResourceBundle类用于存储区域设置敏感的文本和对象. 通常使用属性文件来存储特定于语言环境的文本,然后使用ResourceBundle对象来表示它们. 以下是在基于Java的应用程序中使用 ...

  2. 怎样用java写一个简单的文件复制程序

    怎样用java写一个简单的文件复制程序 代码来源:https://jingyan.baidu.com/article/c35dbcb0d6f1398916fcbc07.html package Num ...

  3. java实现音频播放小程序_微信小程序实现音频文件播放进度的实例代码

    问题描述 在微信小程序中经常会用到控制文件播放的滑块,通过滑块可控制音频播放进度,下面即用代码实现. 解决方案 首先用.wxml与 .wmss 代码实现进度条的效果,再通过 .js 文件控制进度条的进 ...

  4. Java属性文件– java.util.Properties

    Java properties file are used to store key-value pair configuration. java.util.Properties class is u ...

  5. Java中如何创建一个文件或者文件夹

    Java中如何创建一个文件或者文件夹 创建一个文件夹: 调用Java中File类中的mkdir( )或者mkdirs( )方法 boolean  makdir( ):创建一个文件夹,创建成功返回tru ...

  6. java操作office和pdf文件java读取word,excel和pdf文档内容

    在平常应用程序中,对office和pdf文档进行读取数据是比较常见的功能,尤其在很多web应用程序中.所以今天我们就简单来看一下Java对word.excel.pdf文件的读取.本篇博客只是讲解简单应 ...

  7. 用java创建窗口程序,创建窗口的应用程序

    创建窗口的应用程序 通过前面的基础知识的学习,已经对ctypes库的基本功能学会了使用,为了加强这种知识训练,以及运用刚学习的知识的快乐,我们来创建一个稍稍复杂一点的应用程序.这个应用程序是所有后面应 ...

  8. java用输入流创建数据文件_Java实现文件写入——输入输出流(IO流)

    输入输出含义和意义: 输入和输出功能是Java对程序处理数据能力的提高,java以流的形式处理数据. 流是一组有序的数据序列,根据操作类型,分为输入流和输出流. 程序从输入流读取数据,向输出流写入数据 ...

  9. VC开发程序创建Dump文件

    以前主要做Java开发,最近接手公司老项目做升级维护,开发工具是VC6,用了ACE和WxWidgets,当调试功能时,发现程序会出现内存访问异常,所以决定通过生成Dump文件进行分析,通过学习< ...

最新文章

  1. OpenBLAS简介及在Windows7 VS2013上源码的编译过程
  2. 玩斗地主明白的7个道理
  3. access期刊可以重投几次_又被拒稿了?老司机带你一投即中
  4. ArcGIS Clip(裁剪)时出现000117错误的解决办法
  5. 【LeetCode】两数之和
  6. 【转】ABP源码分析六:依赖注入的实现
  7. iOS 14.5广告跟踪功能使广告商在安卓支出增长21%
  8. pytorch Tensor.backward
  9. linux常用命令笔记大全
  10. char和char*
  11. 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则
  12. iOS设置圆角的四种方法
  13. C++ 类的隐式转换之基本数据类型
  14. UE编辑器加入鼠标右键
  15. 51单片机无法烧录程序的N种解决办法
  16. 通向Golang的捷径【20. 使用 Go 语言的 GAE】
  17. 如何bat修改dns
  18. xshell 基本操作
  19. zblog mysql修改_ZBlog教程 之 修改ZBlog数据库前缀
  20. php时间戳 中文,PHP时间戳-WEB资讯专栏-DMOZ中文网站分类目录-免费收录各类优秀网站的中文网站目录....

热门文章

  1. 使用matlab模拟、检验和估计泊松过程
  2. 从零开始的AI·朴素贝叶斯?拿来吧你(附实例代码)
  3. mysql 将时间戳直接转换成日期时间,mysql查询某一天的数据。
  4. 2017-01-09
  5. 免安装版 mysql-5.6.29-winx64 下载,配置
  6. 年中总结(2013年3月到2013年9月)
  7. Lvs+keepalived   实现负载均衡、故障剔除(DR模式)
  8. github如何clone别人commit的历史版本的仓库
  9. CSP认证201503-4 网络延时[C++题解]:树的直径
  10. PAT甲级1085 Perfect Sequence :[C++题解]双指针