‘liusuyi’
2023-11-20 2dad62bb75aa57948f9b5b2d4bc88625fa7def0f
后端双语处理
已修改7个文件
324 ■■■■■ 文件已修改
ruoyi-admin/src/main/resources/i18n/messages.properties 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/resources/i18n/messages_en_US.properties 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/resources/i18n/messages_zh_CN.properties 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/utils/MessageUtils.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/resources/i18n/messages.properties
@@ -38,4 +38,99 @@
##\u7EDF\u4E00\u8FD4\u56DE
operation.failed=\u64CD\u4F5C\u5931\u8D25
operation.success=\u64CD\u4F5C\u6210\u529F
operation.success=\u64CD\u4F5C\u6210\u529F
##\u83DC\u5355
menu.system=\u7CFB\u7EDF\u7BA1\u7406
menu.monitor=\u7CFB\u7EDF\u76D1\u63A7
menu.tool=\u7CFB\u7EDF\u5DE5\u5177
menu.user=\u7528\u6237\u7BA1\u7406
menu.role=\u89D2\u8272\u7BA1\u7406
menu.menu=\u83DC\u5355\u7BA1\u7406
menu.dept=\u90E8\u95E8\u7BA1\u7406
menu.post=\u5C97\u4F4D\u7BA1\u7406
menu.dict=\u5B57\u5178\u7BA1\u7406
menu.config=\u53C2\u6570\u8BBE\u7F6E
menu.notice=\u901A\u77E5\u516C\u544A
menu.log=\u65E5\u5FD7\u7BA1\u7406
menu.online=\u5728\u7EBF\u7528\u6237
menu.job=\u5B9A\u65F6\u4EFB\u52A1
menu.druid=\u6570\u636E\u76D1\u63A7
menu.server=\u670D\u52A1\u76D1\u63A7
menu.cache=\u7F13\u5B58\u76D1\u63A7
menu.cacheList=\u7F13\u5B58\u5217\u8868
menu.build=\u8868\u5355\u6784\u5EFA
menu.gen=\u4EE3\u7801\u751F\u6210
menu.operlog=\u64CD\u4F5C\u65E5\u5FD7
menu.logininfor=\u767B\u5F55\u65E5\u5FD7
menu.management3d=\u4E09\u7EF4\u7BA1\u7406
menu.device=\u8BBE\u5907\u7BA1\u7406
menu.camera=\u89C6\u9891\u8BBE\u5907
menu.radar=\u96F7\u8FBE\u8BBE\u5907
menu.external=\u5916\u8054\u8BBE\u5907
menu.videoFusion=\u89C6\u9891\u878D\u5408
menu.tower=\u5854\u7BA1\u7406
menu.alarmpoints=\u5174\u8DA3\u70B9\u7BA1\u7406
menu.elecFence=\u7535\u5B50\u56F4\u680F
menu.tube=\u7BA1\u7EBF\u7BA1\u7406
menu.policeStation=\u8B66\u52A1\u5BA4\u7BA1\u7406
menu.peopleAndCar=\u4EBA\u5458\u53CA\u8F66\u8F86\u7BA1\u7406
menu.inspect=\u89C6\u9891\u5DE1\u68C0
menu.inspectTask=\u89C6\u9891\u5DE1\u68C0\u4EFB\u52A1
menu.inspectRecord=\u89C6\u9891\u5DE1\u68C0\u8BB0\u5F55
menu.vtdu=\u6D41\u5A92\u4F53\u7BA1\u7406
menu.vtduConfig=\u914D\u7F6E
menu.vtduPullStream=\u62C9\u6D41
menu.vtduPushStream=\u63A8\u6D41
menu.test=\u6D4B\u8BD5\u9875
menu.sdkTest=sdk\u6D4B\u8BD5\u9875
menu.vtduTest=\u6D41\u5A92\u4F53\u6D4B\u8BD5\u9875
menu.mqQueue=mq\u961F\u5217
menu.minio=minio\u5B58\u50A8
menu.minioEvent=\u5B58\u50A8\u4E8B\u4EF6
menu.sysApi=\u7CFB\u7EDF\u63A5\u53E3
menu.tiles3d=\u4E09\u7EF4\u5B9E\u666F
menu.userQuery=\u7528\u6237\u67E5\u8BE2
menu.userAdd=\u7528\u6237\u65B0\u589E
menu.userEdit=\u7528\u6237\u4FEE\u6539
menu.userRemove=\u7528\u6237\u5220\u9664
menu.userExport=\u7528\u6237\u5BFC\u51FA
menu.userImport=\u7528\u6237\u5BFC\u5165
menu.userResetPwd=\u91CD\u7F6E\u5BC6\u7801
menu.roleQuery=\u89D2\u8272\u67E5\u8BE2
menu.roleAdd=\u89D2\u8272\u65B0\u589E
menu.roleEdit=\u89D2\u8272\u4FEE\u6539
menu.roleRemove=\u89D2\u8272\u5220\u9664
menu.roleExport=\u89D2\u8272\u5BFC\u51FA
menu.menuQuery=\u83DC\u5355\u67E5\u8BE2
menu.menuAdd=\u83DC\u5355\u65B0\u589E
menu.menuEdit=\u83DC\u5355\u4FEE\u6539
menu.menuRemove=\u83DC\u5355\u5220\u9664
menu.deptQuery=\u90E8\u95E8\u67E5\u8BE2
menu.deptAdd=\u90E8\u95E8\u65B0\u589E
menu.deptEdit=\u90E8\u95E8\u4FEE\u6539
menu.deptRemove=\u90E8\u95E8\u5220\u9664
menu.postQuery=\u5C97\u4F4D\u67E5\u8BE2
menu.postAdd=\u5C97\u4F4D\u65B0\u589E
menu.postEdit=\u5C97\u4F4D\u4FEE\u6539
menu.postRemove=\u5C97\u4F4D\u5220\u9664
menu.postExport=\u5C97\u4F4D\u5BFC\u51FA
menu.dictQuery=\u5B57\u5178\u67E5\u8BE2
menu.dictAdd=\u5B57\u5178\u65B0\u589E
menu.dictEdit=\u5B57\u5178\u4FEE\u6539
menu.dictRemove=\u5B57\u5178\u5220\u9664
menu.dictExport=\u5B57\u5178\u5BFC\u51FA
menu.configQuery=\u53C2\u6570\u67E5\u8BE2
menu.configAdd=\u53C2\u6570\u65B0\u589E
menu.configEdit=\u53C2\u6570\u4FEE\u6539
menu.configRemove=\u53C2\u6570\u5220\u9664
menu.configExport=\u53C2\u6570\u5BFC\u51FA
ruoyi-admin/src/main/resources/i18n/messages_en_US.properties
@@ -40,3 +40,94 @@
operation.failed=Operation failed
operation.success=Operation successful
##\u83DC\u5355
menu.system=system
menu.monitor=monitor
menu.tool=tool
menu.user=user
menu.role=role
menu.menu=menu
menu.dept=dept
menu.post=post
menu.dict=dict
menu.config=config
menu.notice=notice
menu.log=log
menu.online=online
menu.job=job
menu.druid=druid
menu.server=server
menu.cache=cache
menu.cacheList=cacheList
menu.build=build
menu.gen=gen
menu.operlog=operlog
menu.logininfor=logininfor
menu.management3d=management3d
menu.device=device
menu.camera=camera
menu.radar=radar
menu.external=external
menu.videoFusion=videoFusion
menu.tower=tower
menu.alarmpoints=alarmpoints
menu.elecFence=elecFence
menu.tube=tube
menu.policeStation=policeStation
menu.peopleAndCar=peopleAndCar
menu.inspect=inspect
menu.inspectTask=inspectTask
menu.inspectRecord=inspectRecord
menu.vtdu=vtdu
menu.vtduConfig=vtduConfig
menu.vtduPullStream=pullStream
menu.vtduPushStream=pushStream
menu.test=test
menu.sdkTest=sdkTest
menu.vtduTest=vtduTest
menu.mqQueue=mqQueue
menu.minio=minio
menu.minioEvent=minioEvent
menu.sysApi=sysApi
menu.tiles3d=tiles3d
menu.userQuery=userQuery
menu.userAdd=userAdd
menu.userEdit=userEdit
menu.userRemove=userRemove
menu.userExport=userExport
menu.userImport=userImport
menu.userResetPwd=userResetPwd
menu.roleQuery=roleQuery
menu.roleAdd=roleAdd
menu.roleEdit=roleEdit
menu.roleRemove=roleRemove
menu.roleExport=roleExport
menu.menuQuery=menuQuery
menu.menuAdd=menuAdd
menu.menuEdit=menuEdit
menu.menuRemove=menuRemove
menu.deptQuery=deptQuery
menu.deptAdd=deptAdd
menu.deptEdit=deptEdit
menu.deptRemove=deptRemove
menu.postQuery=postQuery
menu.postAdd=postAdd
menu.postEdit=postEdit
menu.postRemove=postRemove
menu.postExport=postExport
menu.dictQuery=dictQuery
menu.dictAdd=dictAdd
menu.dictEdit=dictEdit
menu.dictRemove=dictRemove
menu.dictExport=dictExport
menu.configQuery=configQuery
menu.configAdd=configAdd
menu.configEdit=configEdit
menu.configRemove=configRemove
menu.configExport=configExport
ruoyi-admin/src/main/resources/i18n/messages_zh_CN.properties
@@ -39,3 +39,97 @@
##\u7EDF\u4E00\u8FD4\u56DE
operation.failed=\u64CD\u4F5C\u5931\u8D25
operation.success=\u64CD\u4F5C\u6210\u529F
##\u83DC\u5355
menu.system=\u7CFB\u7EDF\u7BA1\u7406
menu.monitor=\u7CFB\u7EDF\u76D1\u63A7
menu.tool=\u7CFB\u7EDF\u5DE5\u5177
menu.user=\u7528\u6237\u7BA1\u7406
menu.role=\u89D2\u8272\u7BA1\u7406
menu.menu=\u83DC\u5355\u7BA1\u7406
menu.dept=\u90E8\u95E8\u7BA1\u7406
menu.post=\u5C97\u4F4D\u7BA1\u7406
menu.dict=\u5B57\u5178\u7BA1\u7406
menu.config=\u53C2\u6570\u8BBE\u7F6E
menu.notice=\u901A\u77E5\u516C\u544A
menu.log=\u65E5\u5FD7\u7BA1\u7406
menu.online=\u5728\u7EBF\u7528\u6237
menu.job=\u5B9A\u65F6\u4EFB\u52A1
menu.druid=\u6570\u636E\u76D1\u63A7
menu.server=\u670D\u52A1\u76D1\u63A7
menu.cache=\u7F13\u5B58\u76D1\u63A7
menu.cacheList=\u7F13\u5B58\u5217\u8868
menu.build=\u8868\u5355\u6784\u5EFA
menu.gen=\u4EE3\u7801\u751F\u6210
menu.operlog=\u64CD\u4F5C\u65E5\u5FD7
menu.logininfor=\u767B\u5F55\u65E5\u5FD7
menu.management3d=\u4E09\u7EF4\u7BA1\u7406
menu.device=\u8BBE\u5907\u7BA1\u7406
menu.camera=\u89C6\u9891\u8BBE\u5907
menu.radar=\u96F7\u8FBE\u8BBE\u5907
menu.external=\u5916\u8054\u8BBE\u5907
menu.videoFusion=\u89C6\u9891\u878D\u5408
menu.tower=\u5854\u7BA1\u7406
menu.alarmpoints=\u5174\u8DA3\u70B9\u7BA1\u7406
menu.elecFence=\u7535\u5B50\u56F4\u680F
menu.tube=\u7BA1\u7EBF\u7BA1\u7406
menu.policeStation=\u8B66\u52A1\u5BA4\u7BA1\u7406
menu.peopleAndCar=\u4EBA\u5458\u53CA\u8F66\u8F86\u7BA1\u7406
menu.inspect=\u89C6\u9891\u5DE1\u68C0
menu.inspectTask=\u89C6\u9891\u5DE1\u68C0\u4EFB\u52A1
menu.inspectRecord=\u89C6\u9891\u5DE1\u68C0\u8BB0\u5F55
menu.vtdu=\u6D41\u5A92\u4F53\u7BA1\u7406
menu.vtduConfig=\u914D\u7F6E
menu.vtduPullStream=\u62C9\u6D41
menu.vtduPushStream=\u63A8\u6D41
menu.test=\u6D4B\u8BD5\u9875
menu.sdkTest=sdk\u6D4B\u8BD5\u9875
menu.vtduTest=\u6D41\u5A92\u4F53\u6D4B\u8BD5\u9875
menu.mqQueue=mq\u961F\u5217
menu.minio=minio\u5B58\u50A8
menu.minioEvent=\u5B58\u50A8\u4E8B\u4EF6
menu.sysApi=\u7CFB\u7EDF\u63A5\u53E3
menu.tiles3d=\u4E09\u7EF4\u5B9E\u666F
menu.userQuery=\u7528\u6237\u67E5\u8BE2
menu.userAdd=\u7528\u6237\u65B0\u589E
menu.userEdit=\u7528\u6237\u4FEE\u6539
menu.userRemove=\u7528\u6237\u5220\u9664
menu.userExport=\u7528\u6237\u5BFC\u51FA
menu.userImport=\u7528\u6237\u5BFC\u5165
menu.userResetPwd=\u91CD\u7F6E\u5BC6\u7801
menu.roleQuery=\u89D2\u8272\u67E5\u8BE2
menu.roleAdd=\u89D2\u8272\u65B0\u589E
menu.roleEdit=\u89D2\u8272\u4FEE\u6539
menu.roleRemove=\u89D2\u8272\u5220\u9664
menu.roleExport=\u89D2\u8272\u5BFC\u51FA
menu.menuQuery=\u83DC\u5355\u67E5\u8BE2
menu.menuAdd=\u83DC\u5355\u65B0\u589E
menu.menuEdit=\u83DC\u5355\u4FEE\u6539
menu.menuRemove=\u83DC\u5355\u5220\u9664
menu.deptQuery=\u90E8\u95E8\u67E5\u8BE2
menu.deptAdd=\u90E8\u95E8\u65B0\u589E
menu.deptEdit=\u90E8\u95E8\u4FEE\u6539
menu.deptRemove=\u90E8\u95E8\u5220\u9664
menu.postQuery=\u5C97\u4F4D\u67E5\u8BE2
menu.postAdd=\u5C97\u4F4D\u65B0\u589E
menu.postEdit=\u5C97\u4F4D\u4FEE\u6539
menu.postRemove=\u5C97\u4F4D\u5220\u9664
menu.postExport=\u5C97\u4F4D\u5BFC\u51FA
menu.dictQuery=\u5B57\u5178\u67E5\u8BE2
menu.dictAdd=\u5B57\u5178\u65B0\u589E
menu.dictEdit=\u5B57\u5178\u4FEE\u6539
menu.dictRemove=\u5B57\u5178\u5220\u9664
menu.dictExport=\u5B57\u5178\u5BFC\u51FA
menu.configQuery=\u53C2\u6570\u67E5\u8BE2
menu.configAdd=\u53C2\u6570\u65B0\u589E
menu.configEdit=\u53C2\u6570\u4FEE\u6539
menu.configRemove=\u53C2\u6570\u5220\u9664
menu.configExport=\u53C2\u6570\u5BFC\u51FA
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java
@@ -24,6 +24,9 @@
    /** 菜单名称 */
    private String menuName;
    /** 菜单英文名称 */
    private String menuNameEnglish;
    /** 父菜单名称 */
    private String parentName;
