spring boot國際化之MessageSource的使用方法
前言
修改properties文件的目錄:在application.yml或者application.properties中配置 spring.message.basename
spring: application: name: test-worklog messages: basename: i18n/messages encoding: UTF-8
MessageSource的使用:
1. 無參數
operation.success = 操作成功。
String msg1 = this.messageSource.getMessage(' operation.success ', null, Locale.CHINA);
2. 動態參數
start.ge.end = 開始日期{0}必須小于結束日期{1}!
String [] param = {startDate, endDate};String msg =getMessage('start.ge.end', param);@Autowiredprivate MessageSource messageSource;/** * 國際化 * * @param result * @return */public String getMessage(String result, Object[] params) { String message = ''; try { Locale locale = LocaleContextHolder.getLocale(); message = messageSource.getMessage(result, params, locale); } catch (Exception e) { LOGGER.error('parse message error! ', e); } return message;}
補充一個方法,適用于類中無法獲取到MessageSource
/** * 國際化 * 注:通過@Autowired private MessageSource messageSource無法獲取 * * @param result * @return */public String getMessage(String result, Object[] params) { ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource(); messageSource.setCacheSeconds(-1); messageSource.setDefaultEncoding(StandardCharsets.UTF_8.name()); messageSource.setBasenames('/i18n/messages'); String message = ''; try { Locale locale = LocaleContextHolder.getLocale(); message = messageSource.getMessage(result, params, locale); } catch (Exception e) { log.error('parse message error! ', e); } return message;}
總結
到此這篇關于spring boot國際化之MessageSource使用方法的文章就介紹到這了,更多相關springboot國際化MessageSource的使用內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!
相關文章: