## 一、功能描述 提供前后端在请求中得国别进行对应语言的渲染 将国际化语言持久化到mysql提供实时管理,缓存到redis 提供服务模块的快速加载 前端通过api加载完成页面国际化;后端通过redis 快速加载,通过字典注解、工具类完成列表查询内容国际化。 ## 二、代码运行截图: ![输入图片说明](/imgs/2024-02-26/JoOO6kJ0nyi07wY2.png) ## 三、使用方法 ### 1. 以组件嵌入当前工程 1. 引入在当前 springboot 工程引入 组件包 ``` xml 这里输入代码 net.rzdata rz-i18n 0.0.2-SNAPSHOT ``` 3. 组件包扫描包 ``` java @ComponentScan(basePackages = {"org.example","com.blueland"}) @MapperScan(basePackages = {"org.example","com.blueland.common.core.mapper"}) @EnableAutoConfiguration public class App { public static void main(String[] args) { SpringApplication.run(App.class, args); } ​ } ``` 4. 增加配置文件 application.yml ``` yml server: port: 8080 servlet: context-path: /crm-internation session: cookie: name: crm-internation ​ spring: datasource: type: com.alibaba.druid.pool.DruidDataSource druid: driver-class-name: com.mysql.cj.jdbc.Driver username: crm password: crm@123 url: jdbc:mysql://192.168.1.13:3308/crm_usm?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8 redis: database: 9 host: 192.168.1.169 password: '' tm: secretId: AKID4IXccMhHdjcJm0wqPjndHhspkbDbGeJz secretKey: aw3v5B3h8OPQO7j8JPGsFNHwMXTAcprf ​ logging: level: com.blueland.common.core: debug mybatis-flex: type-aliases-package: com.blueland.common.core.domain ​ ​ knife4j: enable: true openapi: title: 国际化接口文档 group: test1: group-name: 国际化 api-rule: package api-rule-resources: - com.blueland.common.core.controller ``` 5. 创建数据库表: ```sql CREATE TABLE `t_international` ( `id` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '唯一ID', `code` varchar(500) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '国际化编码', `name` varchar(500) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '名称', `lang` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '语言', `type` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '标识(前端:front,后端:back)', `tenant_id` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '租户号', `create_by` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '创建人', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '更新人', `update_time` datetime DEFAULT NULL COMMENT '更新时间', KEY `idx_code` (`code`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='国际化'; ``` 4-02-26/JJQNJxHzK0bfeCcd.png)请求接口: ![输入图片说明](/imgs/2024-02-26/cClv3SOuY1urVvZ3.png) #### 前端接入: 请求前端接口:**GET** /crm-internation/international/findLangPackage header: tenantid:MID 参数: type:front ![输入图片说明](/imgs/2024-02-26/MB4dmiMkF7TpxPCk.png) ![输入图片说明](/imgs/2024-02-26/cnSNuRM7QVSsljxS.png) #### 后端接入: 输入图片说明 请求前端接口:**GET** /crm-internation/international/findLangPackage header: tenantid:MID 参数: type:back ![输入图片说明](/imgs/2024-02-26/t5WiMJ7apx7JQy6B.png) ### 2. 以接口的方式调用 #### 前端接入: 参考方式1 前端接入 #### 后端接入: 请求前端接口:**GET** /crm-internation/international/findLangPackage header: tenantid:MID 参数: type:back ![输入图片说明](/imgs/2024-02-26/t5WiMJ7apx7JQy6B.png)