zoukankan      html  css  js  c++  java
  • java项目国际化ResourceBundleMessageSource

    最近项目需要国际化,一般常见的方式就是采用配置文件话国际化。

    根据请求头传入不同的语言,返回不同的内容;

    自己搭建了一个模型,分如下几步:

    1.spring配置文件修改,定义国际化消息

    2.查找项目中需要返回到web的国际化内容,写到配置文件中

    3.处理国际化封装成一个工具类,在controller层 统一处理。

    国际化需要注意,如果调用方未传language,系统需要默认一个,最好写在配置文件中,方便随时修改,用 @value注入到国际化工具类中。

    一 :Spring配置文件

      <!-- 定义国际化消息-->
        <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
            <!-- 其中basename用来指定properties文件的通用名
                  如实例中的messages_en.properties,messages_ja.properties通用名都是messages
             -->
            <property name="basename" value="messages"/>
            <property name="useCodeAsDefaultMessage" value="true" />
            <property name="defaultEncoding" value="UTF-8"/>
            <property name="cacheSeconds" value="100"></property>
    
        </bean>
    View Code

    二:配置文件国际化,如下图

     三:工具类:

     1 @Service
     2 public class ResponseUtil {
     3 
     4     @Value(value = "${default.xLanguage}")
     5     public String language;
     6 
     7     public  String getMessage(String xLanguage, Error error, String className){
     8 
     9         if(StringUtils.isEmpty(xLanguage)){
    10             xLanguage = language;
    11         }
    12         if(null==error){
    13             return "请求成功";
    14         }
    15         /***此处根据不同的code获取国际化资源**/
    16        
    17 
    18         ResourceBundle resourceBundle = null;
    19         switch (xLanguage){
    20             case "en-US":
    21                 resourceBundle = ResourceBundle.getBundle("messages", Locale.US);
    22                 break;
    23             case "zh-CN":
    24                 resourceBundle = ResourceBundle.getBundle("messages", Locale.SIMPLIFIED_CHINESE);
    25                 break;
    26         }
    27         if(null==resourceBundle){
    28             return null;
    29         }
    30 
    31         return resourceBundle.getString(messageKey);
    32     }
    33 
    34 
    35     }
    36 }    
    View Code

    PostMan模拟后,返回结果成功。

    ==========================================================================           如果您觉得这篇文章对你有帮助,可以【关注我】或者【点赞】,希望我们一起在架构的路上,并肩齐行
    ==========================================================================
  • 相关阅读:
    .Net加密保护工具分析介绍
    正则表达式
    easyui datagrid toolbar 添加搜索框
    为jQuery-easyui的tab组件添加右键菜单功能
    苹果系统无法启动的解决步骤
    解决MVC4发布在IIS7后,路径无法访问.apk文件的解决方法
    C#微信公众平台开发者模式开启代码
    ios svn无法连接xp或者win7系统svn的解决方法
    SQL SERVER 2008 R2 SP1更新时,遇上共享功能更新失败解决方案
    easyui textarea回车导致datagrid 数据无法展示的问题
  • 原文地址:https://www.cnblogs.com/amberJava/p/12362655.html
Copyright © 2011-2022 走看看