Java学习19 应用程序国际化
来源:互联网 发布:阿里云 域名 指向淘宝 编辑:程序博客网 时间:2024/06/05 19:10
国际化和本地化
- 国际化,Internationalization,I18N
- 本地化,Localization,L10N
- 目标: 编写在任何受支持的区域设置中都能正常运行(且外观表现本地化)的代码
- 国际化主要采用Unicode编码格式
数字、日期和时间国际化
- 语言
- 数字格式
- 时间/日期格式
- 货比
- 身份证、社保号码和护照
- 电话号码、地址和邮政编码
- 度量衡
- 禁忌
- 名字和称谓
这里写代码片
资源包和属性文件
资源包
Resource Bundle,用于保存于运行环境相关的资源,如消息文本、菜单及按钮标签等,每个资源包对应一种用户Locale
资源包的命名格式
- <包名>_<语言代码>_<国家/地区代码>
如:myRes_zh_CN
- <包名>_<语言代码>
如:myLabels_en
- <包名>_<语言代码>_<国家/地区代码>
资源包的两种表现形式:
属性文件(Properties File)
- 后缀:*.properties
- java.util.ResourceBundle类,读取资源包的工具
- unicode转换工具:
native2ascii a.properties b.properties
资源绑定类(Resource Bundle Class)
- 保存的也是国际化的key-value属性信息,但格式不限于字符串类型
- java.util.ListResourceBundle类,采用二维对象数组Object[][]形式保存国际化资源
- 子类实现
getContent()
方法
getBundle
getBundle 使用基本名称、指定的语言环境和默认语言环境(从 Locale.getDefault 获得)来生成候选包名称 序列。如果指定语言环境的语言、国家/地区和变量都是空字符串,则基本名称就是唯一的候选包名称。否则,从指定语言环境(language1、country1 和 variant1)和默认语言环境(language2、country2 和 variant2)的属性值生成下列序列:baseName + “_” + language1 + “_” + country1 + “_” + variant1
baseName + “_” + language1 + “_” + country1
baseName + “_” + language1
baseName + “_” + language2 + “_” + country2 + “_” + variant2
baseName + “_” + language2 + “_” + country2
baseName + “_” + language2
baseName
消息格式化
java.text.MessageFormat,用于格式化包含有可变参数的文本消息
- 调用MessageFormat.format()方法,替换占位符
相关术语:
- 消息模式,Message Pattern
- 占位符,Placeholder
- 类型和样式:
{<index>, <type>, <style>}
- number:integer/currency/percent/#.##(用于格式化浮点数)
- Date:Short/Medium/Long/Full
- Time:Short/Medium/Long/Full
- choice:(选择格式,结合java.text.ChoiceFormat使用)
- 类型和样式:
国际化中的消息格式化
使用资源包保存消息模式字符串
阅读全文
0 0
- Java学习19 应用程序国际化
- Java应用程序国际化
- 国际化 Java 应用程序
- Java应用程序国际化
- Java国际化学习总结
- Java应用程序国际化(Java I18N) 总结
- 探索Java应用程序的国际化支持
- 国际化应用程序
- 应用程序国际化
- 应用程序国际化
- 应用程序国际化
- java学习笔记12--国际化
- C#应用程序的国际化
- 应用程序的国际化
- 国际化你的应用程序
- iphone应用程序名国际化
- IOS 国际化应用程序分析
- Qt应用程序国际化
- web前端第二天
- UglifyJs无法压缩vendor.js: ERROR in static/js/vendor.xxx.js from UglifyJs
- ####好#####DStream中的转换(transformation)
- javascript中不常见的运算符
- Android四大组件详细介绍及例子
- Java学习19 应用程序国际化
- Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Con
- 使用VS2015打包winform程序安装包简单方法(不需要InstallShield)
- 多线程
- chapter9.6
- 【干货】快速安装 GitLab 并汉化
- iis6导出Excel报错检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败,8000401a错误解决办法
- OpenGL Depth and Stencil Test
- mysql主从配置