package com.github.ltsopensource.admin.support; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.MessageSource; import java.util.Locale; /** * @author Robert HG (254963746@qq.com) on 3/9/16. */ public class I18nManager { private static final Logger logger = LoggerFactory.getLogger(I18nManager.class); private static MessageSource messageSource; @Autowired public I18nManager(MessageSource messageSource) { I18nManager.messageSource = messageSource; } public static String getMessage(String messageKey) { return resolveMessage(null, messageKey, null); } public static String getMessage(String messageKey, Object... args) { return resolveMessage(null, messageKey, args); } public static String getMessage(Locale locale, String messageKey, Object... args) { return resolveMessage(locale, messageKey, args); } private static String resolveMessage(Locale locale, String key, Object[] args) { if (locale == null) { locale = new Locale("zh_CN"); } try { return messageSource.getMessage(key, args, locale); } catch (Throwable t) { logger.error("i18n error, message not found by key :" + key, t); return key; } } }