zoukankan      html  css  js  c++  java
  • spring 页面国际化

    页面国际化

    1.修改编码类型

    setting ---file encodings

    2.确保所有编码都改为utf-8 properties处打勾

    3.新建一个目录 i18n

    4.在i18n下面创建 message.properties message_zh_CN.properties

    5.右击快捷添加 en_US 英文

    6.Resource bundle中可快速配置

    7.在配置文件中yaml

    spring.messages.basename=i18n.message
    

    8.此时在前端写 th:text="#{参数}",就可以自动识别语言

    9.自己重载一个解析器,这个用到http 交换中

    package com.wang.config;
    
    import org.springframework.util.StringUtils;
    import org.springframework.web.servlet.LocaleResolver;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.util.Locale;
    
    public class MyLocaleResolver implements LocaleResolver {
    
        @Override
        public Locale resolveLocale(HttpServletRequest request) {
            //获取请求中的语言参数,带来l的参数,参考别人怎么写的
            String language = request.getParameter("l");
            Locale locale= Locale.getDefault();
    
            if(StringUtils.isEmpty(language)){
                String[] split = language.split("_"); //分割成为数组
                //分割国家地区
                locale = new Locale(split[0], split[1]);
    
            }
            return locale;
        }
    
        @Override
        public void setLocale(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Locale locale) {
    
        }
    }
    

    写完后注入spring bean中,

    @configuration修饰 @Bean

    10.工具类

    package com.wang.Service;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.context.MessageSource;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.support.ReloadableResourceBundleMessageSource;
    import org.springframework.stereotype.Component;
    
    import java.util.Locale;
    
    @Component
    public class MessageService {
    
        @Autowired
        MessageSource messageSource;
    
        Locale currentLocale = new Locale("en","US");
    
        @Bean
        public static MessageSource getMessageSource() {
            ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
            messageSource.setBasename("i18n/message");
            messageSource.setCacheSeconds(5);
            return messageSource;
        }
    
        public String getMessage(String key) {
            return messageSource.getMessage(key, null, key, currentLocale);
        }
    }
    
    
  • 相关阅读:
    了解Javascript的函数调用和'this'
    js 实现简单收起功能
    页面跳转,form方式提交参数或数据
    查看图片大图效果
    2018phpstom 破解码
    JDK安装
    java 语法释义
    java的特性
    CSS(属性)
    CSS(层叠样式表概述)
  • 原文地址:https://www.cnblogs.com/trevain/p/15270438.html
Copyright © 2011-2022 走看看