惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Hacker News - Newest:
Hacker News - Newest: "LLM"
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
L
LINUX DO - 最新话题
Cloudbric
Cloudbric
N
News and Events Feed by Topic
S
Secure Thoughts
Vercel News
Vercel News
S
Security @ Cisco Blogs
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
S
SegmentFault 最新的问题
Hacker News: Ask HN
Hacker News: Ask HN
博客园 - 聂微东
WordPress大学
WordPress大学
Google Online Security Blog
Google Online Security Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Google DeepMind News
Google DeepMind News
PCI Perspectives
PCI Perspectives
雷峰网
雷峰网
Hugging Face - Blog
Hugging Face - Blog
Blog — PlanetScale
Blog — PlanetScale
Apple Machine Learning Research
Apple Machine Learning Research
C
CXSECURITY Database RSS Feed - CXSecurity.com
T
Threat Research - Cisco Blogs
博客园 - 司徒正美
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
A
About on SuperTechFans
P
Proofpoint News Feed
大猫的无限游戏
大猫的无限游戏
V
V2EX
I
Intezer
H
Hacker News: Front Page
www.infosecurity-magazine.com
www.infosecurity-magazine.com
L
Lohrmann on Cybersecurity
F
Fortinet All Blogs
Schneier on Security
Schneier on Security
博客园 - 叶小钗
The Cloudflare Blog
月光博客
月光博客
W
WeLiveSecurity
T
Tenable Blog
P
Proofpoint News Feed
aimingoo的专栏
aimingoo的专栏
Help Net Security
Help Net Security
L
LangChain Blog
C
CERT Recently Published Vulnerability Notes
T
The Exploit Database - CXSecurity.com
美团技术团队
B
Blog

博客园 - 升鲜宝生鲜供应链系统

