gc_i18n 1.4.3 → 1.4.4
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//346/240/270/345/277/203/345/272/223/345/256/236/347/216/260.md +131 -3
- package/.qoder/repowiki/zh/content//350/257/255/350/250/200/350/265/204/346/272/220/347/256/241/347/220/206.md +121 -4
- package/.qoder/repowiki/zh/content//351/205/215/347/275/256/351/200/211/351/241/271.md +57 -11
- 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 +72 -19
- package/.qoder/repowiki/zh/meta/repowiki-metadata.json +1 -1
- package/lib/gc_i18n.es.js +1 -1
- package/lib/gc_i18n.umd.js +1 -1
- package/package.json +1 -1
- package/packages/index.js +4 -0
package/.qoder/repowiki/zh/content//346/240/270/345/277/203/345/272/223/345/256/236/347/216/260.md
CHANGED
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
## 更新摘要
|
|
25
25
|
**变更内容**
|
|
26
26
|
- 核心I18n类完全重写,引入Vue 2/3兼容层和createI18nCompat函数
|
|
27
|
+
- **新增单元代码支持功能**,在配置系统中引入unitCode属性,默认值为GREENCLOUD,增强了翻译数据结构和处理能力
|
|
27
28
|
- **新增中文语言模式兼容性支持**,通过normalizeLocale方法支持zh-CN和zh-TW的自动规范化
|
|
28
29
|
- **内部代码重构改进**,axios别名从Ve改为je,多个函数重命名等
|
|
29
30
|
- 支持自动版本检测和适配,统一Vue 2和Vue 3的API差异
|
|
@@ -50,9 +51,10 @@
|
|
|
50
51
|
4. [公共API接口文档](#公共api接口文档)
|
|
51
52
|
5. [RTL方向管理功能](#rtl方向管理功能)
|
|
52
53
|
6. [中文语言模式兼容性](#中文语言模式兼容性)
|
|
53
|
-
7. [
|
|
54
|
-
8. [
|
|
55
|
-
9. [
|
|
54
|
+
7. [单元代码支持功能](#单元代码支持功能)
|
|
55
|
+
8. [文本编辑模式功能](#文本编辑模式功能)
|
|
56
|
+
9. [非组件环境使用](#非组件环境使用)
|
|
57
|
+
10. [样式文件作用](#样式文件作用)
|
|
56
58
|
|
|
57
59
|
## 项目结构分析
|
|
58
60
|
|
|
@@ -1032,6 +1034,132 @@ await $changeLocale('zh-CN'); // 切换到简体中文
|
|
|
1032
1034
|
- [packages/index.js:437-492](file://packages/index.js#L437-L492)
|
|
1033
1035
|
- [lang/index.json:1-130](file://lang/index.json#L1-L130)
|
|
1034
1036
|
|
|
1037
|
+
## 单元代码支持功能
|
|
1038
|
+
|
|
1039
|
+
### 单位代码配置机制
|
|
1040
|
+
|
|
1041
|
+
**新增** I18n类引入了unitCode属性,用于支持单元代码(组织代码)的配置和管理:
|
|
1042
|
+
|
|
1043
|
+
```javascript
|
|
1044
|
+
constructor(options = {}) {
|
|
1045
|
+
// ... 其他初始化代码
|
|
1046
|
+
this.unitCode = options.unitCode || "GREENCLOUD";
|
|
1047
|
+
// ... 其他初始化代码
|
|
1048
|
+
}
|
|
1049
|
+
```
|
|
1050
|
+
|
|
1051
|
+
### 默认值设置和环境检测
|
|
1052
|
+
|
|
1053
|
+
**更新** 单元代码的默认值设置,结合环境检测机制:
|
|
1054
|
+
|
|
1055
|
+
```javascript
|
|
1056
|
+
// 在语言包入口中,根据环境模式设置单元代码
|
|
1057
|
+
const i18n = new gc_i18n({
|
|
1058
|
+
// ... 其他配置
|
|
1059
|
+
orgCode: import.meta.env.MODE === "unit" ? "DD" : "GREENCLOUD",
|
|
1060
|
+
// ...
|
|
1061
|
+
});
|
|
1062
|
+
```
|
|
1063
|
+
|
|
1064
|
+
### 文本编辑模式中的单元代码集成
|
|
1065
|
+
|
|
1066
|
+
**新增** 文本编辑模式中集成了unitCode支持,用于翻译数据的保存和检索:
|
|
1067
|
+
|
|
1068
|
+
```javascript
|
|
1069
|
+
async saveTranslations(key, values, originalData) {
|
|
1070
|
+
const original = originalData[0];
|
|
1071
|
+
const unitCode = this.unitCode || "GREENCLOUD";
|
|
1072
|
+
|
|
1073
|
+
const requestData = [];
|
|
1074
|
+
Object.keys(values).forEach(lang => {
|
|
1075
|
+
requestData.push({
|
|
1076
|
+
appCode: this.appCode,
|
|
1077
|
+
page: original.page,
|
|
1078
|
+
key: key,
|
|
1079
|
+
unitCode: unitCode,
|
|
1080
|
+
lang: lang,
|
|
1081
|
+
value: values[lang],
|
|
1082
|
+
fromAi: "F"
|
|
1083
|
+
});
|
|
1084
|
+
});
|
|
1085
|
+
|
|
1086
|
+
const response = await saveTranslate({
|
|
1087
|
+
data: { data: requestData, isLocal: "F" },
|
|
1088
|
+
token: this.token,
|
|
1089
|
+
baseUrl: this.baseUrl
|
|
1090
|
+
});
|
|
1091
|
+
|
|
1092
|
+
return response;
|
|
1093
|
+
}
|
|
1094
|
+
```
|
|
1095
|
+
|
|
1096
|
+
### 单元代码在配置系统中的应用
|
|
1097
|
+
|
|
1098
|
+
**新增** 单元代码在配置系统中的完整应用流程:
|
|
1099
|
+
|
|
1100
|
+
```javascript
|
|
1101
|
+
/**
|
|
1102
|
+
* 初始化配置
|
|
1103
|
+
*/
|
|
1104
|
+
async initConfig() {
|
|
1105
|
+
const i18nConfig = store2.get("I18N_CONFIG") || {};
|
|
1106
|
+
const env = i18nConfig.env || "local";
|
|
1107
|
+
|
|
1108
|
+
// 根据环境设置 baseUrl
|
|
1109
|
+
this.baseUrl =
|
|
1110
|
+
!env || env === "local"
|
|
1111
|
+
? ""
|
|
1112
|
+
: env === "dev"
|
|
1113
|
+
? "https://test.ihotel.cn"
|
|
1114
|
+
: "https://trans.ihotel.cn";
|
|
1115
|
+
|
|
1116
|
+
this.appCode = i18nConfig.appCode || "";
|
|
1117
|
+
this.unitCode = i18nConfig.unitCode || "GREENCLOUD";
|
|
1118
|
+
this.token = i18nConfig.token || store2.get("I18N_TOKEN") || "";
|
|
1119
|
+
this.currentLocale = i18nConfig.locale || store2.get("I18N_LANGUAGE") || "zh-CN";
|
|
1120
|
+
|
|
1121
|
+
await this.loadLanguages();
|
|
1122
|
+
}
|
|
1123
|
+
```
|
|
1124
|
+
|
|
1125
|
+
### 单元代码的默认值策略
|
|
1126
|
+
|
|
1127
|
+
**新增** 单元代码的默认值策略,确保在不同环境下的一致性:
|
|
1128
|
+
|
|
1129
|
+
```javascript
|
|
1130
|
+
// 默认单元代码为 GREENCLOUD
|
|
1131
|
+
this.unitCode = options.unitCode || "GREENCLOUD";
|
|
1132
|
+
|
|
1133
|
+
// 在语言包入口中,根据模式覆盖默认值
|
|
1134
|
+
const unitCode = import.meta.env.MODE === "unit" ? "DD" : "GREENCLOUD";
|
|
1135
|
+
```
|
|
1136
|
+
|
|
1137
|
+
### 单元代码支持的最佳实践
|
|
1138
|
+
|
|
1139
|
+
**新增** 使用单元代码支持的推荐做法:
|
|
1140
|
+
|
|
1141
|
+
```javascript
|
|
1142
|
+
// 1. 在创建I18n实例时显式设置unitCode
|
|
1143
|
+
const i18n = new I18n({
|
|
1144
|
+
unitCode: 'CUSTOM_UNIT_CODE',
|
|
1145
|
+
appCode: 'MY_APP',
|
|
1146
|
+
orgCode: 'ORG123'
|
|
1147
|
+
});
|
|
1148
|
+
|
|
1149
|
+
// 2. 在不同环境使用不同的unitCode
|
|
1150
|
+
const unitCode = import.meta.env.MODE === "unit" ? "DD" : "GREENCLOUD";
|
|
1151
|
+
|
|
1152
|
+
// 3. 在文本编辑模式中自动使用配置的unitCode
|
|
1153
|
+
await textEditMode.toggle();
|
|
1154
|
+
// 编辑的翻译数据将使用配置的unitCode保存
|
|
1155
|
+
```
|
|
1156
|
+
|
|
1157
|
+
**本节来源**
|
|
1158
|
+
- [packages/index.js:70-125](file://packages/index.js#L70-L125)
|
|
1159
|
+
- [packages/libs/textEditMode.js:29-50](file://packages/libs/textEditMode.js#L29-L50)
|
|
1160
|
+
- [lang/index.js:10](file://lang/index.js#L10)
|
|
1161
|
+
- [lib/gc_i18n.es.js:1964-1966](file://lib/gc_i18n.es.js#L1964-L1966)
|
|
1162
|
+
|
|
1035
1163
|
## 文本编辑模式功能
|
|
1036
1164
|
|
|
1037
1165
|
### 文本编辑模式概述
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
- [gc_i18n.es.js](file://lib/gc_i18n.es.js) - *在提交71b90fd中更新了搜索逻辑*
|
|
9
9
|
- [earth.js](file://packages/components/earth.js) - *在提交71b90fd中更新了页面数据处理逻辑*
|
|
10
10
|
- [service.js](file://packages/libs/service.js) - *新增appCode参数支持*
|
|
11
|
-
- [packages/index.js](file://packages/index.js) - *新增appCode
|
|
11
|
+
- [packages/index.js](file://packages/index.js) - *新增appCode参数支持,新增文本编辑模式快捷键绑定,增强语言兼容性处理*
|
|
12
12
|
- [textEditMode.js](file://packages/libs/textEditMode.js) - *新增文本编辑模式功能*
|
|
13
13
|
- [textEditMode.css](file://packages/libs/textEditMode.css) - *新增文本编辑模式样式*
|
|
14
14
|
</cite>
|
|
@@ -27,6 +27,7 @@
|
|
|
27
27
|
- **更新** [翻译键值对结构](#翻译键值对结构)章节,反映lang/index.json中新增的24个翻译键,扩展了国际化的支持范围
|
|
28
28
|
- **更新** [fetchTranslate函数参数说明](#fetchtranslate函数参数说明),移除了page参数的使用示例,确保文档与实际代码实现一致
|
|
29
29
|
- **新增** [中文语言环境增强支持](#中文语言环境增强支持)章节,详细说明字符编码处理、中文排版支持等增强功能
|
|
30
|
+
- **新增** [语言兼容性处理机制](#语言兼容性处理机制)章节,详细说明normalizeLocale方法的增强功能,支持更精细的中文变体处理和统一的英文区域变体处理
|
|
30
31
|
|
|
31
32
|
## 目录
|
|
32
33
|
1. [项目结构](#项目结构)
|
|
@@ -47,6 +48,7 @@
|
|
|
47
48
|
16. [快捷键绑定机制](#快捷键绑定机制)
|
|
48
49
|
17. [文本编辑模式样式系统](#文本编辑模式样式系统)
|
|
49
50
|
18. [中文语言环境增强支持](#中文语言环境增强支持)
|
|
51
|
+
19. [语言兼容性处理机制](#语言兼容性处理机制)
|
|
50
52
|
|
|
51
53
|
## 项目结构
|
|
52
54
|
|
|
@@ -336,6 +338,10 @@ LoadTranslations --> End([应用就绪])
|
|
|
336
338
|
"fflhz3": {
|
|
337
339
|
"zh-cn": "日本語",
|
|
338
340
|
"zh-tw": "日本語"
|
|
341
|
+
},
|
|
342
|
+
"g9ioaz11": {
|
|
343
|
+
"zh-cn": "{{$values.id ===\"1\" ? \"新建预订\":\"修改预订\"}}",
|
|
344
|
+
"zh-tw": "{{$values.id ===\"1\" ? \"新建預訂\":\"修改預訂\"}}"
|
|
339
345
|
}
|
|
340
346
|
}
|
|
341
347
|
```
|
|
@@ -343,6 +349,7 @@ LoadTranslations --> End([应用就绪])
|
|
|
343
349
|
**更新** 新增了24个翻译条目,包括文本编辑模式的用户界面文本、快捷键说明和操作提示。这些新增条目主要集中在键值对的末尾部分,提供了完整的编辑模式功能支持。新增的翻译键包括:
|
|
344
350
|
- **文本编辑模式界面文本**:`i55x296`、`7vs7of6`、`edmbfk8`(简体中文、繁体中文、日语内容)
|
|
345
351
|
- **语言名称翻译**:`fwrpxp4`、`gkc0dp4`、`fflhz3`(简体中文、繁体中文、日语)
|
|
352
|
+
- **条件翻译**:`g9ioaz11`(根据条件显示不同的翻译内容)
|
|
346
353
|
|
|
347
354
|
翻译键值对的结构特点:
|
|
348
355
|
- **键命名**:使用随机生成的短字符串作为键名(如qylb2),避免语义化键名带来的维护问题
|
|
@@ -357,7 +364,7 @@ LoadTranslations --> End([应用就绪])
|
|
|
357
364
|
4. **工具友好**:便于自动化工具提取和管理翻译项
|
|
358
365
|
|
|
359
366
|
**节来源**
|
|
360
|
-
- [index.json:1-
|
|
367
|
+
- [index.json:1-134](file://lang/index.json#L1-L134)
|
|
361
368
|
|
|
362
369
|
## 语言文件命名规范与目录结构
|
|
363
370
|
|
|
@@ -535,7 +542,7 @@ this.$t('greeting', { name: '张三', count: 5 })
|
|
|
535
542
|
|
|
536
543
|
**节来源**
|
|
537
544
|
- [index.js:1-20](file://lang/index.js#L1-L20)
|
|
538
|
-
- [index.json:1-
|
|
545
|
+
- [index.json:1-134](file://lang/index.json#L1-L134)
|
|
539
546
|
|
|
540
547
|
## JSON与JavaScript语言文件的适用场景
|
|
541
548
|
|
|
@@ -1310,4 +1317,114 @@ function processChineseText(text) {
|
|
|
1310
1317
|
- [index.js](file://lang/index.js)
|
|
1311
1318
|
- [index.json](file://lang/index.json)
|
|
1312
1319
|
- [textEditMode.js](file://packages/libs/textEditMode.js)
|
|
1313
|
-
- [textEditMode.css](file://packages/libs/textEditMode.css)
|
|
1320
|
+
- [textEditMode.css](file://packages/libs/textEditMode.css)
|
|
1321
|
+
|
|
1322
|
+
## 语言兼容性处理机制
|
|
1323
|
+
|
|
1324
|
+
### normalizeLocale方法增强
|
|
1325
|
+
|
|
1326
|
+
系统新增了强大的语言兼容性处理机制,通过增强的`normalizeLocale`方法支持更精细的语言变体处理和统一的区域变体处理。
|
|
1327
|
+
|
|
1328
|
+
### 方法实现详解
|
|
1329
|
+
|
|
1330
|
+
```javascript
|
|
1331
|
+
normalizeLocale(locale) {
|
|
1332
|
+
if (!locale) return "zh-CN";
|
|
1333
|
+
// 保留繁体中文变体
|
|
1334
|
+
if (locale === "zh-TW" || locale === "zh-HK" || locale === "zh-MO") {
|
|
1335
|
+
return locale;
|
|
1336
|
+
}
|
|
1337
|
+
// zh-SG 等其它 zh- 开头映射为 zh-CN
|
|
1338
|
+
if (locale.startsWith("zh-")) {
|
|
1339
|
+
return "zh-CN";
|
|
1340
|
+
}
|
|
1341
|
+
// en-* 全部映射为 en-US
|
|
1342
|
+
if (locale.startsWith("en-")) {
|
|
1343
|
+
return "en-US";
|
|
1344
|
+
}
|
|
1345
|
+
// 处理完全匹配形式
|
|
1346
|
+
const localeMap = {
|
|
1347
|
+
zh: "zh-CN",
|
|
1348
|
+
en: "en-US"
|
|
1349
|
+
};
|
|
1350
|
+
return localeMap[locale] || locale;
|
|
1351
|
+
}
|
|
1352
|
+
```
|
|
1353
|
+
|
|
1354
|
+
### 支持的语言变体
|
|
1355
|
+
|
|
1356
|
+
#### 繁体中文变体保留
|
|
1357
|
+
- **zh-TW**:台湾繁体中文
|
|
1358
|
+
- **zh-HK**:香港繁体中文
|
|
1359
|
+
- **zh-MO**:澳门繁体中文
|
|
1360
|
+
|
|
1361
|
+
这些繁体中文变体将被完整保留,不会被映射到简体中文,确保地区化内容的准确性。
|
|
1362
|
+
|
|
1363
|
+
#### 简体中文统一处理
|
|
1364
|
+
- **zh-CN**:中国大陆简体中文
|
|
1365
|
+
- **zh-SG**:新加坡简体中文
|
|
1366
|
+
- **zh-Hans**:简体中文(通用)
|
|
1367
|
+
|
|
1368
|
+
所有以"zh-"开头的简体中文变体都会被统一映射到"zh-CN",确保简体中文内容的一致性。
|
|
1369
|
+
|
|
1370
|
+
#### 英文统一处理
|
|
1371
|
+
- **en-US**:美国英语
|
|
1372
|
+
- **en-GB**:英国英语
|
|
1373
|
+
- **en-CA**:加拿大英语
|
|
1374
|
+
- **en-AU**:澳大利亚英语
|
|
1375
|
+
- **en-IE**:爱尔兰英语
|
|
1376
|
+
- **en-NZ**:新西兰英语
|
|
1377
|
+
- **en-ZA**:南非英语
|
|
1378
|
+
|
|
1379
|
+
所有以"en-"开头的英文变体都会被统一映射到"en-US",提供统一的英文用户体验。
|
|
1380
|
+
|
|
1381
|
+
### 浏览器语言监听
|
|
1382
|
+
|
|
1383
|
+
系统还集成了浏览器语言变化监听机制:
|
|
1384
|
+
|
|
1385
|
+
```javascript
|
|
1386
|
+
setupLanguageChangeListener() {
|
|
1387
|
+
if ("onlanguagechange" in window) {
|
|
1388
|
+
window.addEventListener("languagechange", () => {
|
|
1389
|
+
const newBrowserLanguage = this.normalizeLocale(navigator.language);
|
|
1390
|
+
if (newBrowserLanguage !== this.locale) {
|
|
1391
|
+
this.setLanguage(newBrowserLanguage);
|
|
1392
|
+
}
|
|
1393
|
+
});
|
|
1394
|
+
}
|
|
1395
|
+
}
|
|
1396
|
+
```
|
|
1397
|
+
|
|
1398
|
+
当用户的浏览器语言发生变化时,系统会自动检测并应用合适的语言设置。
|
|
1399
|
+
|
|
1400
|
+
### 使用示例
|
|
1401
|
+
|
|
1402
|
+
```javascript
|
|
1403
|
+
// 不同语言代码的规范化处理
|
|
1404
|
+
console.log(normalizeLocale("zh-TW")); // 输出: "zh-TW" (保留不变)
|
|
1405
|
+
console.log(normalizeLocale("zh-HK")); // 输出: "zh-HK" (保留不变)
|
|
1406
|
+
console.log(normalizeLocale("zh-MO")); // 输出: "zh-MO" (保留不变)
|
|
1407
|
+
console.log(normalizeLocale("zh-SG")); // 输出: "zh-CN" (映射到简体中文)
|
|
1408
|
+
console.log(normalizeLocale("en-GB")); // 输出: "en-US" (映射到美式英语)
|
|
1409
|
+
console.log(normalizeLocale("en-CA")); // 输出: "en-US" (映射到美式英语)
|
|
1410
|
+
console.log(normalizeLocale("zh")); // 输出: "zh-CN" (完全匹配)
|
|
1411
|
+
console.log(normalizeLocale("en")); // 输出: "en-US" (完全匹配)
|
|
1412
|
+
```
|
|
1413
|
+
|
|
1414
|
+
### 实际应用场景
|
|
1415
|
+
|
|
1416
|
+
1. **多地区部署**:支持中国大陆、台湾、香港、澳门等不同地区的语言需求
|
|
1417
|
+
2. **全球化应用**:统一处理不同英语国家的语言偏好
|
|
1418
|
+
3. **浏览器兼容**:自动适配用户浏览器的语言设置
|
|
1419
|
+
4. **动态语言切换**:支持运行时的语言环境调整
|
|
1420
|
+
|
|
1421
|
+
### 性能优化考虑
|
|
1422
|
+
|
|
1423
|
+
- **快速匹配**:使用简单的字符串比较和前缀检查
|
|
1424
|
+
- **缓存机制**:避免重复的语言代码处理
|
|
1425
|
+
- **浏览器支持检测**:仅在支持的浏览器中启用语言变化监听
|
|
1426
|
+
- **回退机制**:当语言代码无效时自动回退到默认语言
|
|
1427
|
+
|
|
1428
|
+
**节来源**
|
|
1429
|
+
- [packages/index.js:168-188](file://packages/index.js#L168-L188)
|
|
1430
|
+
- [packages/index.js:191-200](file://packages/index.js#L191-L200)
|
|
@@ -8,20 +8,18 @@
|
|
|
8
8
|
- [lang/index.js](file://lang/index.js)
|
|
9
9
|
- [packages/libs/service.js](file://packages/libs/service.js)
|
|
10
10
|
- [packages/libs/i18nUtils.ts](file://packages/libs/i18nUtils.ts)
|
|
11
|
+
- [packages/libs/textEditMode.js](file://packages/libs/textEditMode.js)
|
|
11
12
|
- [packages/swal.css](file://packages/swal.css)
|
|
12
13
|
- [package.json](file://package.json)
|
|
13
|
-
- [packages/libs/textEditMode.js](file://packages/libs/textEditMode.js)
|
|
14
14
|
- [packages/libs/textEditMode.css](file://packages/libs/textEditMode.css)
|
|
15
15
|
</cite>
|
|
16
16
|
|
|
17
17
|
## 更新摘要
|
|
18
18
|
**所做更改**
|
|
19
|
-
-
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
- 更新了环境配置说明,反映最新的URL变更
|
|
24
|
-
- 修正了iframe配置的URL结构说明
|
|
19
|
+
- 新增了 `unitCode` 配置选项,允许在配置系统中指定单位代码,默认值为 "GREENCLOUD"
|
|
20
|
+
- 更新了版本号至 1.4.3
|
|
21
|
+
- 修正了 `orgCode` 配置的默认值说明,从 "DD" 改为 "GREENCLOUD"
|
|
22
|
+
- 更新了企业环境配置说明,反映 `unitCode` 的作用
|
|
25
23
|
|
|
26
24
|
## 目录
|
|
27
25
|
1. [i18n构建配置](#i18n构建配置)
|
|
@@ -126,7 +124,7 @@ external: [
|
|
|
126
124
|
- **样式**: 提供专门的CSS样式支持编辑模式的视觉反馈
|
|
127
125
|
|
|
128
126
|
**Section sources**
|
|
129
|
-
- [packages/index.js:67-
|
|
127
|
+
- [packages/index.js:67-559](file://packages/index.js#L67-L559)
|
|
130
128
|
|
|
131
129
|
## 初始化配置对象
|
|
132
130
|
|
|
@@ -164,6 +162,7 @@ external: [
|
|
|
164
162
|
- **login**: 是否启用登录功能
|
|
165
163
|
- **messages**: 预定义的语言消息对象
|
|
166
164
|
- **editKeyboard**: 文本编辑模式快捷键,默认为 "ctrl+shift+e"
|
|
165
|
+
- **unitCode**: 单位代码,默认值为 "GREENCLOUD",用于企业环境中的翻译范围控制
|
|
167
166
|
|
|
168
167
|
**Section sources**
|
|
169
168
|
- [src/main.js:1-12](file://src/main.js#L1-L12)
|
|
@@ -181,7 +180,7 @@ external: [
|
|
|
181
180
|
| **appCode** | String | null | 任意字符串 | 应用标识符,用于区分不同应用 |
|
|
182
181
|
| **messages** | Object | {} | 包含语言代码为键的对象 | 预定义的语言消息,用于快速加载 |
|
|
183
182
|
| **token** | String | generateJWT(orgCode) 或 localStorage 中的 I18N_TOKEN | JWT token | 用于认证请求语言资源 |
|
|
184
|
-
| **orgCode** | String |
|
|
183
|
+
| **orgCode** | String | "GREENCLOUD" | 任意字符串 | 用于生成 JWT token 的组织代码 |
|
|
185
184
|
| **loginRouteName** | String | "login" | 任意字符串 | 登录页面的路由名称 |
|
|
186
185
|
| **login** | Boolean | false | true/false | 是否启用登录功能 |
|
|
187
186
|
| **keyboard** | String | "ctrl+shift+l" | 键盘快捷键组合 | 触发展示配置iframe的快捷键 |
|
|
@@ -189,6 +188,7 @@ external: [
|
|
|
189
188
|
| **env** | String | "local" | "local"、"dev"、"production" | 环境模式,决定baseUrl |
|
|
190
189
|
| **locale** | String | 浏览器语言或 "zh-CN" | 有效的语言代码 | 默认语言设置 |
|
|
191
190
|
| **baseUrl** | String | 根据env计算 | "local"、"dev"、"production" 或自定义URL | 语言服务基础URL |
|
|
191
|
+
| **unitCode** | String | "GREENCLOUD" | 任意字符串 | 单位代码,用于企业环境中的翻译范围控制 |
|
|
192
192
|
|
|
193
193
|
### 环境配置详解
|
|
194
194
|
|
|
@@ -279,8 +279,19 @@ baseUrl: "https://custom-domain.com"
|
|
|
279
279
|
| **iframeMinHeight** | String | "480px" | CSS 值 | iframe最小高度 |
|
|
280
280
|
| **iframeBorderStyle** | String | "none" | CSS 值 | iframe边框样式 |
|
|
281
281
|
|
|
282
|
+
### 企业环境配置详解
|
|
283
|
+
|
|
284
|
+
**新增** `unitCode` 配置选项用于企业环境中的翻译范围控制:
|
|
285
|
+
|
|
286
|
+
- **默认值**: `"GREENCLOUD"`
|
|
287
|
+
- **作用**: 控制翻译资源的访问范围,确保不同单位或部门的翻译数据相互隔离
|
|
288
|
+
- **应用场景**:
|
|
289
|
+
- 多租户环境下的数据隔离
|
|
290
|
+
- 不同业务单元的翻译范围控制
|
|
291
|
+
- 企业内部的权限管理
|
|
292
|
+
|
|
282
293
|
**Section sources**
|
|
283
|
-
- [packages/index.js:67-
|
|
294
|
+
- [packages/index.js:67-559](file://packages/index.js#L67-L559)
|
|
284
295
|
- [vite.config.js:1-72](file://vite.config.js#L1-L72)
|
|
285
296
|
- [packages/swal.css:1-23](file://packages/swal.css#L1-L23)
|
|
286
297
|
- [package.json:13-20](file://package.json#L13-L20)
|
|
@@ -316,6 +327,41 @@ const i18nInstance = new gc_i18n({
|
|
|
316
327
|
});
|
|
317
328
|
```
|
|
318
329
|
|
|
330
|
+
### 企业环境配置示例
|
|
331
|
+
|
|
332
|
+
#### 默认企业环境配置
|
|
333
|
+
```js
|
|
334
|
+
const i18nInstance = new gc_i18n({
|
|
335
|
+
appCode: "ENTERPRISE_APP",
|
|
336
|
+
router: router,
|
|
337
|
+
orgCode: "GREENCLOUD", // 默认值
|
|
338
|
+
unitCode: "GREENCLOUD", // 默认值
|
|
339
|
+
env: "dev"
|
|
340
|
+
});
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
#### 自定义单位代码配置
|
|
344
|
+
```js
|
|
345
|
+
const i18nInstance = new gc_i18n({
|
|
346
|
+
appCode: "CUSTOM_UNIT_APP",
|
|
347
|
+
router: router,
|
|
348
|
+
orgCode: "CUSTOM_ORG",
|
|
349
|
+
unitCode: "CUSTOM_UNIT_001", // 自定义单位代码
|
|
350
|
+
env: "production"
|
|
351
|
+
});
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
#### 多租户环境配置
|
|
355
|
+
```js
|
|
356
|
+
const i18nInstance = new gc_i18n({
|
|
357
|
+
appCode: "MULTI_TENANT_APP",
|
|
358
|
+
router: router,
|
|
359
|
+
orgCode: "TENANT_A",
|
|
360
|
+
unitCode: "UNIT_A_001", // 租户A的单位代码
|
|
361
|
+
env: "dev"
|
|
362
|
+
});
|
|
363
|
+
```
|
|
364
|
+
|
|
319
365
|
### 环境分离配置示例
|
|
320
366
|
|
|
321
367
|
#### 本地开发环境
|
|
@@ -451,6 +497,6 @@ export default {
|
|
|
451
497
|
|
|
452
498
|
**Section sources**
|
|
453
499
|
- [lang/index.js:16-33](file://lang/index.js#L16-L33)
|
|
454
|
-
- [packages/index.js:67-
|
|
500
|
+
- [packages/index.js:67-559](file://packages/index.js#L67-L559)
|
|
455
501
|
- [packages/swal.css:1-23](file://packages/swal.css#L1-L23)
|
|
456
502
|
- [packages/libs/textEditMode.css:1-166](file://packages/libs/textEditMode.css#L1-L166)
|