package aiyh.utils; import aiyh.utils.entity.LabelHtmlIndex; import aiyh.utils.service.UtilService; import weaver.systeminfo.SystemEnv; import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * @author EBU7-dev1-ayh * create 2021/12/13 0013 10:29 * 多语言工具类 */ public class LabelHtmlUtils { private final UtilService utilService = new UtilService(); private Map htmlLabel = null; public LabelHtmlUtils(String prefix) { if (!this.init(prefix)) { throw new RuntimeException("配置文件异常,请检查配置文件结构是否符合要求!"); } } public LabelHtmlUtils() { } /** * 初始化配置信息 * * @param prefix 前缀 * @return 是否初始化成功 */ public synchronized boolean init(String prefix) { if (this.htmlLabel != null) { return true; } try { this.htmlLabel = Util.readProperties2Map("htmlLabelIndex", prefix); return this.htmlLabel != null; } catch (Exception e) { e.printStackTrace(); return false; } } /** * 获取指定语言id的自定义标签 * * @param id 自定义标签id * @param languageId 语言id * @param defaultStr 默认字符串 * @return 自定义标签对应的语言字符串,或者默认字符串 */ public String getHtmlLabelName(int id, int languageId, String defaultStr) { String htmlLabelName = SystemEnv.getHtmlLabelName(id, languageId); return htmlLabelName == null ? defaultStr : htmlLabelName; } /** * 获取指定语言id的自定义标签 * * @param id 标签id * @param languageId 语言id * @return 自定义标签的语言字符串 */ public String getHtmlLabelName(int id, int languageId) { return SystemEnv.getHtmlLabelName(id, languageId); } /** * 通过语言id截取多语言字符串 * * @param languageId 语言id * @param languageStr 多语言字符串 * @return 截取后的字符串 */ public String getHtmlLabelNameByStr(int languageId, String languageStr) { String pattern = "(`~`" + languageId + " )(?