前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spring框架中的国际化支持

Spring框架中的国际化支持

作者头像
吉林乌拉
发布2019-08-14 17:39:20
9650
发布2019-08-14 17:39:20
举报
文章被收录于专栏:吉林乌拉吉林乌拉

我们在开发项目时,常常会需要支持多国语言,这时就会要求我们的程序支持国际化,也就是可以根据客户端系统的语言类型显示相应的文案与界面。在spring中可以很方便的开发出支持国际化的Web项目。除了spring为我们开发国际化提供了支持,在java中也为我们提供了相应的API。例如java.util.Locale类。Locale类是表示语言和国家/地区信息的本地化类,也就是通过语言和国家或地区,来确定该系统的国际化版本。这时可能有人会想为什么要通过两个参数来确定,单纯的通过语言确定不了吗?答案当然是不能的。例如我们知道,美国和英国的母语都是英语,所以这两个国家的语言类型都是英语类型,在Locale类中用cn表示。既然它们的语言类型是一样的,所以我们并不能通过一个参数来确定。下面是一些国家的语言代码和国家或地区的代号。

下面我们简单看一下Locale类的基本使用。

下面我们看一下Locale类的简单应用。我们知道不同的国家的货币符号和日期类型是不同的,所以接下来我们将通过Locale类来定制化的显示不同国家或地区的货币符号和日期类型。

Locale类除了有上述的作用外,还可以为我们开发国际化程序时提供筛选定制化文件的功能,也就是通过Locale类来为我们选择不同语言和国家的语言文件。但在开发国际化程序时除了需要上述的功能外,还需要通过配置文件中的文案显示不同的内容,也可以理解为配置文件中的文案为模板,而不同用户访问程序时,提示的信息是不同的。这时我们就需要动态更改配置文件中的文案的功能 。在Java中我们可以用占位符来解决。但在本篇中我们将使用spring为我们提供了工具类来实现上述的功能,也就是MessageFormat类。因为MessageFormat类比Java为我们的提供的API提供了更加强大的占位符功能。下面我们看一下MessageFormat类使用。

在开发国际化程序时除了动态选择不同语言的文件外,还需要的一个功能就是读取文件中的属性。在Java中我可以通过File类来读取配置文件中的属性。虽然这么做是可以的,但是这样不是很方便的获取我们想要的属性。Java为了方便我们获取配置文件中的属性,于是为我们提供了ResourceBundle类。下面我们看一下ResourceBundle类的使用。

上述的功能基本能够实现我们开发国际化程序的需求,但是spring为了我们更方便的使用,于是提供了MessageSource接口。spring为这个接口提供了很多种实现类,我们可以通过spring.xml的方式来选择不同语言的配置文件。

spring除了提供ResourceBundleMessageSource类外还提供了ReloadableResourceBundleMessageSource类来加载国际化文件。它们的区别是后者支持定时的刷新国际化文件,也就是在程序不重启的情况下,可以设置刷新的周期,以达到动态更新文件的功能。具体的配置如下。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 吉林乌拉 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档