gc_i18n 1.3.10 → 1.3.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.qoder/repowiki/zh/content//351/253/230/347/272/247/347/224/250/346/263/225//346/226/207/346/234/254/347/274/226/350/276/221/346/250/241/345/274/217/345/212/237/350/203/275.md +73 -19
- package/.qoder/repowiki/zh/meta/repowiki-metadata.json +1 -1
- package/lang/index.js +1 -14
- package/lib/gc_i18n.es.js +147 -146
- package/lib/gc_i18n.umd.js +12 -12
- package/package.json +1 -1
- package/packages/index.js +6 -5
|
@@ -18,21 +18,17 @@
|
|
|
18
18
|
|
|
19
19
|
## 更新摘要
|
|
20
20
|
**变更内容**
|
|
21
|
-
-
|
|
22
|
-
- 编辑对话框标题优化:从通用格式更新为显示原值参考,提供更好的用户反馈
|
|
23
|
-
- 新增 saveTranslate 服务函数集成:统一翻译保存接口,增强功能一致性
|
|
24
|
-
- 改进的错误处理和调试功能:增强的错误信息显示和用户反馈机制
|
|
25
|
-
- 错误消息文本优化:将"框架内部固定翻译,不支持修改"更新为更简洁的"系统字段不支持修改"
|
|
26
|
-
- 代码格式化优化:改善了代码可读性和维护性
|
|
27
|
-
- 新增完整的 TextEditMode 类实现,提供可视化的文本编辑功能
|
|
21
|
+
- 版本升级至 v1.3.10,新增完整的 TextEditMode 类实现
|
|
28
22
|
- 新增部分文本翻译编辑能力,支持文本节点中的部分翻译内容识别
|
|
29
|
-
-
|
|
30
|
-
-
|
|
31
|
-
-
|
|
32
|
-
-
|
|
33
|
-
-
|
|
34
|
-
-
|
|
35
|
-
-
|
|
23
|
+
- 改进翻译保存机制,从批量处理重构为单个保存操作
|
|
24
|
+
- 增强安全保护机制,支持框架内部固定翻译的保护
|
|
25
|
+
- 改进错误处理和用户反馈机制,包括保存错误容器和详细错误信息
|
|
26
|
+
- 编辑对话框标题优化,从通用格式更新为显示原值参考
|
|
27
|
+
- 新增 saveTranslate 服务函数集成,统一翻译保存接口
|
|
28
|
+
- 新增智能文本节点扫描机制,支持部分匹配和批量处理
|
|
29
|
+
- 新增多层缓存策略,包含全局映射、本地存储和路由翻译
|
|
30
|
+
- 新增 HTML 转义功能,增强安全性
|
|
31
|
+
- 新增更新页面上已翻译文本功能,支持实时预览
|
|
36
32
|
|
|
37
33
|
## 目录
|
|
38
34
|
1. [简介](#简介)
|
|
@@ -60,6 +56,9 @@
|
|
|
60
56
|
- 新增安全保护机制,防止修改框架内部固定翻译
|
|
61
57
|
- 新增改进的翻译键跟踪机制,提供更准确的翻译定位
|
|
62
58
|
- **新增** 翻译保存机制重构,从批量处理优化为单个保存操作,提升代码简洁性和用户体验
|
|
59
|
+
- **新增** 智能文本节点扫描机制,支持部分匹配和批量处理
|
|
60
|
+
- **新增** 多层缓存策略,包含全局映射、本地存储和路由翻译
|
|
61
|
+
- **新增** HTML 转义功能,增强安全性
|
|
63
62
|
|
|
64
63
|
## 项目结构
|
|
65
64
|
|
|
@@ -149,6 +148,7 @@ class TextEditMode {
|
|
|
149
148
|
+async fetchTranslations(key)
|
|
150
149
|
+async saveTranslations(key, values, originalTranslations)
|
|
151
150
|
+escapeHtml(text)
|
|
151
|
+
+updateTranslatedText(key, values)
|
|
152
152
|
}
|
|
153
153
|
class I18n {
|
|
154
154
|
-string editKeyboard
|
|
@@ -162,7 +162,7 @@ I18n --> TextEditMode : "控制"
|
|
|
162
162
|
```
|
|
163
163
|
|
|
164
164
|
**图表来源**
|
|
165
|
-
- [packages/libs/textEditMode.js:14-
|
|
165
|
+
- [packages/libs/textEditMode.js:14-623](file://packages/libs/textEditMode.js#L14-L623)
|
|
166
166
|
- [packages/index.js:70-160](file://packages/index.js#L70-L160)
|
|
167
167
|
|
|
168
168
|
### 键盘快捷键系统
|
|
@@ -208,6 +208,8 @@ L[状态指示器]
|
|
|
208
208
|
M[安全保护机制]
|
|
209
209
|
N[部分文本编辑]
|
|
210
210
|
O[翻译键跟踪]
|
|
211
|
+
P[HTML 转义]
|
|
212
|
+
Q[实时更新]
|
|
211
213
|
end
|
|
212
214
|
A --> D
|
|
213
215
|
B --> D
|
|
@@ -224,11 +226,13 @@ E --> L
|
|
|
224
226
|
E --> M
|
|
225
227
|
E --> N
|
|
226
228
|
E --> O
|
|
229
|
+
E --> P
|
|
230
|
+
E --> Q
|
|
227
231
|
```
|
|
228
232
|
|
|
229
233
|
**图表来源**
|
|
230
234
|
- [packages/index.js:70-516](file://packages/index.js#L70-L516)
|
|
231
|
-
- [packages/libs/textEditMode.js:14-
|
|
235
|
+
- [packages/libs/textEditMode.js:14-623](file://packages/libs/textEditMode.js#L14-L623)
|
|
232
236
|
|
|
233
237
|
## 详细组件分析
|
|
234
238
|
|
|
@@ -274,7 +278,7 @@ TextMode->>User : 刷新页面
|
|
|
274
278
|
|
|
275
279
|
**图表来源**
|
|
276
280
|
- [packages/index.js:152-156](file://packages/index.js#L152-L156)
|
|
277
|
-
- [packages/libs/textEditMode.js:89-
|
|
281
|
+
- [packages/libs/textEditMode.js:89-623](file://packages/libs/textEditMode.js#L89-L623)
|
|
278
282
|
|
|
279
283
|
### 文本节点扫描机制
|
|
280
284
|
|
|
@@ -346,6 +350,7 @@ ReturnKey --> End([返回翻译键])
|
|
|
346
350
|
| 关闭按钮 | 关闭弹窗 | 无 | 无 |
|
|
347
351
|
| 错误提示 | 显示保存错误信息 | 无 | 无 |
|
|
348
352
|
| **新增** 保存错误容器 | 显示保存失败信息 | 无 | 错误处理 |
|
|
353
|
+
| **新增** 原值参考显示 | 显示原始翻译值 | 无 | 无 |
|
|
349
354
|
|
|
350
355
|
**更新** 新增了安全保护机制,对框架内部固定翻译(以 `i.` 或 `pro.` 开头)进行保护,防止用户修改。新增改进了错误处理,包括保存失败的详细错误信息显示。
|
|
351
356
|
|
|
@@ -379,6 +384,25 @@ ReturnSuccess --> End
|
|
|
379
384
|
- [packages/libs/textEditMode.js:527-557](file://packages/libs/textEditMode.js#L527-L557)
|
|
380
385
|
- [packages/libs/service.js:72-81](file://packages/libs/service.js#L72-L81)
|
|
381
386
|
|
|
387
|
+
### 安全保护机制
|
|
388
|
+
|
|
389
|
+
**更新** 新版本引入了重要的安全保护机制,防止修改框架内部固定翻译:
|
|
390
|
+
|
|
391
|
+
```mermaid
|
|
392
|
+
flowchart TD
|
|
393
|
+
Start([开始编辑]) --> CheckKey["检查翻译键"]
|
|
394
|
+
CheckKey --> IsInternal{"是否为内部翻译?"}
|
|
395
|
+
IsInternal --> |是| ShowWarning["显示警告信息"]
|
|
396
|
+
IsInternal --> |否| LoadData["加载翻译数据"]
|
|
397
|
+
ShowWarning --> BlockEdit["阻止编辑"]
|
|
398
|
+
BlockEdit --> End([结束])
|
|
399
|
+
LoadData --> OpenModal["打开编辑弹窗"]
|
|
400
|
+
OpenModal --> End
|
|
401
|
+
```
|
|
402
|
+
|
|
403
|
+
**图表来源**
|
|
404
|
+
- [packages/libs/textEditMode.js:371-383](file://packages/libs/textEditMode.js#L371-L383)
|
|
405
|
+
|
|
382
406
|
## 依赖关系分析
|
|
383
407
|
|
|
384
408
|
### 核心依赖关系图
|
|
@@ -410,6 +434,7 @@ Z[lang/index.js] --> AA[语言配置]
|
|
|
410
434
|
BB[src/view/Home.vue] --> CC[主页视图]
|
|
411
435
|
DD[packages/libs/textEditMode.css] --> EE[编辑模式样式]
|
|
412
436
|
FF[packages/libs/textEditMode.js] --> GG[部分文本处理]
|
|
437
|
+
HH[lang/index.json] --> II[翻译数据]
|
|
413
438
|
end
|
|
414
439
|
A --> M
|
|
415
440
|
C --> Q
|
|
@@ -427,11 +452,12 @@ V --> M
|
|
|
427
452
|
X --> M
|
|
428
453
|
DD --> M
|
|
429
454
|
EE --> M
|
|
455
|
+
II --> M
|
|
430
456
|
```
|
|
431
457
|
|
|
432
458
|
**图表来源**
|
|
433
459
|
- [packages/index.js:1-516](file://packages/index.js#L1-L516)
|
|
434
|
-
- [packages/libs/textEditMode.js:1-
|
|
460
|
+
- [packages/libs/textEditMode.js:1-623](file://packages/libs/textEditMode.js#L1-L623)
|
|
435
461
|
- [packages/libs/service.js:1-136](file://packages/libs/service.js#L1-L136)
|
|
436
462
|
|
|
437
463
|
### 模块耦合度分析
|
|
@@ -446,6 +472,8 @@ EE --> M
|
|
|
446
472
|
| 服务层 | 中等 | 低 | API 请求封装 |
|
|
447
473
|
| UI 组件 | 高 | 低 | 视觉呈现 |
|
|
448
474
|
| 工具函数 | 高 | 低 | 通用工具方法 |
|
|
475
|
+
| **新增** 安全保护模块 | 高 | 低 | 翻译类型验证 |
|
|
476
|
+
| **新增** 错误处理模块 | 高 | 低 | 异常情况处理 |
|
|
449
477
|
|
|
450
478
|
## 性能考虑
|
|
451
479
|
|
|
@@ -460,6 +488,8 @@ EE --> M
|
|
|
460
488
|
5. **安全检查优化**:对框架内部翻译的检查在编辑前进行,避免不必要的 API 调用
|
|
461
489
|
6. **新增** 部分文本处理优化:智能识别和处理文本节点中的部分翻译内容,减少 DOM 操作次数
|
|
462
490
|
7. **新增** 保存机制优化:单个保存操作替代批量处理,减少内存占用和网络请求
|
|
491
|
+
8. **新增** HTML 转义优化:只在必要时进行转义,提升性能
|
|
492
|
+
9. **新增** 实时更新优化:只更新受影响的元素,避免全页面刷新
|
|
463
493
|
|
|
464
494
|
### 性能优化建议
|
|
465
495
|
|
|
@@ -473,6 +503,8 @@ EE --> M
|
|
|
473
503
|
| 安全检查缓存 | 缓存翻译类型检查结果 | 减少重复计算 |
|
|
474
504
|
| **新增** 内存清理 | 及时清理部分文本包装元素 | 释放内存资源 |
|
|
475
505
|
| **新增** 保存机制优化 | 单个保存操作替代批量处理 | 提升代码简洁性和性能 |
|
|
506
|
+
| **新增** HTML 转义优化 | 按需转义减少计算量 | 提升渲染性能 |
|
|
507
|
+
| **新增** 实时更新优化 | 精确更新受影响元素 | 减少重绘重排 |
|
|
476
508
|
|
|
477
509
|
## 故障排除指南
|
|
478
510
|
|
|
@@ -491,6 +523,8 @@ EE --> M
|
|
|
491
523
|
| **新增** 保存失败 | 编辑后无法保存更改 | 权限不足或网络错误 | 检查用户权限和网络状态 |
|
|
492
524
|
| **新增** 部分文本匹配错误 | 文本被错误地分割 | 匹配算法问题 | 检查 wrapMultipleTextParts |
|
|
493
525
|
| **新增** 保存错误显示问题 | 错误信息不显示或显示异常 | DOM 操作失败 | 检查错误容器创建 |
|
|
526
|
+
| **新增** HTML 转义问题 | 特殊字符显示异常 | 转义功能失效 | 检查 escapeHtml 函数 |
|
|
527
|
+
| **新增** 实时更新失败 | 保存后页面未更新 | 更新函数执行失败 | 检查 updateTranslatedText |
|
|
494
528
|
|
|
495
529
|
### 调试工具
|
|
496
530
|
|
|
@@ -503,6 +537,8 @@ EE --> M
|
|
|
503
537
|
5. **安全检查日志**:显示翻译类型验证过程
|
|
504
538
|
6. **新增** 部分文本调试:显示文本匹配和包装过程
|
|
505
539
|
7. **新增** 保存机制调试:显示保存数据构建和 API 调用过程
|
|
540
|
+
8. **新增** HTML 转义调试:显示字符转义过程
|
|
541
|
+
9. **新增** 实时更新调试:显示元素更新过程
|
|
506
542
|
|
|
507
543
|
**章节来源**
|
|
508
544
|
- [packages/libs/textEditMode.js:369-485](file://packages/libs/textEditMode.js#L369-L485)
|
|
@@ -524,6 +560,10 @@ EE --> M
|
|
|
524
560
|
8. **新增** 改进的错误处理:提供详细的错误信息和用户反馈
|
|
525
561
|
9. **新增** 翻译保存机制重构:从批量处理优化为单个保存操作,提升代码简洁性和用户体验
|
|
526
562
|
10. **新增** 编辑对话框标题优化:显示原值参考,提供更好的用户反馈
|
|
563
|
+
11. **新增** 智能文本节点扫描:自动识别和处理部分翻译内容
|
|
564
|
+
12. **新增** 多层缓存策略:包含全局映射、本地存储和路由翻译
|
|
565
|
+
13. **新增** HTML 转义功能:增强安全性
|
|
566
|
+
14. **新增** 实时更新机制:保存后立即更新页面显示
|
|
527
567
|
|
|
528
568
|
### 技术亮点
|
|
529
569
|
|
|
@@ -536,6 +576,8 @@ EE --> M
|
|
|
536
576
|
- **新增** 用户反馈:详细的错误提示和状态通知
|
|
537
577
|
- **新增** 内存优化:高效的内存管理和清理机制
|
|
538
578
|
- **新增** 保存机制优化:单个保存操作替代批量处理,提升代码简洁性和性能
|
|
579
|
+
- **新增** HTML 转义优化:按需转义减少计算量
|
|
580
|
+
- **新增** 实时更新优化:精确更新受影响元素,减少重绘重排
|
|
539
581
|
|
|
540
582
|
### 安全改进
|
|
541
583
|
|
|
@@ -560,4 +602,16 @@ EE --> M
|
|
|
560
602
|
- **统一接口**:集成 saveTranslate 服务函数,增强功能一致性
|
|
561
603
|
- **错误处理**:改进的错误信息显示和用户反馈机制
|
|
562
604
|
|
|
563
|
-
|
|
605
|
+
**新增** 安全保护机制:
|
|
606
|
+
- **翻译类型验证**:自动识别框架内部翻译
|
|
607
|
+
- **用户提示**:友好的错误信息显示
|
|
608
|
+
- **操作阻止**:防止修改受保护的翻译
|
|
609
|
+
|
|
610
|
+
**新增** HTML 转义功能:
|
|
611
|
+
- **字符安全**:防止 XSS 攻击
|
|
612
|
+
- **按需转义**:提升性能表现
|
|
613
|
+
- **兼容性保证**:确保特殊字符正确显示
|
|
614
|
+
|
|
615
|
+
该功能的成功实现展示了现代前端国际化解决方案的最佳实践,为类似项目提供了宝贵的参考经验。新版本的文本编辑模式不仅提升了开发效率,还增强了系统的安全性和可靠性,特别是在部分文本编辑、错误处理、保存机制和安全保护方面的改进,为用户提供了更加完善和可靠的翻译管理体验。
|
|
616
|
+
|
|
617
|
+
**版本信息**:当前版本为 v1.3.10,包含了上述所有新增功能和改进。
|