@@ -83,6 +86,14 @@
        return menuName;
    }
    public String getMenuNameEnglish() {
        return menuNameEnglish;
    }
    public void setMenuNameEnglish(String menuNameEnglish) {
        this.menuNameEnglish = menuNameEnglish;
    }
    public void setMenuName(String menuName)
    {
        this.menuName = menuName;
ruoyi-common/src/main/java/com/ruoyi/common/utils/MessageUtils.java
@@ -19,8 +19,15 @@
     * @return 获取国际化翻译值
     */
    public static String message(String code, Object... args)
    {
        MessageSource messageSource = SpringUtils.getBean(MessageSource.class);
        return messageSource.getMessage(code, args, LocaleContextHolder.getLocale());
    { String message="";
        try {
            MessageSource messageSource = SpringUtils.getBean(MessageSource.class);
            message = messageSource.getMessage(code, args, LocaleContextHolder.getLocale());
        }
        catch(Exception ex)
        {
        }
        return message;
    }
}
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java
@@ -8,6 +8,8 @@
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
import com.ruoyi.common.utils.MessageUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.common.constant.Constants;
@@ -461,7 +463,11 @@
        List<SysMenu> returnList = new ArrayList<SysMenu>();
        for (Iterator<SysMenu> iterator = list.iterator(); iterator.hasNext();)
        {
            // 国际化转换
            SysMenu t = (SysMenu) iterator.next();
            String message = MessageUtils.message("menu." + t.getMenuNameEnglish());
            if(StringUtils.isNotEmpty(message))
            {t.setMenuName(message);}
            // 一、根据传入的某个父节点ID,遍历该父节点的所有子节点
            if (t.getParentId() == parentId)
            {
ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml
@@ -7,6 +7,7 @@
    <resultMap type="SysMenu" id="SysMenuResult">
        <id     property="menuId"         column="menu_id"        />
        <result property="menuName"       column="menu_name"      />
        <result property="menuNameEnglish"       column="menu_name_english"      />
        <result property="parentName"     column="parent_name"    />
        <result property="parentId"       column="parent_id"      />
        <result property="orderNum"       column="order_num"      />
@@ -28,7 +29,7 @@
    </resultMap>
    <sql id="selectMenuVo">
        select menu_id, menu_name, parent_id, order_num, path, component, query, is_frame, is_cache, menu_type, visible, status, coalesce(perms,'') as perms, icon, create_time
        select menu_id, menu_name,menu_name_english, parent_id, order_num, path, component, query, is_frame, is_cache, menu_type, visible, status, coalesce(perms,'') as perms, icon, create_time
        from sys_menu
    </sql>
    
@@ -49,13 +50,13 @@
    </select>
    
    <select id="selectMenuTreeAll" resultMap="SysMenuResult">
        select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, m.query, m.visible, m.status, coalesce(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time
        select distinct m.menu_id, m.parent_id, m.menu_name,m.menu_name_english, m.path, m.component, m.query, m.visible, m.status, coalesce(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time
        from sys_menu m where m.menu_type in ('M', 'C') and m.status = '0'
        order by m.parent_id, m.order_num
    </select>
    
    <select id="selectMenuListByUserId" parameterType="SysMenu" resultMap="SysMenuResult">
        select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, m.query, m.visible, m.status, coalesce(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time
        select distinct m.menu_id, m.parent_id, m.menu_name,m.menu_name_english, m.path, m.component, m.query, m.visible, m.status, coalesce(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time
        from sys_menu m
        left join sys_role_menu rm on m.menu_id = rm.menu_id
        left join sys_user_role ur on rm.role_id = ur.role_id
@@ -74,7 +75,7 @@
    </select>
    
    <select id="selectMenuTreeByUserId" parameterType="String" resultMap="SysMenuResult">
        select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, m.query, m.visible, m.status, coalesce(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time
        select distinct m.menu_id, m.parent_id, m.menu_name,m.menu_name_english, m.path, m.component, m.query, m.visible, m.status, coalesce(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time
        from sys_menu m
             left join sys_role_menu rm on m.menu_id = rm.menu_id
             left join sys_user_role ur on rm.role_id = ur.role_id
@@ -136,6 +137,7 @@
        update sys_menu
        <set>
            <if test="menuName != null and menuName != ''">menu_name = #{menuName},</if>
            <if test="menuNameEnglish != null and menuNameEnglish != ''">menu_name_english = #{menuNameEnglish},</if>
            <if test="parentId != null">parent_id = #{parentId},</if>
            <if test="orderNum != null">order_num = #{orderNum},</if>
            <if test="path != null and path != ''">path = #{path},</if>
@@ -160,6 +162,7 @@
        <if test="menuId != null and menuId != 0">menu_id,</if>
        <if test="parentId != null and parentId != 0">parent_id,</if>
        <if test="menuName != null and menuName != ''">menu_name,</if>
        <if test="menuNameEnglish != null and menuNameEnglish != ''">menu_name_english,</if>
        <if test="orderNum != null">order_num,</if>
        <if test="path != null and path != ''">path,</if>
        <if test="component != null and component != ''">component,</if>
@@ -178,6 +181,7 @@
        <if test="menuId != null and menuId != 0">#{menuId},</if>
        <if test="parentId != null and parentId != 0">#{parentId},</if>
        <if test="menuName != null and menuName != ''">#{menuName},</if>
        <if test="menuNameEnglish != null and menuNameEnglish != ''">#{menuNameEnglish},</if>
        <if test="orderNum != null">#{orderNum},</if>
        <if test="path != null and path != ''">#{path},</if>
        <if test="component != null and component != ''">#{component},</if>