package com.xxl.job.admin.core.util; import com.xxl.job.admin.core.conf.XxlJobAdminConfig; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.Resource; import org.springframework.core.io.support.EncodedResource; import org.springframework.core.io.support.PropertiesLoaderUtils; import java.io.IOException; import java.text.MessageFormat; import java.util.HashMap; import java.util.Map; import java.util.Properties; /** * i18n util * * @author xuxueli 2018-01-17 20:39:06 */ public class I18nUtil { private static Logger logger = LoggerFactory.getLogger(I18nUtil.class); private static Properties prop = null; public static Properties loadI18nProp(){ if (prop != null) { return prop; } try { // build i18n prop String i18n = XxlJobAdminConfig.getAdminConfig().getI18n(); String i18nFile = MessageFormat.format("i18n/message_{0}.properties", i18n); // load prop Resource resource = new ClassPathResource(i18nFile); EncodedResource encodedResource = new EncodedResource(resource,"UTF-8"); prop = PropertiesLoaderUtils.loadProperties(encodedResource); } catch (IOException e) { logger.error(e.getMessage(), e); } return prop; } /** * get val of i18n key * * @param key * @return */ public static String getString(String key) { return loadI18nProp().getProperty(key); } /** * get mult val of i18n mult key, as json * * @param keys * @return */ public static String getMultString(String... keys) { Map map = new HashMap(); Properties prop = loadI18nProp(); if (keys!=null && keys.length>0) { for (String key: keys) { map.put(key, prop.getProperty(key)); } } else { for (String key: prop.stringPropertyNames()) { map.put(key, prop.getProperty(key)); } } String json = JacksonUtil.writeValueAsString(map); return json; } }