diff --git a/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/constants/RuleConstants.java b/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/constants/RuleConstants.java index f1212b3bf..d1202a0d8 100644 --- a/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/constants/RuleConstants.java +++ b/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/constants/RuleConstants.java @@ -49,8 +49,13 @@ public interface RuleConstants { String RULE_EXCEPTION_STEP_CODE = "01"; /** - * 一级公司的父级id + * 一级公司的父级id */ Long TREE_ROOT_ID = -1L; + /** + * 中文的多语言类型编码 + */ + String CHINES_TRAN_LANGUAGE_CODE = "chinese"; + } diff --git a/kernel-d-auth/auth-api/src/main/java/cn/stylefeng/roses/kernel/auth/api/pojo/login/LoginUser.java b/kernel-d-auth/auth-api/src/main/java/cn/stylefeng/roses/kernel/auth/api/pojo/login/LoginUser.java index 994252404..5b1e40027 100644 --- a/kernel-d-auth/auth-api/src/main/java/cn/stylefeng/roses/kernel/auth/api/pojo/login/LoginUser.java +++ b/kernel-d-auth/auth-api/src/main/java/cn/stylefeng/roses/kernel/auth/api/pojo/login/LoginUser.java @@ -5,6 +5,7 @@ import cn.hutool.core.util.StrUtil; import cn.stylefeng.roses.kernel.auth.api.enums.DataScopeTypeEnum; import cn.stylefeng.roses.kernel.auth.api.pojo.login.basic.SimpleRoleInfo; import cn.stylefeng.roses.kernel.auth.api.pojo.login.basic.SimpleUserInfo; +import cn.stylefeng.roses.kernel.rule.constants.RuleConstants; import lombok.Data; import java.io.Serializable; @@ -101,7 +102,7 @@ public class LoginUser implements Serializable { *

* 默认语种是中文 */ - private String tranLanguageCode = "chinese"; + private String tranLanguageCode = RuleConstants.CHINES_TRAN_LANGUAGE_CODE; public String getWsUrl() { AtomicReference returnUrl = new AtomicReference<>(StrUtil.EMPTY); diff --git a/kernel-d-i18n/i18n-api/src/main/java/cn/stylefeng/roses/kernel/i18n/api/constants/TranslationConstants.java b/kernel-d-i18n/i18n-api/src/main/java/cn/stylefeng/roses/kernel/i18n/api/constants/TranslationConstants.java index f551789e6..52197d0e8 100644 --- a/kernel-d-i18n/i18n-api/src/main/java/cn/stylefeng/roses/kernel/i18n/api/constants/TranslationConstants.java +++ b/kernel-d-i18n/i18n-api/src/main/java/cn/stylefeng/roses/kernel/i18n/api/constants/TranslationConstants.java @@ -18,4 +18,9 @@ public interface TranslationConstants { */ String I18N_EXCEPTION_STEP_CODE = "25"; + /** + * 菜单类型的tranCode前缀 + */ + String TRAN_CODE_MENU_PREFIX = "MENU_"; + } diff --git a/kernel-s-system/system-business-menu/pom.xml b/kernel-s-system/system-business-menu/pom.xml index 50b553d68..a0ee01919 100644 --- a/kernel-s-system/system-business-menu/pom.xml +++ b/kernel-s-system/system-business-menu/pom.xml @@ -24,6 +24,14 @@ 1.0.0 + + + + cn.stylefeng.roses + i18n-api + 1.0.0 + + diff --git a/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/menu/modular/factory/LayuiMenusFactory.java b/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/menu/modular/factory/LayuiMenusFactory.java index b1cb060df..c9a1920ba 100644 --- a/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/menu/modular/factory/LayuiMenusFactory.java +++ b/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/menu/modular/factory/LayuiMenusFactory.java @@ -1,18 +1,20 @@ package cn.stylefeng.roses.kernel.menu.modular.factory; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.StrUtil; import cn.hutool.extra.spring.SpringUtil; +import cn.stylefeng.roses.kernel.auth.api.context.LoginContext; +import cn.stylefeng.roses.kernel.i18n.api.constants.TranslationConstants; +import cn.stylefeng.roses.kernel.i18n.api.context.TranslationContext; import cn.stylefeng.roses.kernel.menu.modular.entity.SysMenu; +import cn.stylefeng.roses.kernel.rule.constants.RuleConstants; import cn.stylefeng.roses.kernel.rule.factory.DefaultTreeBuildFactory; import cn.stylefeng.roses.kernel.rule.util.HttpServletUtil; import cn.stylefeng.roses.kernel.system.AppServiceApi; import cn.stylefeng.roses.kernel.system.pojo.menu.layui.LayuiAppIndexMenus; import cn.stylefeng.roses.kernel.system.pojo.menu.layui.LayuiIndexMenuTreeNode; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; +import java.util.*; import java.util.stream.Collectors; /** @@ -59,6 +61,16 @@ public class LayuiMenusFactory { // 每个节点的url要加上context-path layuiIndexMenuTreeNode.setLayuiPath(contextPath + appMenu.getLayuiPath()); + // 如果当前用户时非中文状态,则翻译菜单 + String tranLanguageCode = LoginContext.me().getLoginUser().getTranLanguageCode(); + if (!RuleConstants.CHINES_TRAN_LANGUAGE_CODE.equals(tranLanguageCode)) { + Map tranDictBook = TranslationContext.me().getTranslationDictByLanguage(tranLanguageCode); + String translatedName = tranDictBook.get(TranslationConstants.TRAN_CODE_MENU_PREFIX + appMenu.getMenuCode().toUpperCase()); + if (StrUtil.isNotBlank(translatedName)) { + layuiIndexMenuTreeNode.setMenuName(translatedName); + } + } + layuiIndexMenuTreeNodes.add(layuiIndexMenuTreeNode); }