升鲜宝生鲜配送供应链系统 vs_车辆管理模块开发文档 PRD(一)---升鲜宝生鲜配送供应链管理系统 升鲜宝供应链管理系统Spring Boot 4.0 项目源代码结构及数据库字典模块命名与表字段命名开发约束规范(一)---升鲜宝生鲜配送供应链管理系统 升鲜宝 B2B 订货商城线性 --- |----- 原型图(一)---升鲜宝生鲜配送供应链管理系统源代码服务 升鲜宝云商品库功能设计与数据库表结构详细文档(一)---升鲜宝生鲜配送供应链管理系统源代码服务 升鲜宝PAD生产加工系统:销售单客户预订明细分割增强版 猪肉分割加工轻量版 · PAD端操作效果图与开发说明(二)---升鲜宝生鲜配送供应链管理系统源代码服务 升鲜宝PAD生产加工系统 猪肉分割加工轻量版功能模块方案与页面效果图(一)---升鲜宝生鲜配送供应链管理系统 升鲜宝B2B订货商城后端开发文档(一)---升鲜宝生鲜配送供应链管理系统 【研究与学习】快驴商品模块功能分析与数据库表结构设计文档(一)---升鲜宝生鲜配送供应链管理系统源代码服务(标准版、专业版) 【研究与学习】悦厚系统商品模块功能设计与数据字典文档(一)---升鲜宝生鲜配送供应链管理系统 【研究与学习】易订货商品模块设计分析文档字段级数据字典 + 表关系 + 单位换算 + 价格/库存/促销链路(一)---升鲜宝生鲜配送供应链管理系统 【研究与学习收银系统】(一)菜某秘后台 SaaS 租户运营控制、费用管理系统数据字典及功能设计方案详细文档 升鲜宝云仓供应链管理系统功能详细设计方案 PRD(二)---升鲜宝生鲜配送供应链管理系统 升鲜宝云仓供应链管理系统方案(一)---升鲜宝供应链管理系统 统一字段权限组件功能设计方案(一)---升鲜宝生鲜配送供应链管理系统 升鲜宝供应链管理系统生成图片、生成 PDF、生成分享码通用组件功能设计文档(一)---升鲜宝生鲜配送供应链管理系统源代码(Spring Boot Vue3 Uniapp ) 升鲜宝后端 API 与手机端 API 开发说明(一)---升鲜宝生鲜配送供应链管理系统重构版 「我的中心」设置模块 功能设计与开发文档(一)--- 升鲜宝生鲜配送供应链管理系统重构说明 通用明细列表控件设计与开发文档(一)---升鲜宝生鲜配送供应链管理软件重构方案 管理类软件通用高级查询组件(一)---升鲜宝生鲜配送供应链管理软件重构方案 升鲜宝商品模块重构版接口清单 (二)+ 页面原型字段设计 升鲜宝供应链商品模块设计(一) 数据字典及功能开发详细说明 升鲜宝日志功能模块设计说明(一)---生鲜配送供应链管理系统源代码 升鲜宝多语言数据库设计演进对比文档 升鲜宝通用自定义列导入导出功能的通用设计方案(一)---升鲜宝生鲜配送供应链管理系统源代码 升鲜宝高性能多语言解决方案(二)---升鲜宝生鲜配送供应链管理系统 升鲜宝高性能多语言解决方案(一)---升鲜宝生鲜配送供应链管理系统 企业微信CRM模块功能设计(三)—— 升鲜宝生鲜配送供应链管理系统源代码 企业微信CRM模块功能设计(二)—— 升鲜宝生鲜配送供应链管理系统源代码 企业微信CRM模块功能设计(一)—— 升鲜宝生鲜配送供应链管理系统源代码 升鲜宝社区团购商城软件设计功能文档(含完整功能设计、业务流程图、数据字典、DDL 口径与后台权限设计)--生鲜配送供应链管理系统源码 升鲜宝社区团购商城 MySQL 8.0 DDL 生鲜配送供应链管理系统源代码之升鲜宝社区团购商城小程序(一) 《IntelliJ + Claude Code + Gemini + ChatGPT 实战配置手册(升鲜宝版)》 升鲜宝供应链管理系统B端客户价格域的表结构设计及相关说明 PMS商品域完整 DDL 脚本 及 系统功能设计规格书,这套底层模型能够完美支撑生鲜行业特有的“多单位销售”、“双单位称重核算”以及“非标品临采”等复杂场景。 升鲜宝 生鲜配送供应链管理系统 运营管理系统 SaaS Admin:SYS & SAAS 常用 CRUD SQL 示例(用于对账/排查/脚本) “多租户(tenant)+ 部门数据权限(dept)双层隔离” 的升鲜宝最终设计(单体 Spring Boot 直接可落地,未来拆微服务也不改核心规则)。 升鲜宝 生鲜配送供应链管理系统 SaaS Admin 权限体系完整架构图 升鲜宝 SaaS 平台后台数据库结构(含菜单/权限)最终版(MySQL) 升鲜宝 生鲜配送供应链管理系统 SaaS 平台后台功能模块规划 升鲜宝 生鲜配送 供应链管理系统 SaaS 自动计费引擎核心接口清单 升鲜宝 供应链管理系统 SaaS 自动计费引擎详细算法说明书(Algorithm Spec) 升鲜宝 SaaS 租户订阅系统数据库设计与功能说明
升鲜宝静态文本国际化完整 SQL 说明
升鲜宝生鲜供应链系统 · 2026-04-19 · via 博客园 - 升鲜宝生鲜供应链系统

升鲜宝静态文本国际化完整 SQL 说明

方案定案

升鲜宝静态文本国际化采用“资源包表 + 资源定义表 + 翻译明细表 + 发布表”的四表架构,按平台、模块、页面组织静态文本资源;运行时统一通过页面资源包加载与缓存分发,不再使用旧式单表 key-value 实时查询模型。

一、四张表的职责

1. sys_i18n_bundle

资源包表。
一个页面或一个场景对应一个 bundle,例如:

  • admin.crm.customer_form
  • customer.oms.order_submit
  • pda.wms.stockin_scan

