i18n-jsautotranslate 1.0.0 → 3.11.2

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/index.js DELETED
@@ -1,671 +0,0 @@
1
- /* Open source code锛歨ttps://gitee.com/mail_osc/translate */
2
- const translate = {
3
- version: "2.2.3.20230217",
4
- useVersion: "v1",
5
- setUseVersion2: function () {
6
- translate.useVersion = "v2"
7
- },
8
- translate: null,
9
- includedLanguages: "zh-CN,zh-TW,en",
10
- resourcesUrl: "//res.zvo.cn/translate",
11
- selectLanguageTag: {
12
- show: !0,
13
- languages: "",
14
- alreadyRender: !1,
15
- selectOnChange: function (e) {
16
- var t = e.target.value;
17
- translate.changeLanguage(t)
18
- },
19
- render: function () {
20
- if (!translate.selectLanguageTag.alreadyRender && (translate.selectLanguageTag.alreadyRender = !0,
21
- translate.selectLanguageTag.show)) {
22
- if (null == document.getElementById("translate")) {
23
- var e = document.getElementsByTagName("body")[0],
24
- t = document.createElement("div");
25
- t.id = "translate", e.appendChild(t)
26
- } else if (null != document.getElementById("translateSelectLanguage")) return;
27
- translate.request.post(translate.request.api.host + translate.request.api.language + "?v=" +
28
- translate.version, {},
29
- function (e) {
30
- if (0 != e.result) {
31
- var t = function (e) {
32
- translate.selectLanguageTag.selectOnChange(e)
33
- },
34
- a = document.createElement("select");
35
- a.id = "translateSelectLanguage", a.className = "translateSelectLanguage";
36
- for (var n = 0; n < e.list.length; n++) {
37
- var l = document.createElement("option");
38
- if (l.setAttribute("value", e.list[n].id), translate.selectLanguageTag.languages
39
- .length > 0) {
40
- var r = ("," + translate.selectLanguageTag.languages + ",").toLowerCase();
41
- if (console.log(r), r.indexOf("," + e.list[n].id.toLowerCase() + ",") <
42
- 0) continue
43
- }
44
- null != translate.to && void 0 !== translate.to && translate.to.length > 0 ?
45
- translate.to == e.list[n].id && l.setAttribute("selected", "selected") :
46
- e.list[n].id == translate.language.getLocal() && l.setAttribute(
47
- "selected", "selected"), l.appendChild(document.createTextNode(e.list[
48
- n].name)), a.appendChild(l)
49
- }
50
- window.addEventListener ? a.addEventListener("change", t, !1) : a.attachEvent(
51
- "onchange", t), document.getElementById("translate").appendChild(a)
52
- } else console.log("load language list error : " + e.info)
53
- })
54
- }
55
- }
56
- },
57
- localLanguage: "zh-CN",
58
- googleTranslateElementInit: function () {
59
- var e = "";
60
- null != document.getElementById("translate") && (e = "translate"), translate.translate = new google.translate
61
- .TranslateElement({
62
- pageLanguage: "zh-CN",
63
- includedLanguages: translate.selectLanguageTag.languages,
64
- layout: 0
65
- }, e)
66
- },
67
- init: function () {
68
- var e = window.location.protocol;
69
- "file:" == window.location.protocol && (e = "http:"), -1 == this.resourcesUrl.indexOf("://") && (this.resourcesUrl =
70
- e + this.resourcesUrl)
71
- },
72
- execute_v1: function () {
73
- if (null == document.getElementById("translate") && translate.selectLanguageTag.show) {
74
- var e = document.getElementsByTagName("body")[0],
75
- t = document.createElement("div");
76
- t.id = "translate", e.appendChild(t)
77
- }
78
- "" == translate.includedLanguages && (translate.selectLanguageTag.languages = translate.includedLanguages),
79
- console.log(
80
- "translate.js tip: translate.includedLanguages obsolete, please use the translate.selectLanguageTag.languages are set"
81
- );
82
- var a = document.getElementsByTagName("head")[0],
83
- n = document.createElement("script");
84
- n.type = "text/javascript", n.src = this.resourcesUrl + "/js/element.js", a.appendChild(n)
85
- },
86
- setCookie: function (e, t) {
87
- var a = e + "=" + escape(t);
88
- document.cookie = a
89
- },
90
- getCookie: function (e) {
91
- for (var t = document.cookie.split("; "), a = 0; a < t.length; a++) {
92
- var n = t[a].split("=");
93
- if (n[0] == e) return unescape(n[1])
94
- }
95
- return ""
96
- },
97
- currentLanguage: function () {
98
- translate.check();
99
- var e = translate.getCookie("googtrans");
100
- return e.length > 0 ? e.substr(e.lastIndexOf("/") + 1, e.length - 1) : translate.localLanguage
101
- },
102
- changeLanguage: function (e) {
103
- if (
104
- ",en,de,hi,lt,hr,lv,ht,hu,zh-CN,hy,uk,mg,id,ur,mk,ml,mn,af,mr,uz,ms,el,mt,is,it,my,es,et,eu,ar,pt-PT,ja,ne,az,fa,ro,nl,en-GB,no,be,fi,ru,bg,fr,bs,sd,se,si,sk,sl,ga,sn,so,gd,ca,sq,sr,kk,st,km,kn,sv,ko,sw,gl,zh-TW,pt-BR,co,ta,gu,ky,cs,pa,te,tg,th,la,cy,pl,da,tr,"
105
- .indexOf("," + e + ",") > -1) {
106
- translate.check();
107
- var t = "/" + translate.localLanguage + "/" + e,
108
- a = document.location.host.split(".");
109
- if (a.length > 2) {
110
- var n = a[a.length - 2] + "." + a[a.length - 1];
111
- document.cookie = "googtrans=;expires=" + new Date(1) + ";domain=" + n + ";path=/", document.cookie =
112
- "googtrans=" + t + ";domain=" + n + ";path=/"
113
- }
114
- return translate.setCookie("googtrans", "" + t), void location.reload()
115
- }
116
- if (translate.setUseVersion2(), null != translate.to && translate.to.length > 0 && translate.to !=
117
- translate.language.getLocal()) var l = !0;
118
- translate.to = e, translate.storage.set("to", e), l ? location.reload() : translate.execute()
119
- },
120
- check: function () {
121
- "file:" == window.location.protocol && console.log(
122
- "\r\n---WARNING----\r\ntranslate.js 涓诲姩缈昏瘧缁勪欢鑷寮傚父锛屽綋鍓嶅崗璁槸file鍗忚锛岀炕璇戠粍浠惰鍦ㄦ甯哥殑绾夸笂http銆乭ttps鍗忚涓嬫墠鑳芥甯镐娇鐢ㄧ炕璇戝姛鑳絓r\n------------"
123
- )
124
- },
125
- to: "",
126
- autoDiscriminateLocalLanguage: !1,
127
- documents: [],
128
- ignore: {
129
- tag: ["style", "script", "img", "link", "i", "pre", "code"],
130
- class: ["ignore", "translateSelectLanguage"],
131
- id: [],
132
- isIgnore: function (e) {
133
- if (null == e || void 0 === e) return !1;
134
- for (var t = e, a = 100; a-- > 0;) {
135
- if (null == t || void 0 === t) return !1;
136
- var n = translate.element.getNodeName(t).toLowerCase();
137
- if (n.length > 0) {
138
- if ("body" == n || "html" == n || "#document" == n) return !1;
139
- if (translate.ignore.tag.indexOf(n) > -1) return !0
140
- }
141
- if (null != t.className) {
142
- var l = t.className;
143
- if (null == l || "string" != typeof l) continue;
144
- l = l.trim().split(" ");
145
- for (var r = 0; r < l.length; r++)
146
- if (null != l[r] && l[r].trim().length > 0 && translate.ignore.class.indexOf(l[r]) > -1)
147
- return !0
148
- }
149
- if (null != t.id && void 0 !== t.id && translate.ignore.id.indexOf(t.id) > -1) return !0;
150
- t = t.parentNode
151
- }
152
- return !1
153
- }
154
- },
155
- nomenclature: {
156
- data: new Array,
157
- old_Data: [],
158
- set: function (e) {
159
- alert(
160
- "璇峰皢 translate.nomenclature.set 鏇存崲涓� append锛屽叿浣撲娇鐢ㄥ彲鍙傝€冿細 https://github.com/xnx3/translate "
161
- )
162
- },
163
- append: function (e, t, a) {
164
- void 0 === translate.nomenclature.data[e] && (translate.nomenclature.data[e] = new Array), void 0 ===
165
- translate.nomenclature.data[e][t] && (translate.nomenclature.data[e][t] = new Array);
166
- for (var n = a.split("\n"), l = 0; l < n.length; l++) {
167
- var r = n[l].trim();
168
- if (!(r.length < 1)) {
169
- var s = r.split("=");
170
- if (2 == s.length) {
171
- var o = s[0].trim(),
172
- u = s[1].trim();
173
- 0 != o.length && 0 != u.length && (translate.nomenclature.data[e][t][o] = u)
174
- }
175
- }
176
- }
177
- },
178
- get: function () {
179
- return translate.nomenclature.data
180
- },
181
- dispose: function (e) {
182
- if (null == e || 0 == e.length) return e;
183
- if (void 0 === translate.nomenclature.data[translate.language.getLocal()] || void 0 === translate.nomenclature
184
- .data[translate.language.getLocal()][translate.to]) return e;
185
- for (var t in translate.nomenclature.data[translate.language.getLocal()][translate.to]) {
186
- var a = translate.nomenclature.data[translate.language.getLocal()][translate.to][t];
187
- if ("function" != typeof a) {
188
- var n = e.indexOf(t);
189
- if (n > -1)
190
- if ("english" == translate.language.getLocal()) {
191
- var l = "";
192
- if (0 == n);
193
- else if (l = e.substr(n - 1, 1), "english" == translate.language.getCharLanguage(l))
194
- continue;
195
- var r = "";
196
- if (n + t.length == e.length);
197
- else if (r = e.substr(n + t.length, 1), "english" == translate.language.getCharLanguage(
198
- r)) continue;
199
- e = e.replace(new RegExp(l + t + r, "g"), l + a + r)
200
- } else e = e.replace(new RegExp(t, "g"), a)
201
- }
202
- }
203
- return e
204
- }
205
- },
206
- setAutoDiscriminateLocalLanguage: function () {
207
- translate.autoDiscriminateLocalLanguage = !0
208
- },
209
- nodeQueue: {},
210
- setDocuments: function (e) {
211
- null != e && void 0 !== e && (void 0 === e.length ? translate.documents[0] = e : translate.documents =
212
- e, translate.nodeQueue = {}, console.log("set documents , clear translate.nodeQueue"))
213
- },
214
- getDocuments: function () {
215
- return null != translate.documents && void 0 !== translate.documents && translate.documents.length > 0 ?
216
- translate.documents : document.all
217
- },
218
- listener: {
219
- isExecuteFinish: !1,
220
- isStart: !1,
221
- start: function () {
222
- translate.temp_linstenerStartInterval = setInterval(function () {
223
- "complete" == document.readyState && (clearInterval(translate.temp_linstenerStartInterval),
224
- translate.listener.addListener())
225
- }, 50)
226
- },
227
- addListener: function () {
228
- translate.listener.isStart = !0;
229
- const e = {
230
- attributes: !0,
231
- childList: !0,
232
- subtree: !0
233
- },
234
- t = new MutationObserver(function (e, t) {
235
- var a = [];
236
- for (let t of e) "childList" === t.type && t.addedNodes.length > 0 && a.push.apply(a, t
237
- .addedNodes);
238
- a.length > 0 && translate.execute(a)
239
- });
240
- for (var a = translate.getDocuments(), n = 0; n < a.length; n++) {
241
- var l = a[n];
242
- null != l && t.observe(l, e)
243
- }
244
- },
245
- renderTaskFinish: function (e) { }
246
- },
247
- renderTask: class {
248
- constructor() {
249
- this.taskQueue = [], this.nodes = []
250
- }
251
- add(e, t, a) {
252
- var n = translate.element.nodeAnalyse.get(e),
253
- l = translate.util.hash(n.text);
254
- void 0 === this.nodes[l] && (this.nodes[l] = new Array), this.nodes[l].push(e);
255
- var r = this.taskQueue[l];
256
- null != r && void 0 !== r || (r = new Array);
257
- var s = new Array;
258
- s.originalText = t, s.resultText = a, r.push(s), this.taskQueue[l] = r
259
- }
260
- execute() {
261
- for (var e in this.taskQueue) {
262
- "function" != typeof (t = this.taskQueue[e]) && (this.taskQueue[e] = t)
263
- }
264
- for (var e in this.nodes)
265
- for (var t = this.taskQueue[e], a = 0; a < this.nodes[e].length; a++)
266
- for (var n = 0; n < t.length; n++) {
267
- var l = t[n];
268
- "function" != typeof t && translate.element.nodeAnalyse.set(this.nodes[e][n], l.originalText,
269
- l.resultText)
270
- }
271
- void 0 !== this.taskQueue && this.taskQueue.length > 0 && translate.listener.renderTaskFinish(
272
- this)
273
- }
274
- },
275
- execute: function (e) {
276
- if ("undefined" != typeof doc && (translate.useVersion = "v2"), "v1" != translate.useVersion) {
277
- var t = translate.util.uuid();
278
- if (translate.nodeQueue[t] = new Array, translate.nodeQueue[t].expireTime = Date.now() + 12e4,
279
- translate.nodeQueue[t].list = new Array, null == translate.to || "" == translate.to) {
280
- var a = translate.storage.get("to");
281
- null != a && void 0 !== a && a.length > 0 && (translate.to = a)
282
- }
283
- try {
284
- translate.selectLanguageTag.render()
285
- } catch (e) {
286
- console.log(e)
287
- }
288
- if (null != translate.to && void 0 !== translate.to && 0 != translate.to.length) {
289
- if (translate.to != translate.language.getLocal()) {
290
- var n;
291
- if (void 0 !== e) {
292
- if (null == e) return void cnosole.log(
293
- "translate.execute(...) 涓紶鍏ョ殑瑕佺炕璇戠殑鐩爣鍖哄煙涓嶅瓨鍦ㄣ€�");
294
- void 0 === e.length ? (n = new Array)[0] = e : n = e
295
- } else n = translate.getDocuments();
296
- for (var l = 0; l < n.length & l < 20; l++) {
297
- var r = n[l];
298
- translate.element.whileNodes(t, r)
299
- }
300
- var s = {},
301
- o = {};
302
- for (var u in translate.nodeQueue[t].list) {
303
- if (null == u || void 0 === u || 0 == u.length || "undefined" == u) continue;
304
- s[u] = [], o[u] = [];
305
- let e = new translate.renderTask;
306
- for (var i in translate.nodeQueue[t].list[u])
307
- if ("function" != typeof translate.nodeQueue[t].list[u][i]) {
308
- var g = translate.nodeQueue[t].list[u][i].original,
309
- c = translate.nodeQueue[t].list[u][i].translateText,
310
- d = g == c ? i : translate.util.hash(c);
311
- translate.nodeQueue[t].list[u][i].cacheHash = d;
312
- var f = translate.storage.get("hash_" + translate.to + "_" + d);
313
- if (null != f && f.length > 0)
314
- for (var h = 0; h < translate.nodeQueue[t].list[u][i].nodes.length; h++) e.add(
315
- translate.nodeQueue[t].list[u][i].nodes[h], g, translate.nodeQueue[
316
- t].list[u][i].beforeText + f + translate.nodeQueue[t].list[u][i]
317
- .afterText);
318
- else s[u].push(c), o[u].push(i)
319
- } e.execute()
320
- }
321
- var v = [];
322
- for (var u in translate.nodeQueue[t].list) s[u].length < 1 || v.push(u);
323
- if (translate.listener.isExecuteFinish || (translate.temp_executeFinishNumber = 0,
324
- translate.temp_executeFinishInterval = setInterval(function () {
325
- translate.temp_executeFinishNumber == v.length && (translate.listener.isExecuteFinish = !
326
- 0, clearInterval(translate.temp_executeFinishInterval))
327
- }, 50)), 0 != v.length)
328
- for (var p in v) {
329
- u = v[p];
330
- if (void 0 === s[u] || s[u].length < 1) return;
331
- var m = translate.request.api.host + translate.request.api.translate + "?v=" +
332
- translate.version,
333
- x = {
334
- from: u,
335
- to: translate.to,
336
- text: encodeURIComponent(JSON.stringify(s[u]))
337
- };
338
- translate.request.post(m, x, function (e) {
339
- if (0 == e.result) return console.log("=======ERROR START======="),
340
- console.log(s[e.from]), console.log("response : " + e.info),
341
- console.log("=======ERROR END ======="), void translate.temp_executeFinishNumber++;
342
- let a = new translate.renderTask;
343
- for (var n = 0; n < o[e.from].length; n++) {
344
- var l = e.from,
345
- r = e.text[n],
346
- u = o[e.from][n],
347
- i = translate.nodeQueue[t].list[l][u].cacheHash,
348
- g = "";
349
- try {
350
- g = translate.nodeQueue[t].list[l][u].original
351
- } catch (e) {
352
- console.log("uuid:" + t + ", originalWord:" + g + ", lang:" + l +
353
- ", hash:" + u + ", text:" + r + ", queue:" + translate.nodeQueue[
354
- t]), console.log(e);
355
- continue
356
- }
357
- for (var c = 0; c < translate.nodeQueue[t].list[l][u].nodes.length; c++)
358
- a.add(translate.nodeQueue[t].list[l][u].nodes[c], g, translate.nodeQueue[
359
- t].list[l][u].beforeText + r + translate.nodeQueue[t].list[
360
- l][u].afterText);
361
- translate.storage.set("hash_" + e.to + "_" + i, r)
362
- }
363
- a.execute(), translate.temp_executeFinishNumber++
364
- })
365
- }
366
- }
367
- } else translate.autoDiscriminateLocalLanguage && translate.executeByLocalLanguage()
368
- } else translate.execute_v1()
369
- },
370
- element: {
371
- nodeAnalyse: {
372
- get: function (e) {
373
- return translate.element.nodeAnalyse.analyse(e, "", "")
374
- },
375
- set: function (e, t, a) {
376
- translate.element.nodeAnalyse.analyse(e, t, a)
377
- },
378
- analyse: function (e, t, a) {
379
- var n = new Array;
380
- n.node = e, n.text = "";
381
- var l = translate.element.getNodeName(e);
382
- "#text" == l && (void 0 !== e.parentNode && "TEXTAREA" == translate.element.getNodeName(e.parentNode) &&
383
- (l = "TEXTAREA", e = e.parentNode));
384
- if ("INPUT" == l || "TEXTAREA" == l) {
385
- if (null == e.attributes || void 0 === e.attributes) return n.text = "", n;
386
- if ("INPUT" == l && void 0 !== e.attributes.type && null != typeof e.attributes.type.nodeValue &&
387
- ("button" == e.attributes.type.nodeValue.toLowerCase() || "submit" == e.attributes.type
388
- .nodeValue.toLowerCase())) {
389
- var r = e.attributes.value;
390
- if (null != r && void 0 !== r && void 0 !== r.nodeValue && r.nodeValue.length > 0)
391
- return void 0 !== t && t.length > 0 && (r.nodeValue = r.nodeValue.replace(new RegExp(
392
- translate.util.regExp.pattern(t), "g"), translate.util.regExp.resultText(
393
- a))), n.text = r.nodeValue, n.node = r, n
394
- }
395
- return void 0 !== e.attributes.placeholder ? (void 0 !== t && t.length > 0 && (e.attributes
396
- .placeholder.nodeValue = e.attributes.placeholder.nodeValue.replace(new RegExp(
397
- translate.util.regExp.pattern(t), "g"), translate.util.regExp.resultText(
398
- a))), n.text = e.attributes.placeholder.nodeValue, n.node = e.attributes.placeholder,
399
- n) : (n.text = "", n)
400
- }
401
- if ("META" == l) {
402
- if (void 0 !== e.name && null != e.name) {
403
- var s = e.name.toLowerCase();
404
- if ("keywords" == s || "description" == s) return void 0 !== t && t.length > 0 && (e.content =
405
- e.content.replace(new RegExp(translate.util.regExp.pattern(t), "g"),
406
- translate.util.regExp.resultText(a))), n.text = e.content, n
407
- }
408
- return n.text = "", n
409
- }
410
- return "IMG" == l ? void 0 === e.alt || null == e.alt ? (n.text = "", n) : (void 0 !== t && t.length >
411
- 0 && (e.alt = e.alt.replace(new RegExp(translate.util.regExp.pattern(t), "g"),
412
- translate.util.regExp.resultText(a))), n.text = e.alt, n) : (null == e.nodeValue ||
413
- void 0 === e.nodeValue ? n.text = "" : 0 == e.nodeValue.trim().length ? n.text = "" : (
414
- void 0 !== t && t.length > 0 && (e.nodeValue = e.nodeValue.replace(new RegExp(
415
- translate.util.regExp.pattern(t), "g"), translate.util.regExp.resultText(
416
- a))), n.text = e.nodeValue), n)
417
- }
418
- },
419
- getNodeName: function (e) {
420
- return null == e || void 0 === e ? "" : null == e.nodeName || void 0 === e.nodeName ? "" : e.nodeName
421
- },
422
- whileNodes: function (e, t) {
423
- if (null != t && void 0 !== t) {
424
- var a = t.childNodes;
425
- if (a.length > 0)
426
- for (var n = 0; n < a.length; n++) translate.element.whileNodes(e, a[n]);
427
- else translate.element.findNode(e, t)
428
- }
429
- },
430
- findNode: function (e, t) {
431
- if (null != t && void 0 !== t && null != t.parentNode) {
432
- var a = translate.element.getNodeName(t.parentNode);
433
- if ("" != a && !(translate.ignore.tag.indexOf(a.toLowerCase()) > -1)) {
434
- for (var n = !1, l = t.parentNode; t != l && null != l;) null != l.className && translate.ignore
435
- .class.indexOf(l.className) > -1 && (n = !0), l = l.parentNode;
436
- if (!n && !translate.ignore.isIgnore(t)) {
437
- var r = translate.element.nodeAnalyse.get(t);
438
- r.text.length > 0 && translate.addNodeToQueue(e, r.node, r.text)
439
- }
440
- }
441
- }
442
- }
443
- },
444
- addNodeToQueue: function (e, t, a) {
445
- if (null != t && null != a && 0 != a.length && "#comment" != translate.element.getNodeName(t).toLowerCase()) {
446
- translate.util.hash(a);
447
- if (translate.util.findTag(a)) {
448
- if (null == t.parentNode) return;
449
- var n = translate.element.getNodeName(t.parentNode);
450
- if ("SCRIPT" == n || "STYLE" == n) return
451
- }
452
- var l = translate.language.get(a);
453
- for (var r in void 0 !== l[translate.to] && delete l[translate.to], l) {
454
- null != translate.nodeQueue[e].list[r] && void 0 !== translate.nodeQueue[e].list[r] || (
455
- translate.nodeQueue[e].list[r] = new Array);
456
- for (var s = 0; s < l[r].length; s++)
457
- if (void 0 !== l[r][s] && void 0 !== l[r][s].text) {
458
- var o = l[r][s].text,
459
- u = l[r][s].beforeText,
460
- i = l[r][s].afterText,
461
- g = translate.util.hash(o);
462
- if (null != translate.nodeQueue[e].list[r][g] && void 0 !== translate.nodeQueue[e].list[
463
- r][g] || (translate.nodeQueue[e].list[r][g] = new Array, translate.nodeQueue[e]
464
- .list[r][g].nodes = new Array, translate.nodeQueue[e].list[r][g].original = o,
465
- translate.nodeQueue[e].list[r][g].translateText = translate.nomenclature.dispose(
466
- o), translate.nodeQueue[e].list[r][g].beforeText = u, translate.nodeQueue[e]
467
- .list[r][g].afterText = i), void 0 !== t.isSameNode)
468
- for (var c = 0; c < translate.nodeQueue[e].list[r][g].nodes.length; c++)
469
- if (t.isSameNode(translate.nodeQueue[e].list[r][g].nodes[c])) return;
470
- translate.nodeQueue[e].list[r][g].nodes[translate.nodeQueue[e].list[r][g].nodes.length] =
471
- t
472
- }
473
- }
474
- }
475
- },
476
- language: {
477
- local: "",
478
- setLocal: function (e) {
479
- translate.setUseVersion2(), translate.language.local = e
480
- },
481
- getLocal: function () {
482
- return (null == translate.language.local || translate.language.local.length < 1) && translate.language
483
- .autoRecognitionLocalLanguage(), translate.language.local
484
- },
485
- autoRecognitionLocalLanguage: function () {
486
- if (!(null != translate.language.local && translate.language.local.length > 2)) {
487
- var e = document.body.outerText;
488
- if (null == e || void 0 === e || e.length < 1) translate.language.local = "chinese_simplified";
489
- else {
490
- e = e.replace(/\n|\t|\r/g, "");
491
- for (var t = new Array, a = 0; a < e.length; a++) {
492
- var n = e.charAt(a),
493
- l = translate.language.getCharLanguage(n);
494
- "" == l && (l = "unidentification"), t.push(l)
495
- }
496
- var r = translate.util.arrayFindMaxNumber(t),
497
- s = r.indexOf("specialCharacter");
498
- s > -1 && r.splice(s, 1), r.length > 0 ? translate.language.local = r[0] : translate.language
499
- .local = "chinese_simplified"
500
- }
501
- }
502
- },
503
- get: function (e) {
504
- for (var t = new Array, a = new Array, n = [], l = [], r = 0; r < e.length; r++) {
505
- var s = e.charAt(r),
506
- o = translate.language.getCharLanguage(s);
507
- "" == o && (o = "unidentification");
508
- var u = translate.language.analyse(o, a, n, l, s);
509
- a = u.langStrs, void 0 !== n.language && (l.language = n.language, l.charstr = n.charstr, l.storage_language =
510
- n.storage_language), n.language = u.storage_language, n.charstr = s, n.storage_language =
511
- u.storage_language, t.push(o)
512
- }
513
- return void 0 !== a.unidentification && delete a.unidentification, void 0 !== a.specialCharacter &&
514
- delete a.specialCharacter, void 0 !== a.number && delete a.number, a
515
- },
516
- getCharLanguage: function (e) {
517
- return null == e || void 0 === e ? "" : this.english(e) ? "english" : this.specialCharacter(e) ?
518
- "specialCharacter" : this.number(e) ? "number" : this.chinese_simplified(e) ?
519
- "chinese_simplified" : this.japanese(e) ? "japanese" : this.korean(e) ? "korean" : (console.log(
520
- "not find is language , char : " + e + ", unicode: " + e.charCodeAt(0).toString(16)),
521
- "")
522
- },
523
- analyse: function (e, t, a, n, l) {
524
- void 0 === t[e] && (t[e] = new Array);
525
- var r = 0;
526
- void 0 === a.storage_language || (translate.language.connector(l) && (e = a.storage_language), r =
527
- a.storage_language == e ? t[e].length - 1 : t[e].length), void 0 === t[e][r] && (t[e][r] =
528
- new Array, t[e][r].beforeText = "", t[e][r].afterText = "", t[e][r].text = ""), t[e][r].text =
529
- t[e][r].text + l, "english" != translate.language.getLocal() && "english" == translate.to &&
530
- null != a.storage_language && void 0 !== a.storage_language && a.storage_language.length > 0 &&
531
- "specialCharacter" != a.storage_language && ("english" != a.storage_language && "english" == e ?
532
- t[a.storage_language][t[a.storage_language].length - 1].afterText = " " : "english" == a.storage_language &&
533
- "english" != e && (t[e][r].beforeText = " "));
534
- var s = new Array;
535
- return s.langStrs = t, s.storage_language = e, s
536
- },
537
- connector: function (e) {
538
- return !!/.*[\u0020\u00A0\u202F\u205F\u3000]+.*$/.test(e) || (!!/.*[\u0030-\u0039]+.*$/.test(e) ||
539
- (!!
540
- /.*[\u0021\u0022\u0023\u0024\u0025\u0026\u0027\u002C\u002D\u002E\u003A\u003B\u003F\u0040]+.*$/
541
- .test(e) || !!
542
- /.*[\u3002\uFF1F\uFF01\uFF0C\u3001\uFF1B\uFF1A\u300C\u300D\u300E\u300F\u2018\u2019\u201C\u201D\uFF08\uFF09\u3014\u3015\u3010\u3011\u2014\u2026\u2013\uFF0E\u300A\u300B\u3008\u3009\u00b7]+.*$/
543
- .test(e)))
544
- },
545
- chinese_simplified: function (e) {
546
- return !!/.*[\u4e00-\u9fa5]+.*$/.test(e)
547
- },
548
- english: function (e) {
549
- return !!/.*[\u0041-\u005a]+.*$/.test(e) || !!/.*[\u0061-\u007a]+.*$/.test(e)
550
- },
551
- japanese: function (e) {
552
- return !!/.*[\u0800-\u4e00]+.*$/.test(e)
553
- },
554
- korean: function (e) {
555
- return !!/.*[\uAC00-\uD7AF]+.*$/.test(e)
556
- },
557
- number: function (e) {
558
- return !!/.*[\u0030-\u0039]+.*$/.test(e)
559
- },
560
- specialCharacter: function (e) {
561
- return !!/.*[\u2460-\u24E9]+.*$/.test(e) || (!!/.*[\u2500-\u25FF]+.*$/.test(e) || (!!
562
- /.*[\u3200-\u33FF]+.*$/.test(e) || (!!/.*[\uFF00-\uFF5E]+.*$/.test(e) || (!!
563
- /.*[\u2000-\u22FF]+.*$/.test(e) || (!!/.*[\u3001-\u3036]+.*$/.test(e) || (!!
564
- /.*[\u0020-\u002F]+.*$/.test(e) || (!!/.*[\u003A-\u007E]+.*$/.test(e) ||
565
- (!!
566
- /.*[\u0009\u000a\u0020\u00A0\u1680\u180E\u202F\u205F\u3000\uFEFF]+.*$/
567
- .test(e) || (!!/.*[\u2000-\u200B]+.*$/.test(e) || (!!
568
- /.*[\u00A1-\u0105]+.*$/.test(e) || !!
569
- /.*[\u2C60-\u2C77]+.*$/.test(e)))))))))))
570
- }
571
- },
572
- executeByLocalLanguage: function () {
573
- translate.request.post(translate.request.api.host + translate.request.api.ip + "?v=" + translate.version, {},
574
- function (e) {
575
- 0 == e.result ? (console.log("==== ERROR 鑾峰彇褰撳墠鐢ㄦ埛鎵€鍦ㄥ尯鍩熷紓甯� ===="), console.log(e.info),
576
- console.log("==== ERROR END ====")) : (translate.setUseVersion2(), translate.storage
577
- .set("to", e.language), translate.to = e.language, translate.selectLanguageTag,
578
- translate.execute())
579
- })
580
- },
581
- util: {
582
- uuid: function () {
583
- var e = (new Date).getTime();
584
- return window.performance && "function" == typeof window.performance.now && (e += performance.now()),
585
- "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx".replace(/[xy]/g, function (t) {
586
- var a = (e + 16 * Math.random()) % 16 | 0;
587
- return e = Math.floor(e / 16), ("x" == t ? a : 3 & a | 8).toString(16)
588
- })
589
- },
590
- findTag: function (e) {
591
- return /<[^>]+>/g.test(e)
592
- },
593
- arrayFindMaxNumber: function (e) {
594
- for (var t = {}, a = [], n = 0, l = 0, r = e.length; l < r; l++) t[e[l]] ? t[e[l]]++ : t[e[l]] = 1,
595
- t[e[l]] > n && (n = t[e[l]]);
596
- for (var s in t) t[s] === n && a.push(s);
597
- return a
598
- },
599
- hash: function (e) {
600
- if (null == e || void 0 === e) return e;
601
- var t, a = 0;
602
- if (0 === e.length) return a;
603
- for (t = 0; t < e.length; t++) a = (a << 5) - a + e.charCodeAt(t), a |= 0;
604
- return a + ""
605
- },
606
- charReplace: function (e) {
607
- return null == e ? "" : e = (e = e.trim()).replace(/\t|\n|\v|\r|\f/g, "")
608
- },
609
- regExp: {
610
- pattern: function (e) {
611
- return e = (e = e.replace(/\"/g, '\\"')).replace(/\?/g, "\\?")
612
- },
613
- resultText: function (e) {
614
- return e
615
- }
616
- }
617
- },
618
- request: {
619
- api: {
620
- host: "https://api.translate.zvo.cn/",
621
- language: "language.json",
622
- translate: "translate.json",
623
- ip: "ip.json"
624
- },
625
- post: function (e, t, a) {
626
- this.send(e, t, a, "post", !0, {
627
- "content-type": "application/x-www-form-urlencoded"
628
- }, null)
629
- },
630
- send: function (e, t, a, n, l, r, s) {
631
- var o = "";
632
- if (null != t)
633
- for (var u in t) o.length > 0 && (o += "&"), o = o + u + "=" + t[u];
634
- var i = null;
635
- try {
636
- i = new XMLHttpRequest
637
- } catch (e) {
638
- i = new ActiveXObject("Microsoft.XMLHTTP")
639
- }
640
- if (i.open(n, e, l), null != r)
641
- for (var u in r) i.setRequestHeader(u, r[u]);
642
- i.send(o), i.onreadystatechange = function () {
643
- if (4 == i.readyState)
644
- if (200 == i.status) {
645
- var e = null;
646
- try {
647
- e = JSON.parse(i.responseText)
648
- } catch (e) {
649
- console.log(e)
650
- }
651
- a(null == e ? i.responseText : e)
652
- } else null != s && s(i)
653
- }
654
- }
655
- },
656
- storage: {
657
- set: function (e, t) {
658
- localStorage.setItem(e, t)
659
- },
660
- get: function (e) {
661
- return localStorage.getItem(e)
662
- }
663
- }
664
- };
665
- try {
666
- translate.init()
667
- } catch (e) {
668
- console.log(e)
669
- }
670
-
671
- export default translate