不同领域对国际化的定义各不相同,这里谈论的是 W3C 国际化活动材料的高级工作定义。有些人使用其他术语(例如全球化)来指代同一概念。
国际化是产品、应用程序或文档内容的设计和开发,它可以为不同文化、地区或语言的目标受众轻松实现本地化。国际化(Internationalization)通常用英文写成i18n,其中 18 是英文单词中i和n之间的字母数。[1]
本文主要基于java,针对语言国际化进行阐述。 任何一个面向全世界的软件都会面临多语言国际化的问题,对于java web应用,要实现国际化功能,就是在数据展示给用户之前,替换成用户可识别的语言。
使用spring自带的i18n(国际化)
这部分比较简单,在网上搜索就可以找到教程,这里将会手动配置一次spring i18n国际化来介绍一下。以下是笔者使用的spring boot版本号。

1-1.在properties或yml资源文件里面配置i18n
笔者用的是yml文件,可以自行转换成properties文件格式。
basename:以逗号分隔的基名列表(本质上是一个完全限定的类路径位置),每个基名都遵循 ResourceBundle 约定,对基于斜杠的位置提供宽松的支持。如果它不包含包限定符(例如 “org.mypackage” ),它将从类路径根目录解析。
cache-duration:加载的资源包文件缓存的持续时间。如果没有设置,捆绑包将被永久缓存。如果没有指定持续时间后缀,将使用秒。

1-2.在resources文件夹下新增i18n文件夹,并新建相应的国际化文件
spring容器启动的时候,会根据配置的basename去对应的路径加载资源文件到MessageSource里,至于是怎么加载到MessageSource里的,在这里就不展开阐述了。
文件配置如图 1-1所示。
注意:红色框里的就是i18n资源文件的配置,绿色框是idea自动生成的文件夹,实际并不存在,无视就行。

图 1-1 i18n资源文件

本文探讨了在Java Web应用中使用Spring i18n内置国际化功能以及如何扩展至自定义国际化,包括配置步骤、测试与性能优化,适用于复杂业务场景的需求
最低0.47元/天 解锁文章
1546

被折叠的 条评论
为什么被折叠?



