提示信息国际化配置

1、    提示信息国际化

 基础知识
         概念

国际化英文单词为:Internationalization,又称I18N,I为因为单词的第一个字母,18为这个单词的长度,而N代表这个单词的最后一个字母

 

       Java国际化使用的类

Java国际化主要通过如下3个类完成

java.util.ResourceBundle:用于加载一个资源(配置文件)

java.util.Locale:对应一个特定的国家/区域、语言环境。

java.text.MessageFormat:用于将消息格式化

 

         国际化资源文件

 

资源文件的命名可以有3种格式:

XXXX_language_country.properties  优先加载,与环境匹配的配置文件(优点加载标记了language_country

 

XXXX_language.properties

XXXX_properties

 

例如:

messages_zh_CN.properties (中文,中华人民共和国)

messages_en_US.properties(英语,美国)

messages.properties

 

        测试(找到工具类中的ResourcesUtil类 测试 注意配置文件要写)

 

//根据操作系统环境获取语言环境

       Locale locale = Locale.getDefault();

       System.out.println(locale.getCountry());//输出国家代码

       System.out.println(locale.getLanguage());//输出语言代码s

      

       //加载国际化资源(classpathresources目录下的messages.properties,如果是中文环境会优先找messages_zh_CN.properties

       ResourceBundle rb = ResourceBundle.getBundle("resources.messages", locale);

       String retValue = rb.getString("101");//101messages.properties文件中的key

       System.out.println(retValue);

      

       //信息格式化,如果资源中有{}的参数则需要使用MessageFormat格式化,Object[]为传递的参数,数量根据资源文件中的{}个数决定

       String value = MessageFormat.format(retValue, new Object[]{100,200});

       System.out.println(value);

 

 国际化工具类ResourcesUtil

学会使用Util工程中的ResourcesUtil从messages.properties中根据key提取信息

 

ResourcesUtil  类中两个重载方法

       方法1:public static String getValue(String fileName, String key)

根据key获取信息

       方法2:public static String getValue(StringfileName, String key, Object[] objs)

 

根据key获取信息最且传入动态参数,参数是object[] 数组

 

  处理结果工具类ResultUtil (主要方法四个)

使用国际化工具取国际化信息并创建操作成功、操作失败、警告等结果对象。

 

方法如下:

      创建失败信息

public static ResultInfo createFail(String fileName,int messageCode,Object[]objs){

        Stringmessage=null;

        if(objs == null){

           message= ResourcesUtil.getValue(fileName, messageCode+"");

        }else{

           message= ResourcesUtil.getValue(fileName, messageCode+"",objs);

        }

        return newResultInfo(ResultInfo.TYPE_RESULT_FAIL,messageCode,message);

    }

 

       创建成功信息

 

public static ResultInfo createSuccess(String fileName,intmessageCode,Object[] objs){

       

        Stringmessage=null;

        if(objs == null){

           message= ResourcesUtil.getValue(fileName, messageCode+"");

        }else{

           message= ResourcesUtil.getValue(fileName, messageCode+"",objs);

        }

        return new ResultInfo(ResultInfo.TYPE_RESULT_SUCCESS,messageCode,message);

    }

 

      创建警告信息

public static ResultInfo createWarning(String fileName,intmessageCode,Object[] objs){

        Stringmessage=null;

        if(objs == null){

           message= ResourcesUtil.getValue(fileName, messageCode+"");

        }else{

           message= ResourcesUtil.getValue(fileName, messageCode+"",objs);

        }

        return newResultInfo(ResultInfo.TYPE_RESULT_WARN,messageCode,message);

}

 

 

 

 

      创建提交结果对象

public static SubmitResultInfo createSubmitResult(ResultInforesultInfo){

       return new SubmitResultInfo(resultInfo);

    }

 

 

       创建异常结果对象

public static void throwExcepion(ResultInfo resultInfo) throwsExceptionResultInfo{

       throw new ExceptionResultInfo(resultInfo);

    }

 

1.2     本系统国际化配置

1.2.1     定义资源文件

1.拷贝 message  定义messages.properties 文件写提示信息

将系统中所有的提示信息(操作成功信息、操作异常信息普通提示信息等)统一配置在资源文件,在java代码只需要调用工具类从资源中文件取出配置信息,避免硬编码.

 

 

按模块定义 

 

1.2.2     国际化资源文件使用

 

   

createFail方法如何使用?

  createFail创建错误结果一般都是为了抛出异常我们在此类中也封装了抛出异常的方法throwExcepion。createFail方法返回throwExcepion,throwExcepion

方法的参数是throwExcepion 所以两个方法结合使用抛出异常代码为:

Config.MESSAGE 为系统的配置文件Config的调用。一般系统中配置信息统一通过静态变量配置Config类中。(例如:   public static final String MESSAGE = "resources.messages";)

 

结合使用方法:

ResultUtil.throwExcepion(ResultUtil.createFail(Config.MESSAGE, 213,

                  null));

 

以下是两个方法的源代码:

  /**

     * 创建错误结果

     * @param MESSAGE

     * @return

     */

    public static ResultInfocreateFail(String fileName,int messageCode,Object[] objs){

        Stringmessage=null;

        if(objs == null){

           message= ResourcesUtil.getValue(fileName, messageCode+"");

        }else{

           message= ResourcesUtil.getValue(fileName, messageCode+"",objs);

        }

        return new ResultInfo(ResultInfo.TYPE_RESULT_FAIL,messageCode,message);

}

 

    /**

     * 抛出异常

     * @param resultInfo

     * @throwsExceptionResultInfo

     */

    public static void throwExcepion(ResultInfo resultInfo) throwsExceptionResultInfo{

       throw new ExceptionResultInfo(resultInfo);

    }

    public static void throwExcepion(ResultInfo resultInfo,List<ResultInfo> details) throwsExceptionResultInfo{

       if(resultInfo != null){

           resultInfo.setDetails(details);

       }

       throw new ExceptionResultInfo(resultInfo);

    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值