用Java解决国际化问题

如果应用系统是面向多种语言的,编程时就不得不设法解决国际化问题,包括操作界面的风格问题、提示和帮助语言的版本问题、界面定制个性化问题等。

由于Java语言具有平台无关、可移植性好等优点,并且提供了强大的类库,所以Java语言可以辅助我们解决上述问题。Java语言本身采用双字节字符编码,采用大汉字字符集,这就为解决国际化问题提供了很多方便。从设计角度来说,只要把程序中与语言和文化有关的部分分离出来,加上特殊处理,就可以部分解决国际化问题。在界面风格的定制方面,我们把可以参数化的元素,如字体、颜色等,存储在数据库里,以便为用户提供友好的界面;如果某些部分包含无法参数化的元素,那么我们可能不得不分别设计,通过有针对性的编码来解决具体问题。

Java类包

在用Java解决国际化问题的过程中,可能利用到的主要的类都是由java.util包提供的。该类包中相关的类有Locale、ResourceBundle、ListResourceBundle、PropertyResourceBundle等,其继承关系如下图所示。

其中各类提供的主要功能如下:

Locale:该类包含对主要地理区域的地域化特征的封装。其特定对象表示某一特定的地理、政治或文化区域。通过设定Locale,我们可以为特定的国家或地区提供符合当地文化习惯的字体、符号、图标和表达格式。例如,我们可以通过获得特定Locale下的Calendar类的实例,显示符合特定表达格式的日期。

ResourceBundle:该类是一个抽象类,需要通过静态方法ResourceBundle.getBundle()指定具体实现类或属性文件的基本名称。基本名称会协同指定的或默认的Locale类,决定具体调用的类或属性文件的**名称。例如:指定基本类或属性文件名称为TestBundle,而指定的Locale是CHINESE,那么最适合匹配的类名称为TestBundle_zh_CN.class,而**匹配属性文件名称为TestBundle_zh_CN.properties。按照Java Doc和相关文档的要求,如果该类或属性文件没有找到,系统会查找近似匹配(主文件名依次为TestBundle_zh和TestBundle的类或属性文件)。该类提供的getKeys()方法用于获得所有成员的键名,并提供handleGetObject方法获得指定键的对应元素。

ListResourceBundle:该类继承ResourceBundle类,主要是增加了一些便于操作的成分,但还是抽象类。如果希望使用类的方式实现具体的ResourceBundle,一般情况下**继承这个类。

PropertyResourceBundle:该类也继承ResourceBundle类,可以实例化。该类的行为特征如同java.util.properties类,可以从输入流中获得具体属性对。

如果涉及日期和时间显示等问题时,可以利用java.text包以及java.util包中的TimeZone、SimpleTimeZone和Calendar等类进行辅助处理。

