异常国际化处理

项目可能涉及到用户对项目进行访问或在国外部署,在项目中,为客户展现的页面或者操作的信息就需要使用不同的语言,这就是我们所说的项目国际化。

配置 i18n 错误文案

pigx-common-core/resource/i18n/messages_zh_CN.properties 文件中配置国际化文案:

sys.user.username.existing={0} 用户名已存在
sys.user.userInfo.empty={0} 用户信息为空

配置错误编码

ErrorCodes.java 中配置相应编码:

String SYS_USER_USERNAME_EXISTING = "sys.user.username.existing";

String SYS_USER_USERINFO_EMPTY = "sys.user.userInfo.empty";

使用 MsgUtils 获取国际化信息

MsgUtils.getMessage(ErrorCodes.SYS_USER_USERNAME_EXISTING, username);

特别说明

国际化配置要点

目前系统只内置了简体中文的错误信息 messages_zh_CN.properties,可以通过 LocaleContextHolder.getLocale() 动态设置语言环境。

  • 目前系统只内置了简体中文的错误信息 messages_zh_CN.properties
  • 修改 MsgUtils.java 中的配置,默认中文
  • 可以通过 LocaleContextHolder.getLocale() 动态设置语言环境
/**
 * 通过code 获取中文错误信息
 * @param code
 * @return
 */
public String getMessage(String code) {
    MessageSource messageSource = SpringUtil.getBean("messageSource");
    return messageSource.getMessage(code, null, Locale.CHINA);
}

/**
 * 通过code 和参数获取中文错误信息
 * @param code
 * @return
 */
public String getMessage(String code, Object... objects) {
    MessageSource messageSource = SpringUtil.getBean("messageSource");
    return messageSource.getMessage(code, objects, Locale.CHINA);
}