2. sys_i18n_resource

资源定义表。
定义一个 bundle 里有哪些静态文本项,例如:

  • admin.crm.customer_form.label.customer_name
  • admin.crm.customer_form.placeholder.phone

3. sys_i18n_resource_text

翻译明细表。
保存某个资源在某种语言下的显示文本,例如:

  • resource_id=xxx + language_code=en_US -> Customer Name

4. sys_i18n_bundle_publish

发布表。
用于记录某个 bundle 在某个语言下的发布版本,方便 Redis / Caffeine 缓存版本失效。

二、推荐资源编码规范

统一建议:

{platform}.{module}.{page}.{componentType}.{componentName}

示例:

  • admin.crm.customer_form.label.customer_name
  • admin.crm.customer_form.placeholder.phone
  • customer.oms.order_submit.button.submit
  • pda.wms.stockin_scan.placeholder.barcode

三、运行时读取方式

运行时不要逐条查单个 key,统一按 bundle 读取。

页面初始化时

按:

  • platformCode
  • moduleCode
  • pageCode
  • languageCode

一次性加载该页面的全部静态文本。

缓存 Key 建议

Redis:

i18n:bundle:{bundleCode}:{languageCode}:v{publishVersion}

例如:

  • i18n:bundle:admin.crm.customer_form:zh_CN:v12
  • i18n:bundle:pda.wms.stockin_scan:en_US:v7

值建议直接缓存为 JSON Map:

{
  "admin.crm.customer_form.label.customer_name": "客户名称",
  "admin.crm.customer_form.placeholder.phone": "请输入手机号",
  "admin.crm.customer_form.button.save": "保存"
}

四、回退规则

统一建议放在服务层做,不在 SQL 里循环查:

  1. 当前语言翻译
  2. 默认语言翻译
  3. default_text
  4. resource_code

五、适用范围

本方案只适用于:

  • 页面标题
  • 表单标签
  • 列头
  • placeholder
  • tooltip
  • tab 标题
  • dialog 标题
  • 空状态文案
  • 固定说明文案
  • 非权限型普通按钮文案

不用于:

  • 菜单 / RBAC 按钮名称
  • 消息模板
  • 业务主数据
  • 动态业务字段翻译

六、SQL 文件内容

附带的 SQL 已经包含:

  • 四张表完整 DDL
  • 外键与索引
  • 一组示例 bundle / resource / text / publish 初始化数据
  • 常用查询 SQL 注释示例

可直接作为研发初版落库脚本。