上海java 开发培训_上海十大java培训相关推荐

  1. java 和javafx_9月的十大Java故事:Java 13,JavaFX 13和Jakarta EE 8

    java 和javafx 简而言之,9月对于Java来说是繁忙的月份. 我们不仅发布了JFX 13和Jakarta EE 8,而且Java 13还发布了一些新的JEP和功能预览. 即使天气变凉,Jav ...

  2. java applet编程_第二十讲 Java Applet程序设计

    第二十讲Java Applet程序设计 主要内容 初识Java Applet Java Applet的生命周期 Graphics类和图像图形绘制 Applet中播放声音媒体 初识Java Applet ...

  3. 实战突击JAVA开发项目_《实战突击Java项目开发案列整合》随书资料(视频+源码)_源雷技术空间...

    资源名称:<实战突击Java项目开发案列整合>随书资料(视频+源码) 资源目录: [IT教程网]第1-9_11-15_18_20_21章 [IT教程网]第10章BBS论坛 [IT教程网]第 ...

  4. python上海培训哪里比较好-上海十大python培训机构

    上海Python培训班 千锋教育打造人工智能Python工程师 快速咨询 上海十大python培训机构 很多零基础的同学选择学习Python入门.到底该怎么选择Python培训机构?应该去哪里学习Py ...

  5. java培训首选沙大计教育,长沙县十大JAVA培训班排名(Java初级水平)

    长沙县十大JAVA培训班排名,最近很多人咨询长沙JAVA培训,下面Java编程工具,Java初级水平,Java编程规范是小编整理的相关知识. Java编程工具 Java是一个编程开发语言,随着互联网的 ...

  6. java不想出差_您不想错过的十大Java书籍

    java不想出差 我们通过阅读书籍并进行实验来学习. 因此,必须选择最佳的可用选项. 在本文中,我想与一些书分享我的经验,以及它们如何帮助您发展成为Java开发人员. 让我们从头开始,对于任何Java ...

  7. Java开发人员必备的7大技能,每一个都必不可少

    Java存活这么多年,目前Java软件开发工程师已经成为"香饽饽"了,工作环境好,就业薪资高,成为很多门外汉羡慕的对象,确实Java已经成为比较受欢迎的编程语言.可以说当下Java ...

  8. 您不想错过的十大Java书籍

    我们通过阅读书籍并进行实验来学习. 因此,必须选择最佳的可用选项. 在本文中,我想与一些书分享我的经验,以及它们如何帮助您发展为Java开发人员. 让我们从头开始,对于任何Java学生来说,前三本书都 ...

  9. 学完Java后可从事的十大领域!

    Java是时下非常流行的语言,这意味着有很多很多不同的工作可供选择.Java软件工程师入行1-3年,年薪已达到10-15万,而且在IT行业工作经验越多,薪资待遇越高. 工作选择多,薪资待遇好,成了许多 ...

  10. 北京java研发平均工资_各地java开发工程师平均工资 北京高级java开发工程师工资2万多...

    原标题:各地java开发工程师平均工资 北京高级java开发工程师工资2万多 java开发工程师工资水平一直都是程序员们比较关注的话题,毕竟java是最热门的编程的语言.每个城市的由于经济水平的差距, ...

最新文章

  1. CSS3支持IE6, 7, and 8的边框属性
  2. 高通驱动9008安装_赛多利斯Sartorius-ambr? 250 高通量灌注培养系统
  3. android this context,Android應用開發中關於this.context=context的理解
  4. html获取text值_Python小程序2获取href的值
  5. Android webview加载pdf实验成功
  6. 高并发中,那些不得不说的线程池与ThreadPoolExecutor类
  7. eclipse 统计代码量,统计代码行数
  8. 云管理平台为混合IT应用提供统一的方法
  9. 在Pandas中直接加载MongoDB的数据
  10. 无聊的时候去火箭队官网调戏客服
  11. 【干货】ArcGIS自动生成拓扑并导出拓扑错误
  12. 使用好压(HaoZip)软件打包EverEdit制作安装程序
  13. B站傅希鸣-ElasticSearch学习笔记(ES 入门)
  14. Docker 使用容器数据卷 实现宿主机与容器共享数据 容器数据持久化
  15. html盒子连续点击连续移动,html盒子整体向下移动
  16. 中缀转后缀表达式并计算
  17. 静态路由关联下一跳与出接口
  18. 聊聊生日悖论和生日攻击
  19. go并发之道学习总结
  20. ORBSLAM3编译生成与应用

热门文章

  1. 我好吗 太阳照常升起梁静茹_明天太阳会升起吗?
  2. 抽象类的有参与无参构造函数的研究
  3. rabbitmq实战_RabbitMQ实战(四) - RabbitMQ amp; Spring整合开发
  4. macOS安装docker
  5. 7 款 Python 开源框架的优劣总结
  6. xposed视频教程
  7. Pandas知识点-添加操作append
  8. Python中的GIL锁
  9. NuGet学习笔记(2)——使用图形化界面打包自己的类库
  10. C#中的套接字编程(二) --转