| | |
| | | package com.whyc.util; |
| | | |
| | | import com.whyc.config.I18nLocaleResolver; |
| | | import lombok.var; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.context.MessageSource; |
| | | import org.springframework.context.i18n.LocaleContextHolder; |
| | | import org.springframework.context.support.ResourceBundleMessageSource; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import javax.annotation.PostConstruct; |
| | | import java.nio.charset.StandardCharsets; |
| | | import java.util.Locale; |
| | | import java.util.Objects; |
| | | |
| | | @Component |
| | | public class MessageUtils { |
| | |
| | | @Value("${spring.messages.basename}") |
| | | private String basename; |
| | | |
| | | private final I18nLocaleResolver resolver; |
| | | private final I18nLocaleResolver resolver; |
| | | |
| | | private static I18nLocaleResolver customLocaleResolver; |
| | | |
| | | private static String path; |
| | | |
| | | |
| | | static{ |
| | | if(customLocaleResolver == null) { |
| | | customLocaleResolver = new I18nLocaleResolver(); |
| | | path = "i18n/message"; |
| | | } |
| | | } |
| | | public MessageUtils(I18nLocaleResolver resolver) { |
| | | this.resolver = resolver; |
| | | } |
| | | |
| | | |
| | | @PostConstruct |
| | | public void init() { |
| | |
| | | return getMessage(code, null, code, locale); |
| | | } |
| | | |
| | | /** |
| | | * 获取 国际化后内容信息 |
| | | * |
| | | * @param code 国际化key |
| | | * @return 国际化后内容信息 |
| | | */ |
| | | public static String getMessageSocket(String code, String lang) { |
| | | Locale locale = Locale.SIMPLIFIED_CHINESE; |
| | | if (lang != null) { |
| | | if ((lang.contains("zh"))) { |
| | | locale = Locale.SIMPLIFIED_CHINESE; |
| | | } else { //不是中文,则采用en_US |
| | | locale = Locale.US; |
| | | } |
| | | } |
| | | return getMessage(code, null, code, locale); |
| | | } |
| | | |
| | | public static String getMessage(String code, Object[] args, String defaultMessage, Locale locale) { |
| | | ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource(); |
| | | messageSource.setDefaultEncoding(StandardCharsets.UTF_8.toString()); |