gc_i18n 1.2.6 → 1.2.8
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/lang/index.js +1 -0
- package/lib/gc_i18n.css +1 -1
- package/lib/gc_i18n.js +812 -827
- package/lib/gc_i18n.umd.cjs +10 -10
- package/package.json +1 -1
- package/packages/components/config.vue +43 -86
- package/packages/index.js +6 -15
- package/packages/libs/service.js +24 -18
|
@@ -1,11 +1,6 @@
|
|
|
1
1
|
<script lang="jsx">
|
|
2
2
|
import _ from "lodash-es";
|
|
3
|
-
import {
|
|
4
|
-
getAllTranslate,
|
|
5
|
-
getLanguages,
|
|
6
|
-
saveTranslate,
|
|
7
|
-
userDicts
|
|
8
|
-
} from "../libs/service";
|
|
3
|
+
import { getLanguages, saveTranslate, userDicts } from "../libs/service";
|
|
9
4
|
import { Message, Tooltip } from "view-ui-plus";
|
|
10
5
|
import store2 from "store2";
|
|
11
6
|
|
|
@@ -36,67 +31,23 @@ export default {
|
|
|
36
31
|
|
|
37
32
|
columns() {
|
|
38
33
|
let arr = [
|
|
39
|
-
//
|
|
40
|
-
//
|
|
41
|
-
//
|
|
42
|
-
//
|
|
43
|
-
//
|
|
44
|
-
//
|
|
45
|
-
//
|
|
46
|
-
//
|
|
47
|
-
//
|
|
48
|
-
//
|
|
49
|
-
//
|
|
50
|
-
//
|
|
51
|
-
//
|
|
52
|
-
//
|
|
53
|
-
//
|
|
54
|
-
//
|
|
55
|
-
//
|
|
56
|
-
// </Tooltip>
|
|
57
|
-
// </span>
|
|
58
|
-
// ) : row.page === this.name ? (
|
|
59
|
-
// <span style={{ color: "green" }}>当前页</span>
|
|
60
|
-
// ) : (
|
|
61
|
-
// <span>
|
|
62
|
-
// 全局{" "}
|
|
63
|
-
// <Tooltip
|
|
64
|
-
// maxWidth={150}
|
|
65
|
-
// content="编辑该字段转化为当前页,不会覆盖全局"
|
|
66
|
-
// placement="top"
|
|
67
|
-
// transfer
|
|
68
|
-
// >
|
|
69
|
-
// <Icon type="ios-alert-outline" />
|
|
70
|
-
// </Tooltip>
|
|
71
|
-
// </span>
|
|
72
|
-
// );
|
|
73
|
-
// }
|
|
74
|
-
// },
|
|
75
|
-
// {
|
|
76
|
-
// title: "关键词",
|
|
77
|
-
// fixed: "left",
|
|
78
|
-
// width: 90,
|
|
79
|
-
// key: "dictKey"
|
|
80
|
-
// }
|
|
81
|
-
// ]
|
|
82
|
-
// : [
|
|
83
|
-
{
|
|
84
|
-
title: "状态",
|
|
85
|
-
fixed: "left",
|
|
86
|
-
width: 90,
|
|
87
|
-
key: "page",
|
|
88
|
-
render: (h, { row }) => {
|
|
89
|
-
return h(
|
|
90
|
-
"span",
|
|
91
|
-
{},
|
|
92
|
-
row.page === "common"
|
|
93
|
-
? "全局"
|
|
94
|
-
: row.page === this.name
|
|
95
|
-
? "当前页"
|
|
96
|
-
: "登录页"
|
|
97
|
-
);
|
|
98
|
-
}
|
|
99
|
-
},
|
|
34
|
+
// {
|
|
35
|
+
// title: "状态",
|
|
36
|
+
// fixed: "left",
|
|
37
|
+
// width: 90,
|
|
38
|
+
// key: "page",
|
|
39
|
+
// render: (h, { row }) => {
|
|
40
|
+
// return h(
|
|
41
|
+
// "span",
|
|
42
|
+
// {},
|
|
43
|
+
// row.page === "common"
|
|
44
|
+
// ? "全局"
|
|
45
|
+
// : row.page === this.name
|
|
46
|
+
// ? "当前页"
|
|
47
|
+
// : "登录页"
|
|
48
|
+
// );
|
|
49
|
+
// }
|
|
50
|
+
// },
|
|
100
51
|
{
|
|
101
52
|
title: "关键词",
|
|
102
53
|
fixed: "left",
|
|
@@ -106,7 +57,7 @@ export default {
|
|
|
106
57
|
];
|
|
107
58
|
_.map(this.languages, (lang) => {
|
|
108
59
|
const key = lang.code;
|
|
109
|
-
if (
|
|
60
|
+
if (lang.checked) {
|
|
110
61
|
return arr.push({
|
|
111
62
|
title: lang.name,
|
|
112
63
|
key,
|
|
@@ -119,7 +70,6 @@ export default {
|
|
|
119
70
|
onOnChange={(e) => {
|
|
120
71
|
const value = e.target.value;
|
|
121
72
|
const { dictKey } = row;
|
|
122
|
-
console.log("dictKey", dictKey);
|
|
123
73
|
const findIndex = _.findIndex(this.mySaveData, { dictKey });
|
|
124
74
|
|
|
125
75
|
if (findIndex > -1) {
|
|
@@ -150,6 +100,7 @@ export default {
|
|
|
150
100
|
appCode: String,
|
|
151
101
|
setLanguage: Function,
|
|
152
102
|
token: String,
|
|
103
|
+
baseUrl: String, // 基础URL
|
|
153
104
|
translationKeys: Array,
|
|
154
105
|
loginRouteName: String, // 登录页路由名称
|
|
155
106
|
loginTranslationKeys: Array, // 登录页翻译键
|
|
@@ -163,12 +114,10 @@ export default {
|
|
|
163
114
|
saveLanguageSetting(val) {
|
|
164
115
|
const settings = _.map(
|
|
165
116
|
_.filter(this.languages, (val) => {
|
|
166
|
-
return val.
|
|
117
|
+
return val.checked;
|
|
167
118
|
}),
|
|
168
119
|
"code"
|
|
169
120
|
);
|
|
170
|
-
console.log("settings", settings);
|
|
171
|
-
|
|
172
121
|
store2.set("I18N_LANGUAGE_SETTING", settings);
|
|
173
122
|
},
|
|
174
123
|
handleLanguageSettingOpen() {
|
|
@@ -220,14 +169,15 @@ export default {
|
|
|
220
169
|
Message.error({ content: "没有需要保存的数据" });
|
|
221
170
|
return;
|
|
222
171
|
}
|
|
223
|
-
const res = await saveTranslate(
|
|
224
|
-
|
|
172
|
+
const res = await saveTranslate({
|
|
173
|
+
baseUrl: this.baseUrl,
|
|
174
|
+
data: {
|
|
225
175
|
appCode: this.appCode,
|
|
226
176
|
isLocal: "F",
|
|
227
177
|
data
|
|
228
178
|
},
|
|
229
|
-
this.token
|
|
230
|
-
);
|
|
179
|
+
token: this.token
|
|
180
|
+
});
|
|
231
181
|
if (res && res.data.result === 0) {
|
|
232
182
|
Message.success({ content: msg ? msg : res.data.msg });
|
|
233
183
|
// 更新到本地缓存
|
|
@@ -273,8 +223,9 @@ export default {
|
|
|
273
223
|
},
|
|
274
224
|
async search(data, type) {
|
|
275
225
|
this.loading = true;
|
|
276
|
-
const res = await userDicts(
|
|
277
|
-
|
|
226
|
+
const res = await userDicts({
|
|
227
|
+
baseUrl: this.baseUrl,
|
|
228
|
+
data: {
|
|
278
229
|
appCode: this.appCode,
|
|
279
230
|
searchBlur: this.searchText,
|
|
280
231
|
commaSeparatedLangs: _.map(this.languages, "code").toString(),
|
|
@@ -287,8 +238,8 @@ export default {
|
|
|
287
238
|
pageSize: 10,
|
|
288
239
|
...data
|
|
289
240
|
},
|
|
290
|
-
this.token
|
|
291
|
-
);
|
|
241
|
+
token: this.token
|
|
242
|
+
});
|
|
292
243
|
if (res) {
|
|
293
244
|
this.initialData = _.cloneDeep(res.data.retVal.datas);
|
|
294
245
|
let data = res.data.retVal.datas;
|
|
@@ -312,15 +263,23 @@ export default {
|
|
|
312
263
|
}
|
|
313
264
|
},
|
|
314
265
|
async init() {
|
|
315
|
-
|
|
266
|
+
let settingLanguages = store2.get("I18N_LANGUAGE_SETTING");
|
|
267
|
+
const res = await getLanguages({
|
|
268
|
+
token: this.token,
|
|
269
|
+
baseUrl: this.baseUrl
|
|
270
|
+
});
|
|
316
271
|
if (res && res.data.result == 0) {
|
|
317
272
|
let arr = res.data.retVal;
|
|
273
|
+
if (_.isEmpty(settingLanguages)) {
|
|
274
|
+
settingLanguages = ["zh-CN", "en-US", "zh-TW"];
|
|
275
|
+
}
|
|
318
276
|
_.map(arr, (val) => {
|
|
319
|
-
if (_.includes(
|
|
320
|
-
val.
|
|
277
|
+
if (_.includes(settingLanguages, val.code)) {
|
|
278
|
+
val.checked = true;
|
|
321
279
|
}
|
|
322
280
|
});
|
|
323
281
|
this.languages = arr;
|
|
282
|
+
|
|
324
283
|
this.getPageData();
|
|
325
284
|
} else {
|
|
326
285
|
Message.error("获取语言失败,出错了");
|
|
@@ -421,10 +380,8 @@ export default {
|
|
|
421
380
|
:key="lang.code"
|
|
422
381
|
>
|
|
423
382
|
<Checkbox
|
|
424
|
-
v-model="lang.
|
|
383
|
+
v-model="lang.checked"
|
|
425
384
|
@on-change="saveLanguageSetting"
|
|
426
|
-
:true-value="false"
|
|
427
|
-
:false-value="true"
|
|
428
385
|
>
|
|
429
386
|
<span>{{ lang.name }}</span>
|
|
430
387
|
</Checkbox>
|
package/packages/index.js
CHANGED
|
@@ -51,6 +51,9 @@ export default class I18n {
|
|
|
51
51
|
this.login = login;
|
|
52
52
|
this.loginTranslationKeys = [];
|
|
53
53
|
this.keyboard = keyboard || "shift>t";
|
|
54
|
+
this.baseUrl = options.dev
|
|
55
|
+
? "https://test.ihotel.cn"
|
|
56
|
+
: "https://trans.ihotel.cn";
|
|
54
57
|
// 初始化路由守卫
|
|
55
58
|
this.initRouterGuards();
|
|
56
59
|
|
|
@@ -193,21 +196,6 @@ export default class I18n {
|
|
|
193
196
|
} else {
|
|
194
197
|
return originalT(key, comment);
|
|
195
198
|
}
|
|
196
|
-
// if (routeName) {
|
|
197
|
-
// if (routeTranslation !== routerKey) {
|
|
198
|
-
// return routeTranslation;
|
|
199
|
-
// } else {
|
|
200
|
-
// const commonKey = `common.${key}`;
|
|
201
|
-
// const commonTranslation = originalT(commonKey);
|
|
202
|
-
// if (commonTranslation !== commonKey) {
|
|
203
|
-
// return commonTranslation;
|
|
204
|
-
// } else {
|
|
205
|
-
// return originalT(key, comment);
|
|
206
|
-
// }
|
|
207
|
-
// }
|
|
208
|
-
// } else {
|
|
209
|
-
// return "abc";
|
|
210
|
-
// }
|
|
211
199
|
};
|
|
212
200
|
|
|
213
201
|
globalThis.$deepScan = function (val) {
|
|
@@ -233,6 +221,7 @@ export default class I18n {
|
|
|
233
221
|
return langs;
|
|
234
222
|
} else {
|
|
235
223
|
const res = await getLanguages({
|
|
224
|
+
baseUrl: this.baseUrl,
|
|
236
225
|
appCode: this.appCode,
|
|
237
226
|
token: this.token
|
|
238
227
|
});
|
|
@@ -246,6 +235,7 @@ export default class I18n {
|
|
|
246
235
|
async setLanguage(language) {
|
|
247
236
|
return new Promise(async (resolve, reject) => {
|
|
248
237
|
const res = await getTranslate({
|
|
238
|
+
baseUrl: this.baseUrl,
|
|
249
239
|
appCode: this.appCode,
|
|
250
240
|
language: language ? language : this.locale,
|
|
251
241
|
token: this.token
|
|
@@ -285,6 +275,7 @@ export default class I18n {
|
|
|
285
275
|
loginRouteName: this.loginRouteName, // 登录页路由名称
|
|
286
276
|
loginTranslationKeys: this.loginTranslationKeys,
|
|
287
277
|
login: this.login,
|
|
278
|
+
baseUrl: this.baseUrl, // 基础URL
|
|
288
279
|
emitter // 将事件总线作为 prop 传递
|
|
289
280
|
})
|
|
290
281
|
.use(iview)
|
package/packages/libs/service.js
CHANGED
|
@@ -2,11 +2,10 @@ import axios from "axios";
|
|
|
2
2
|
import store2 from "store2";
|
|
3
3
|
import _ from "lodash-es";
|
|
4
4
|
import { mergeArraysByKey } from "./utils";
|
|
5
|
-
export const service = "https://test.ihotel.cn";
|
|
6
|
-
// export const service = "http://192.168.1.170:2018";
|
|
5
|
+
// export const service = "https://test.ihotel.cn";
|
|
7
6
|
|
|
8
|
-
export const getLanguages = async (token) => {
|
|
9
|
-
return axios.get(
|
|
7
|
+
export const getLanguages = async ({ baseUrl, token }) => {
|
|
8
|
+
return axios.get(baseUrl + "/i18n-web/sysoption/getsupportedlangs", {
|
|
10
9
|
headers: {
|
|
11
10
|
Authorization: token
|
|
12
11
|
}
|
|
@@ -18,10 +17,11 @@ export const fetchTranslate = async ({
|
|
|
18
17
|
language = "zh-CN",
|
|
19
18
|
page,
|
|
20
19
|
lastPullDate,
|
|
20
|
+
baseUrl,
|
|
21
21
|
token
|
|
22
22
|
}) => {
|
|
23
23
|
return new Promise(async (resolve, reject) => {
|
|
24
|
-
const serverURI =
|
|
24
|
+
const serverURI = baseUrl + "/i18n-web/kv_translate/kv_translates";
|
|
25
25
|
const url = lastPullDate
|
|
26
26
|
? serverURI + "?lastPullDate=" + lastPullDate
|
|
27
27
|
: serverURI;
|
|
@@ -43,18 +43,18 @@ export const fetchTranslate = async ({
|
|
|
43
43
|
});
|
|
44
44
|
};
|
|
45
45
|
|
|
46
|
-
export const getAllTranslate = async (data, token) => {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
};
|
|
46
|
+
// export const getAllTranslate = async (data, token) => {
|
|
47
|
+
// return axios({
|
|
48
|
+
// url: service + "/i18n-web/kv_translate/kv_translates",
|
|
49
|
+
// method: "POST",
|
|
50
|
+
// data,
|
|
51
|
+
// headers: { Authorization: token }
|
|
52
|
+
// });
|
|
53
|
+
// };
|
|
54
54
|
|
|
55
|
-
export const userDicts = async (data, token) => {
|
|
55
|
+
export const userDicts = async ({ data, token, baseUrl }) => {
|
|
56
56
|
return axios({
|
|
57
|
-
url:
|
|
57
|
+
url: baseUrl + "/i18n-web/kv_translate/userDicts",
|
|
58
58
|
method: "POST",
|
|
59
59
|
headers: {
|
|
60
60
|
Authorization: token
|
|
@@ -63,9 +63,9 @@ export const userDicts = async (data, token) => {
|
|
|
63
63
|
});
|
|
64
64
|
};
|
|
65
65
|
|
|
66
|
-
export const saveTranslate = async (data, token) => {
|
|
66
|
+
export const saveTranslate = async ({ data, token, baseUrl }) => {
|
|
67
67
|
return axios({
|
|
68
|
-
url:
|
|
68
|
+
url: baseUrl + "/i18n-web/kv_translate/batch",
|
|
69
69
|
method: "POST",
|
|
70
70
|
data,
|
|
71
71
|
headers: {
|
|
@@ -73,11 +73,17 @@ export const saveTranslate = async (data, token) => {
|
|
|
73
73
|
}
|
|
74
74
|
});
|
|
75
75
|
};
|
|
76
|
-
export const getTranslate = async ({
|
|
76
|
+
export const getTranslate = async ({
|
|
77
|
+
baseUrl,
|
|
78
|
+
appCode,
|
|
79
|
+
language = "zh-CN",
|
|
80
|
+
token
|
|
81
|
+
}) => {
|
|
77
82
|
return new Promise(async (resolve, reject) => {
|
|
78
83
|
// const appCodeStore = i18nStore.get(appCode);
|
|
79
84
|
const languageStore = store2.namespace(`I18N_${_.toUpper(appCode)}`);
|
|
80
85
|
const options = {
|
|
86
|
+
baseUrl,
|
|
81
87
|
appCode,
|
|
82
88
|
language,
|
|
83
89
|
token
|