`-- =========================================================
-- 升鲜宝静态文本国际化完整 SQL
-- 方案:资源包表 + 资源定义表 + 翻译明细表 + 发布表
-- 说明:
-- 1. 本方案只服务“静态文本”国际化
-- 2. 不包含菜单/RBAC 按钮名称、消息模板、业务主数据翻译
-- 3. 运行时按页面资源包(bundle)加载,不再按单个 key-value 实时查询
-- 4. 字符集统一 utf8mb4 / utf8mb4_general_ci
-- =========================================================

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- =========================================================
-- 1. 资源包表
-- =========================================================
DROP TABLE IF EXISTS sys_i18n_bundle;

CREATE TABLE sys_i18n_bundle (
id bigint NOT NULL COMMENT '主键id',
bundle_code varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '资源包编码,唯一',
bundle_name varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '资源包名称',
platform_code varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '端:admin/customer/purchase/supplier/picking/delivery/pda',
module_code varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '模块编码,如crm/wms/oms',
page_code varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '页面编码,如customer_form/order_submit',
scene_type varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT 'page' COMMENT '场景类型:page/dialog/component',
default_language_code varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT 'zh_CN' COMMENT '默认语言',
version_no bigint NOT NULL DEFAULT '1' COMMENT '当前版本号',
enabled int NOT NULL DEFAULT '1' COMMENT '状态 0禁用 1正常',
del_flag int NOT NULL DEFAULT '0' COMMENT '删除标记 0正常 1删除',
sort_code int NOT NULL DEFAULT '1' COMMENT '排序码',
create_date bigint DEFAULT NULL COMMENT '创建时间',
creator bigint NOT NULL DEFAULT '0' COMMENT '创建人id',
update_date bigint DEFAULT NULL COMMENT '修改时间',
updater bigint NOT NULL DEFAULT '0' COMMENT '修改人id',
remark varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注',
PRIMARY KEY (id) USING BTREE,
UNIQUE KEY uk_bundle_code (bundle_code) USING BTREE,
KEY idx_platform_module_page (platform_code,module_code,page_code) USING BTREE,
KEY idx_scene_type (scene_type) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='静态文本资源包表';

-- =========================================================
-- 2. 资源定义表
-- =========================================================
DROP TABLE IF EXISTS sys_i18n_resource;

CREATE TABLE sys_i18n_resource (
id bigint NOT NULL COMMENT '主键id',
bundle_id bigint NOT NULL COMMENT '资源包id=sys_i18n_bundle.id',
resource_code varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '资源编码,全局唯一',
resource_name varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '资源名称',
component_type varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '组件类型:label/column/placeholder/tab/dialog/button/tooltip/empty',
component_name varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '组件名/字段名',
default_text varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '默认文本',
max_length int DEFAULT '200' COMMENT '最大建议长度',
sort_code int NOT NULL DEFAULT '1' COMMENT '排序码',
enabled int NOT NULL DEFAULT '1' COMMENT '状态 0禁用 1正常',
del_flag int NOT NULL DEFAULT '0' COMMENT '删除标记 0正常 1删除',
create_date bigint DEFAULT NULL COMMENT '创建时间',
creator bigint NOT NULL DEFAULT '0' COMMENT '创建人id',
update_date bigint DEFAULT NULL COMMENT '修改时间',
updater bigint NOT NULL DEFAULT '0' COMMENT '修改人id',
remark varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注',
PRIMARY KEY (id) USING BTREE,
UNIQUE KEY uk_resource_code (resource_code) USING BTREE,
KEY idx_bundle_id (bundle_id) USING BTREE,
KEY idx_component (component_type,component_name) USING BTREE,
CONSTRAINT fk_sys_i18n_resource_bundle FOREIGN KEY (bundle_id) REFERENCES sys_i18n_bundle (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='静态文本资源定义表';

-- =========================================================
-- 3. 翻译明细表
-- =========================================================
DROP TABLE IF EXISTS sys_i18n_resource_text;

CREATE TABLE sys_i18n_resource_text (
id bigint NOT NULL COMMENT '主键id',
resource_id bigint NOT NULL COMMENT '资源id=sys_i18n_resource.id',
language_code varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '语言编码,如zh_CN/en_US/ja_JP',
text_value varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '翻译文本',
version_no bigint NOT NULL DEFAULT '1' COMMENT '资源文本版本号',
enabled int NOT NULL DEFAULT '1' COMMENT '状态 0禁用 1正常',
del_flag int NOT NULL DEFAULT '0' COMMENT '删除标记 0正常 1删除',
create_date bigint DEFAULT NULL COMMENT '创建时间',
creator bigint NOT NULL DEFAULT '0' COMMENT '创建人id',
update_date bigint DEFAULT NULL COMMENT '修改时间',
updater bigint NOT NULL DEFAULT '0' COMMENT '修改人id',
remark varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注',
PRIMARY KEY (id) USING BTREE,
UNIQUE KEY uk_resource_lang (resource_id,language_code) USING BTREE,
KEY idx_lang_resource (language_code,resource_id) USING BTREE,
CONSTRAINT fk_sys_i18n_resource_text_resource FOREIGN KEY (resource_id) REFERENCES sys_i18n_resource (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='静态文本翻译明细表';

-- =========================================================
-- 4. 发布表
-- =========================================================
DROP TABLE IF EXISTS sys_i18n_bundle_publish;

CREATE TABLE sys_i18n_bundle_publish (
id bigint NOT NULL COMMENT '主键id',
bundle_id bigint NOT NULL COMMENT '资源包id=sys_i18n_bundle.id',
language_code varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '语言编码',
publish_version bigint NOT NULL DEFAULT '1' COMMENT '发布版本号',
publish_time bigint DEFAULT NULL COMMENT '发布时间',
publish_user_id bigint NOT NULL DEFAULT '0' COMMENT '发布人',
enabled int NOT NULL DEFAULT '1' COMMENT '状态 0禁用 1正常',
del_flag int NOT NULL DEFAULT '0' COMMENT '删除标记 0正常 1删除',
PRIMARY KEY (id) USING BTREE,
UNIQUE KEY uk_bundle_lang_publish (bundle_id,language_code) USING BTREE,
KEY idx_bundle_lang (bundle_id,language_code) USING BTREE,
CONSTRAINT fk_sys_i18n_bundle_publish_bundle FOREIGN KEY (bundle_id) REFERENCES sys_i18n_bundle (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='静态文本资源包发布表';

-- =========================================================
-- 5. 初始化示例数据
-- =========================================================

-- 资源包:后台 CRM 客户表单
INSERT INTO sys_i18n_bundle
(id,bundle_code,bundle_name,platform_code,module_code,page_code,scene_type,default_language_code,version_no,enabled,del_flag,sort_code,create_date,creator,update_date,updater,remark)
VALUES
(100000000000000001,'admin.crm.customer_form','后台-CRM-客户表单','admin','crm','customer_form','page','zh_CN',1,1,0,1,UNIX_TIMESTAMP()1000,0,UNIX_TIMESTAMP()1000,0,'后台CRM客户表单静态文本资源包');

-- 资源定义
INSERT INTO sys_i18n_resource
(id,bundle_id,resource_code,resource_name,component_type,component_name,default_text,max_length,sort_code,enabled,del_flag,create_date,creator,update_date,updater,remark)
VALUES
(100000000000100001,100000000000000001,'admin.crm.customer_form.label.customer_name','客户名称标签','label','customer_name','客户名称',50,1,1,0,UNIX_TIMESTAMP()1000,0,UNIX_TIMESTAMP()1000,0,'客户名称标签'),
(100000000000100002,100000000000000001,'admin.crm.customer_form.placeholder.phone','手机号占位符','placeholder','phone','请输入手机号',50,2,1,0,UNIX_TIMESTAMP()1000,0,UNIX_TIMESTAMP()1000,0,'手机号占位符'),
(100000000000100003,100000000000000001,'admin.crm.customer_form.button.save','保存按钮','button','save','保存',20,3,1,0,UNIX_TIMESTAMP()1000,0,UNIX_TIMESTAMP()1000,0,'保存按钮');

-- 中文翻译
INSERT INTO sys_i18n_resource_text
(id,resource_id,language_code,text_value,version_no,enabled,del_flag,create_date,creator,update_date,updater,remark)
VALUES
(100000000000200001,100000000000100001,'zh_CN','客户名称',1,1,0,UNIX_TIMESTAMP()1000,0,UNIX_TIMESTAMP()1000,0,'中文'),
(100000000000200002,100000000000100002,'zh_CN','请输入手机号',1,1,0,UNIX_TIMESTAMP()1000,0,UNIX_TIMESTAMP()1000,0,'中文'),
(100000000000200003,100000000000100003,'zh_CN','保存',1,1,0,UNIX_TIMESTAMP()1000,0,UNIX_TIMESTAMP()1000,0,'中文');

-- 英文翻译
INSERT INTO sys_i18n_resource_text
(id,resource_id,language_code,text_value,version_no,enabled,del_flag,create_date,creator,update_date,updater,remark)
VALUES
(100000000000200004,100000000000100001,'en_US','Customer Name',1,1,0,UNIX_TIMESTAMP()1000,0,UNIX_TIMESTAMP()1000,0,'英文'),
(100000000000200005,100000000000100002,'en_US','Please enter phone number',1,1,0,UNIX_TIMESTAMP()1000,0,UNIX_TIMESTAMP()1000,0,'英文'),
(100000000000200006,100000000000100003,'en_US','Save',1,1,0,UNIX_TIMESTAMP()1000,0,UNIX_TIMESTAMP()1000,0,'英文');

-- 发布记录
INSERT INTO sys_i18n_bundle_publish
(id,bundle_id,language_code,publish_version,publish_time,publish_user_id,enabled,del_flag)
VALUES
(100000000000300001,100000000000000001,'zh_CN',1,UNIX_TIMESTAMP()1000,0,1,0),
(100000000000300002,100000000000000001,'en_US',1,UNIX_TIMESTAMP()
1000,0,1,0);

-- =========================================================
-- 6. 常用查询 SQL
-- =========================================================

-- 6.1 按页面加载静态文本资源包
-- 入参:platformCode / moduleCode / pageCode / languageCode
/*
SELECT
b.bundle_code,
b.version_no,
r.resource_code,
COALESCE(t.text_value, r.default_text) AS text_value
FROM sys_i18n_bundle b
INNER JOIN sys_i18n_resource r
ON r.bundle_id = b.id
AND r.del_flag = 0
AND r.enabled = 1
LEFT JOIN sys_i18n_resource_text t
ON t.resource_id = r.id
AND t.language_code = #{languageCode}
AND t.del_flag = 0
AND t.enabled = 1
WHERE b.platform_code = #{platformCode}
AND b.module_code = #{moduleCode}
AND b.page_code = #{pageCode}
AND b.del_flag = 0
AND b.enabled = 1
ORDER BY r.sort_code ASC, r.id ASC;
*/

-- 6.2 按 bundle_code 加载资源包
/*
SELECT
r.resource_code,
COALESCE(t.text_value, r.default_text) AS text_value
FROM sys_i18n_bundle b
INNER JOIN sys_i18n_resource r
ON r.bundle_id = b.id
AND r.del_flag = 0
AND r.enabled = 1
LEFT JOIN sys_i18n_resource_text t
ON t.resource_id = r.id
AND t.language_code = #{languageCode}
AND t.del_flag = 0
AND t.enabled = 1
WHERE b.bundle_code = #{bundleCode}
AND b.del_flag = 0
AND b.enabled = 1
ORDER BY r.sort_code ASC, r.id ASC;
*/

-- 6.3 资源维护页:查看 bundle 下全部资源及各语言
/*
SELECT
b.bundle_code,
r.resource_code,
r.resource_name,
r.component_type,
r.component_name,
r.default_text,
t.language_code,
t.text_value
FROM sys_i18n_bundle b
INNER JOIN sys_i18n_resource r
ON r.bundle_id = b.id
AND r.del_flag = 0
LEFT JOIN sys_i18n_resource_text t
ON t.resource_id = r.id
AND t.del_flag = 0
WHERE b.bundle_code = #{bundleCode}
AND b.del_flag = 0
ORDER BY r.sort_code ASC, r.id ASC, t.language_code ASC;
*/

-- 6.4 缺失翻译检查:找默认语言已存在、目标语言不存在的资源
/*
SELECT
b.bundle_code,
r.resource_code,
r.default_text
FROM sys_i18n_bundle b
INNER JOIN sys_i18n_resource r
ON r.bundle_id = b.id
AND r.del_flag = 0
LEFT JOIN sys_i18n_resource_text target
ON target.resource_id = r.id
AND target.language_code = #{targetLanguageCode}
AND target.del_flag = 0
AND target.enabled = 1
WHERE b.del_flag = 0
AND b.enabled = 1
AND r.enabled = 1
AND target.id IS NULL
ORDER BY b.bundle_code ASC, r.sort_code ASC, r.id ASC;
*/

SET FOREIGN_KEY_CHECKS = 1;
`