网页国际化配置

1. 国际化配置

  • 配置国际化文件
    • 配置文件中加入国际化配置
    • 页面元素引入国际化配置
    • 实现国际化语言切换

准备工具
Windows10
intelliJ IDEA 2018.2.5
SpringBoot 创建web项目

配置国际化文件

在resources目录下创建配置文件目录i18n,在现为登陆页面创建国际化配置,建文件夹login.properties(在没有配置国际化时默认使用该文件中的配置),再建中文配置文件login_zh_CN.properties(中文配置文件)此时如果IDEA检测到配置国际化会自动生成Resource Bundle ‘login’文件夹,

网页国际化配置_第1张图片
右击该文件夹new->Add Property File
网页国际化配置_第2张图片
命名为login_en_US.properties,打开login_zh_CN.properties文件,点击下方Resource Bundle视图,

进入属性编写页面,点击“+”进行添加属性,改属性为页面中显示的所有字。属性名最好见名知意
网页国际化配置_第3张图片
编写好之后其他两个文件也会自动进行配置值:
网页国际化配置_第4张图片

网页国际化配置_第5张图片

配置文件中加入国际化配置

SpringBoot自动配置好了啦管理国际化资源文件的组件:在配置文件中加入国际化配置,将国际化配置交由SpringBoot的国际化配置接管在系统配置文件application.properties中加入spring.messages.basename=i18n.login其中i18n为我们开始建的存放国际化配置文件的文件夹名,login为我们配置文件的基础名(去掉语言国家的文件名login_zh_CN等基础名为login)
网页国际化配置_第6张图片

页面元素引入国际化配置

获取页面中的国际化配置为页面中的每个值属性配上相应的配置;标签中不能直接使用#{}来标注,它只能标注文本标签的值,此处应该用双中括号[[#{}]]来标注值;#{}取国际化值;我是用的是thymeleaf模板引擎
网页国际化配置_第7张图片

实现国际化语言切换

配置一个LocaleResolver() 区域解析器实现LocalResolver接口

public class MyLocaleResolver implements LocaleResolver {

    @Override
    public Locale resolveLocale(HttpServletRequest httpServletRequest) {
       String l=httpServletRequest.getParameter("l");
       Locale locale=Locale.getDefault();
       //检查 L 是否为空,在对应页面请求中加入参数 l='zh_CN' 或者l='en_US' 即可切换国际化语言
           if(!StringUtils.isEmpty(l)){
           String[] split=l.split("_");
           locale=new Locale(split[0],split[1]);
       }
        return locale;
    }

    @Override
    public void setLocale(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Locale locale) {

    }
}

配置完实现类之后,须将该配置类加入到容器中,在MVC配置类中添加,如下:

//使用WebMvcConfigurationSupport来扩展SpringMVC功能
@Configuration
public class MvcConfig extends WebMvcConfigurationSupport {

    @Override
    protected void addResourceHandlers(ResourceHandlerRegistry registry) {
        //扩展静态文件路径/**全部为classpath:/templates/
        registry.addResourceHandler("/**")
                .addResourceLocations("classpath:/templates/");

    }
	//视图解析器
    @Override
    protected void addViewControllers(ViewControllerRegistry registry) {
                registry.addViewController("/").setViewName("login");
                registry.addViewController("/index").setViewName("login");
    }//将自己配置的区域信息解析器加入到MVC容器中
    @Bean
    public LocaleResolver localeResolver(){
        return new MyLocaleResolver();
    }

}

至此配置国际化就完成了,总的来说配置国际化公分为四步:
1.为页面编写国际化文件
2.将国际化配置路径加入配置文件
3.页面元素引入国际化配置
4.实现点击切换国际化语言

你可能感兴趣的:(#,java学习笔记)