diff --git a/kernel-d-i18n/i18n-api/src/main/java/cn/stylefeng/roses/kernel/i18n/api/TranslationApi.java b/kernel-d-i18n/i18n-api/src/main/java/cn/stylefeng/roses/kernel/i18n/api/TranslationApi.java index fd0493f55..8a2837f44 100644 --- a/kernel-d-i18n/i18n-api/src/main/java/cn/stylefeng/roses/kernel/i18n/api/TranslationApi.java +++ b/kernel-d-i18n/i18n-api/src/main/java/cn/stylefeng/roses/kernel/i18n/api/TranslationApi.java @@ -1,6 +1,5 @@ package cn.stylefeng.roses.kernel.i18n.api; -import cn.stylefeng.roses.kernel.i18n.api.enums.TranslationEnum; import cn.stylefeng.roses.kernel.i18n.api.pojo.TranslationDict; import java.util.List; @@ -26,12 +25,12 @@ public interface TranslationApi { /** * 获取某个语种下的所有多语言字典 * - * @param translationLanguages 语种枚举 + * @param translationLanguages 语种字典 * @return key-翻译项标识,value-翻译的值TranslationApi * @author fengshuonan * @date 2021/1/24 19:01 */ - Map getTranslationDictByLanguage(TranslationEnum translationLanguages); + Map getTranslationDictByLanguage(String translationLanguages); /** * 添加一个翻译项到context @@ -45,11 +44,11 @@ public interface TranslationApi { /** * 删除某条翻译记录 * - * @param translationLanguages 语种枚举 + * @param translationLanguages 语种字典 * @param tranCode 具体翻译项编码 * @author fengshuonan * @date 2021/1/24 21:59 */ - void deleteTranslationDict(TranslationEnum translationLanguages, String tranCode); + void deleteTranslationDict(String translationLanguages, String tranCode); } diff --git a/kernel-d-i18n/i18n-api/src/main/java/cn/stylefeng/roses/kernel/i18n/api/enums/TranslationEnum.java b/kernel-d-i18n/i18n-api/src/main/java/cn/stylefeng/roses/kernel/i18n/api/enums/TranslationEnum.java deleted file mode 100644 index 3cf748810..000000000 --- a/kernel-d-i18n/i18n-api/src/main/java/cn/stylefeng/roses/kernel/i18n/api/enums/TranslationEnum.java +++ /dev/null @@ -1,74 +0,0 @@ -package cn.stylefeng.roses.kernel.i18n.api.enums; - -import cn.hutool.core.util.StrUtil; -import lombok.Getter; - -import java.util.ArrayList; -import java.util.List; - -/** - * 翻译的语种 - * - * @author fengshuonan - * @date 2021/1/24 18:57 - */ -@Getter -public enum TranslationEnum { - - /** - * 中文 - */ - CHINESE("chinese", "中文"), - - /** - * 英文 - */ - ENGLISH("english", "English"); - - /** - * 语种编码 - */ - private final String code; - - /** - * 语种的中文描述 - */ - private final String description; - - TranslationEnum(String code, String description) { - this.code = code; - this.description = description; - } - - /** - * 获取所有的type(返回code编码集合) - * - * @author fengshuonan - * @date 2019/10/18 10:13 - */ - public static List types() { - ArrayList integers = new ArrayList<>(); - for (TranslationEnum value : TranslationEnum.values()) { - integers.add(value.name()); - } - return integers; - } - - /** - * 通过code值获取枚举 - * - * @author fengshuonan - * @date 2019/10/18 10:33 - */ - public static TranslationEnum getValue(String value) { - if (StrUtil.isNotBlank(value)) { - for (TranslationEnum translationLanguages : TranslationEnum.values()) { - if (translationLanguages.getCode().equals(value)) { - return translationLanguages; - } - } - } - return null; - } - -} diff --git a/kernel-d-i18n/i18n-api/src/main/java/cn/stylefeng/roses/kernel/i18n/api/pojo/TranslationDict.java b/kernel-d-i18n/i18n-api/src/main/java/cn/stylefeng/roses/kernel/i18n/api/pojo/TranslationDict.java index c484c025e..bb2e3034f 100644 --- a/kernel-d-i18n/i18n-api/src/main/java/cn/stylefeng/roses/kernel/i18n/api/pojo/TranslationDict.java +++ b/kernel-d-i18n/i18n-api/src/main/java/cn/stylefeng/roses/kernel/i18n/api/pojo/TranslationDict.java @@ -1,6 +1,5 @@ package cn.stylefeng.roses.kernel.i18n.api.pojo; -import cn.stylefeng.roses.kernel.i18n.api.enums.TranslationEnum; import lombok.Data; import java.io.Serializable; @@ -25,9 +24,9 @@ public class TranslationDict implements Serializable { private String tranName; /** - * 1:中文 2:英语 + * 多语言语种的编码,值是字典的值,字典类型的编码是 languages */ - private TranslationEnum translationLanguages; + private String translationLanguages; /** * 翻译的值,例如:账号 diff --git a/kernel-d-i18n/i18n-business/src/main/java/cn/stylefeng/roses/kernel/i18n/modular/factory/TranslationDictFactory.java b/kernel-d-i18n/i18n-business/src/main/java/cn/stylefeng/roses/kernel/i18n/modular/factory/TranslationDictFactory.java index c05a07352..cb390cc7a 100644 --- a/kernel-d-i18n/i18n-business/src/main/java/cn/stylefeng/roses/kernel/i18n/modular/factory/TranslationDictFactory.java +++ b/kernel-d-i18n/i18n-business/src/main/java/cn/stylefeng/roses/kernel/i18n/modular/factory/TranslationDictFactory.java @@ -1,6 +1,5 @@ package cn.stylefeng.roses.kernel.i18n.modular.factory; -import cn.stylefeng.roses.kernel.i18n.api.enums.TranslationEnum; import cn.stylefeng.roses.kernel.i18n.api.pojo.TranslationDict; import cn.stylefeng.roses.kernel.i18n.modular.entity.Translation; @@ -18,12 +17,12 @@ public class TranslationDictFactory { * @author fengshuonan * @date 2021/1/24 21:50 */ - public static TranslationDict createTranslationDict(TranslationEnum translationEnum, Translation translation) { + public static TranslationDict createTranslationDict(String translationLanguages, Translation translation) { TranslationDict translationDict = new TranslationDict(); translationDict.setTranName(translation.getTranName()); translationDict.setTranCode(translation.getTranCode()); translationDict.setTranValue(translation.getTranValue()); - translationDict.setTranslationLanguages(translationEnum); + translationDict.setTranslationLanguages(translationLanguages); return translationDict; } diff --git a/kernel-d-i18n/i18n-business/src/main/java/cn/stylefeng/roses/kernel/i18n/modular/service/impl/TranslationServiceImpl.java b/kernel-d-i18n/i18n-business/src/main/java/cn/stylefeng/roses/kernel/i18n/modular/service/impl/TranslationServiceImpl.java index c8a9f113f..6c8ddbcfc 100644 --- a/kernel-d-i18n/i18n-business/src/main/java/cn/stylefeng/roses/kernel/i18n/modular/service/impl/TranslationServiceImpl.java +++ b/kernel-d-i18n/i18n-business/src/main/java/cn/stylefeng/roses/kernel/i18n/modular/service/impl/TranslationServiceImpl.java @@ -6,7 +6,6 @@ import cn.stylefeng.roses.kernel.db.api.factory.PageFactory; import cn.stylefeng.roses.kernel.db.api.factory.PageResultFactory; import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult; import cn.stylefeng.roses.kernel.i18n.api.context.TranslationContext; -import cn.stylefeng.roses.kernel.i18n.api.enums.TranslationEnum; import cn.stylefeng.roses.kernel.i18n.api.exception.TranslationException; import cn.stylefeng.roses.kernel.i18n.api.exception.enums.TranslationExceptionEnum; import cn.stylefeng.roses.kernel.i18n.api.pojo.TranslationDict; @@ -58,8 +57,7 @@ public class TranslationServiceImpl extends ServiceImpl list = this.list(); ArrayList translationDictList = new ArrayList<>(); for (Translation translation : list) { - TranslationEnum translationEnum = TranslationEnum.getValue(translation.getTranLanguageCode()); - TranslationDict translationDict = TranslationDictFactory.createTranslationDict(translationEnum, translation); + TranslationDict translationDict = TranslationDictFactory.createTranslationDict(translation.getTranLanguageCode(), translation); translationDictList.add(translationDict); } return translationDictList; @@ -141,14 +138,12 @@ public class TranslationServiceImpl extends ServiceImpl - * key是语种,value是对应语种下的所有key value翻译值(第二个key是具体翻译项的编码) + * key是语种(字典),value是对应语种下的所有key value翻译值(第二个key是具体翻译项的编码) */ - private static final Map> TRAN_DICT_CONTAINER = new ConcurrentHashMap<>(); + private static final Map> TRAN_DICT_CONTAINER = new ConcurrentHashMap<>(); @Override public void init(List translationDict) { - - // 根据语种数量,创建多个语种的翻译Map - for (TranslationEnum type : TranslationEnum.values()) { - HashMap typeMap = new HashMap<>(); - TRAN_DICT_CONTAINER.put(type, typeMap); - } - - // 整理数据库中的字典 for (TranslationDict translationItem : translationDict) { - TranslationEnum translationLanguages = translationItem.getTranslationLanguages(); - TRAN_DICT_CONTAINER.get(translationLanguages).put(translationItem.getTranCode(), translationItem.getTranValue()); + this.addTranslationDict(translationItem); } - } @Override - public Map getTranslationDictByLanguage(TranslationEnum translationLanguages) { + public Map getTranslationDictByLanguage(String translationLanguages) { return TRAN_DICT_CONTAINER.get(translationLanguages); } @Override public void addTranslationDict(TranslationDict translationDict) { - TranslationEnum translationLanguages = translationDict.getTranslationLanguages(); + String translationLanguages = translationDict.getTranslationLanguages(); Map languageDict = TRAN_DICT_CONTAINER.get(translationLanguages); if (languageDict == null) { @@ -60,7 +49,7 @@ public class TranslationContainer implements TranslationApi { } @Override - public void deleteTranslationDict(TranslationEnum translationLanguages, String tranCode) { + public void deleteTranslationDict(String translationLanguages, String tranCode) { Map languageDict = TRAN_DICT_CONTAINER.get(translationLanguages); if (languageDict == null) {