1. 新建資源文件
在resources目錄下新建目錄i18n, 然后
新建messages_en.properties文件
user.login.error=account or password error!
新建messages_zh_CN.properties文件
user.login.error=帳戶或密碼錯誤!
2. 新建LocaleConfig.java文件
@Configuration
public class LocaleConfig {@Beanpublic ResourceBundleMessageSource messageSource() {Locale.setDefault(Locale.CHINA);ResourceBundleMessageSource source = new ResourceBundleMessageSource();//設置國際化文件存儲路徑和名稱 i18n目錄,messages文件名source.setBasenames("i18n/messages", "i18n/error", "i18n/message-system");//設置根據key如果沒有獲取到對應的文本信息,則返回key作為信息source.setUseCodeAsDefaultMessage(true);//設置字符編碼source.setDefaultEncoding("UTF-8");return source;}}
3. 新建Utils.java文件
@Component
public class Utils implements ApplicationContextAware {private static ApplicationContext applicationContext;/*** 獲取國際化信息** @param key* String :傳入的國際化key* @param obj* Object :傳入的國際化參數* @return String 返回國際化信息*/public static String getI18n(String key, Object[] obj) {// 目前我在Utils中寫死中文,具體使用時請可配置化Locale locale = Locale.CHINA;String menuName = applicationContext.getMessage(key, obj, "", locale);return menuName;}@Overridepublic void setApplicationContext(ApplicationContext applicationContext) throws BeansException {if (Utils.applicationContext == null) {Utils.applicationContext = applicationContext;}}public static ApplicationContext getApplicationContext() {return applicationContext;}
}
4. 改造登錄接口
public ResponseVo login(UserDto userDto) {// 判斷是否存在該用戶if (user == null) {return ResponseVo.error(Utils.getI18n("user.login.error", null));}
}
5. 啟動項目驗證
如果出現亂碼情況,請將文件設置為UTF-8即可