124 lines
4.5 KiB
Markdown
124 lines
4.5 KiB
Markdown
## 一、功能描述
|
||
|
||
提供前后端在请求中得国别进行对应语言的渲染 将国际化语言持久化到mysql提供实时管理,缓存到redis 提供服务模块的快速加载 前端通过api加载完成页面国际化;后端通过redis 快速加载,通过字典注解、工具类完成列表查询内容国际化。
|
||
## 二、代码运行截图:
|
||

|
||
## 三、使用方法
|
||
### 1. 以组件嵌入当前工程
|
||
1. 引入在当前 springboot 工程引入 组件包
|
||
``` xml
|
||
|
||
这里输入代码 <dependency>
|
||
<groupId>net.rzdata</groupId>
|
||
<artifactId>rz-i18n</artifactId>
|
||
<version>0.0.2-SNAPSHOT</version>
|
||
</dependency>
|
||
```
|
||
|
||
|
||
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)请求接口:
|
||

|
||
#### 前端接入:
|
||
|
||
请求前端接口:**GET** /crm-internation/international/findLangPackage header: tenantid:MID 参数: type:front
|
||

|
||

|
||
#### 后端接入:
|
||
输入图片说明
|
||
``` java
|
||
MessageSendUtil.send(receiveStaffCode, I18nUtils.getTitle(ProductI18nConstant.PRODUCT_GIFT_SEND_NOTICE),
|
||
CommonConstant.MESSAGE_TYPE_QYWX, I18nUtils.getTitleFormat(ProductI18nConstant.PRODUCT_GIFT_AUDIT_MSG, stockingApply.getCreateName()),
|
||
CommonConstant.MESSAGE_CREATEBY_CRM, UserUtils.getTenantId(), stockingApply.getApplyCode());
|
||
```
|
||
请求前端接口:**GET** /crm-internation/international/findLangPackage header: tenantid:MID 参数: type:back
|
||

|
||
|
||
### 2. 以接口的方式调用
|
||
#### 前端接入:
|
||
参考方式1 前端接入
|
||
#### 后端接入:
|
||
请求前端接口:**GET** /crm-internation/international/findLangPackage header: tenantid:MID 参数: type:back
|
||

|
||
|
||
<!--stackedit_data:
|
||
eyJoaXN0b3J5IjpbMTMwODE5NTkyOSwtMTIzOTA4NjkwOCwtNT
|
||
AzNjMyODc4LDE1ODM5MjA5NzUsODA3OTMzNzA1LDEyNTQ4NDUz
|
||
ODIsLTUzNTU4ODEzNiwxOTgwNjM1OTkxLDEzNDEyMzA5NTRdfQ
|
||
==
|
||
--> |