上结果


1.准备工作
先在IDEA中统一设置properties的编码问题!

编写国际化配置文件,抽取页面需要显示的国际化页面消息。我们可以去登录页面查看一下,哪些内容我们需要编写国际化的配置!
配置文件编写
1、我们在resources资源文件下新建一个i18n目录,存放国际化配置文件
**为什么是i18n的目录:**英语单词中i后面有18个字母最后一个是n,所以是i18n

2、建立一个login.properties文件,还有一个login_zh_CN.properties;发现IDEA自动识别了我们要做国际化操作;文件夹变了!

3、我们可以在这上面去新建一个文件;

弹出如下页面:我们再添加一个英文的;

这样就快捷多了!

4、接下来,我们就来编写配置,我们可以看到idea下面有另外一个视图;

这个视图我们点击 + 号就可以直接添加属性了;我们新建一个login.tip,可以看到边上有三个文件框可以输入

我们添加一下首页的内容!然后依次添加其他页面内容即可!
名字随便起,你看得懂就行

然后去查看我们的配置文件;
login.properties :默认
英文:
中文:



OK,配置文件步骤搞定!
配置文件生效探究
我们去看一下SpringBoot对国际化的自动配置!这里又涉及到一个类:
MessageSourceAutoConfiguration:消息资源自动配置类
里面有一个方法,这里发现SpringBoot已经自动配置好了管理我们国际化资源文件的组件 ResourceBundleMessageSource;
// 获取 properties 传递过来的值进行判断
@Bean
public MessageSource messageSource(MessageSourceProperties properties) {
//自己先new一个东西 资源捆绑消息源
ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
//判断还有没有beanname,这个东西是什么我们看看,我找出源码看看,我贴到了这段代码的下面,解释也下面
if (StringUtils.hasText(properties.getBasename())) {
// 设置国际化文件的基础名(去掉语言国家代码的)
messageSource.setBasenames(
//逗号分隔的列表到字符串数组;commaDelimitedListToStringArray
//修剪所有空白:trimAllWhitespace
//就行修剪后搞成数组放到了开始new的资源捆绑消息源中
StringUtils.commaDelimitedListToStringArray(
StringUtils.trimAllWhitespace(properties.getBasename())));
}
//获取编码:getEncoding 如果已经有编码了,就进if
if (properties.getEncoding() != null) {
//把你给的编码名字搞出来,又加到new的资源捆绑消息源中
messageSource.setDefaultEncoding(properties.getEncoding().name
2875




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



