i18n-jsautotranslate 3.15.0 → 3.15.5
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 +52 -12
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -14,7 +14,7 @@ var translate = {
|
|
|
14
14
|
* 格式:major.minor.patch.date
|
|
15
15
|
*/
|
|
16
16
|
// AUTO_VERSION_START
|
|
17
|
-
version: '3.15.
|
|
17
|
+
version: '3.15.5.20250517',
|
|
18
18
|
// AUTO_VERSION_END
|
|
19
19
|
/*
|
|
20
20
|
当前使用的版本,默认使用v2. 可使用 setUseVersion2();
|
|
@@ -336,6 +336,22 @@ var translate = {
|
|
|
336
336
|
|
|
337
337
|
translate.to = languageName;
|
|
338
338
|
translate.storage.set('to',languageName); //设置目标翻译语言
|
|
339
|
+
|
|
340
|
+
/*
|
|
341
|
+
1. 先触发父级,免得当前刷新了,导致父级不执行翻译了
|
|
342
|
+
*/
|
|
343
|
+
//检测当前是否处于iframe中,如果当前是在iframe中,有父级页面,也要触发父级进行翻译
|
|
344
|
+
try{
|
|
345
|
+
if(window.self !== window.top){
|
|
346
|
+
if(typeof(window.parent.translate) == 'object' && typeof(window.parent.translate.version) == 'string'){
|
|
347
|
+
//iframe页面中存在 translate,那么也控制iframe中的进行翻译
|
|
348
|
+
window.parent.translate.changeLanguage(languageName);
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
}catch(e){
|
|
352
|
+
//增加try,避免异常导致无法用
|
|
353
|
+
console.log(e);
|
|
354
|
+
}
|
|
339
355
|
|
|
340
356
|
if(isReload){
|
|
341
357
|
location.reload(); //刷新页面
|
|
@@ -351,7 +367,11 @@ var translate = {
|
|
|
351
367
|
const iframeWindow = iframe.contentWindow;
|
|
352
368
|
if(typeof(iframeWindow.translate) == 'object' && typeof(iframeWindow.translate.version) == 'string'){
|
|
353
369
|
//iframe页面中存在 translate,那么也控制iframe中的进行翻译
|
|
354
|
-
iframeWindow.translate.
|
|
370
|
+
if(iframeWindow.translate.to != languageName){
|
|
371
|
+
iframeWindow.translate.to = languageName;
|
|
372
|
+
iframeWindow.translate.storage.set('to',languageName); //设置目标翻译语言
|
|
373
|
+
iframeWindow.translate.execute();
|
|
374
|
+
}
|
|
355
375
|
}
|
|
356
376
|
}
|
|
357
377
|
}
|
|
@@ -2902,7 +2922,7 @@ var translate = {
|
|
|
2902
2922
|
}
|
|
2903
2923
|
}
|
|
2904
2924
|
|
|
2905
|
-
console.log(textArray);
|
|
2925
|
+
//console.log(textArray);
|
|
2906
2926
|
return textArray;
|
|
2907
2927
|
},
|
|
2908
2928
|
|
|
@@ -3617,6 +3637,8 @@ var translate = {
|
|
|
3617
3637
|
thai 泰语
|
|
3618
3638
|
arabic 阿拉伯语
|
|
3619
3639
|
romanian 罗马尼亚语
|
|
3640
|
+
hebrew 希伯来语
|
|
3641
|
+
|
|
3620
3642
|
*/
|
|
3621
3643
|
getCharLanguage:function(charstr){
|
|
3622
3644
|
if(charstr == null || typeof(charstr) == 'undefined'){
|
|
@@ -3665,6 +3687,9 @@ var translate = {
|
|
|
3665
3687
|
if(this.romanian(charstr)){
|
|
3666
3688
|
return 'romanian';
|
|
3667
3689
|
}
|
|
3690
|
+
if(this.hebrew(charstr)){
|
|
3691
|
+
return 'hebrew';
|
|
3692
|
+
}
|
|
3668
3693
|
//未识别是什么语种
|
|
3669
3694
|
//console.log('not find is language , char : '+charstr+', unicode: '+charstr.charCodeAt(0).toString(16));
|
|
3670
3695
|
return '';
|
|
@@ -4032,6 +4057,10 @@ var translate = {
|
|
|
4032
4057
|
return false;
|
|
4033
4058
|
}
|
|
4034
4059
|
},
|
|
4060
|
+
//希伯来语
|
|
4061
|
+
hebrew:function(str){
|
|
4062
|
+
return /[\u0590-\u05FF]/u.test(str);
|
|
4063
|
+
},
|
|
4035
4064
|
//0-9 阿拉伯数字
|
|
4036
4065
|
number:function(str){
|
|
4037
4066
|
if(/.*[\u0030-\u0039]+.*$/.test(str)){
|
|
@@ -4974,15 +5003,17 @@ var translate = {
|
|
|
4974
5003
|
//机器翻译采用哪种翻译服务
|
|
4975
5004
|
service:{
|
|
4976
5005
|
/*
|
|
4977
|
-
name
|
|
4978
|
-
translate.service 有 http://translate.zvo.cn/41160.html 提供机器翻译服务
|
|
4979
|
-
client.edge 有edge浏览器接口提供翻译服务 ,也就是执行翻译时直接是
|
|
4980
|
-
|
|
5006
|
+
name填写的值,参考 translate.service.use 的注释
|
|
4981
5007
|
*/
|
|
4982
5008
|
name:'translate.service',
|
|
4983
5009
|
|
|
4984
5010
|
/*
|
|
4985
5011
|
其实就是设置 translate.service.name
|
|
5012
|
+
可以设置为:
|
|
5013
|
+
|
|
5014
|
+
translate.service 自行部署的translate.service 翻译API服务,部署参考: https://translate.zvo.cn/391129.html
|
|
5015
|
+
client.edge 使用无服务器的翻译,有edge浏览器接口提供翻译服务
|
|
5016
|
+
siliconflow 使用指点云提供的服务器、硅基流动提供的AI算力进行大模型翻译
|
|
4986
5017
|
|
|
4987
5018
|
*/
|
|
4988
5019
|
use: function(serviceName){
|
|
@@ -4990,11 +5021,17 @@ var translate = {
|
|
|
4990
5021
|
console.log('您已启用了企业级翻译通道 translate.enterprise.use(); (文档:https://translate.zvo.cn/4087.html) , 所以您设置的 translate.service.use(\''+serviceName+'\'); (文档:https://translate.zvo.cn/4081.html) 将失效不起作用,有企业级翻译通道全部接管。');
|
|
4991
5022
|
return;
|
|
4992
5023
|
}
|
|
4993
|
-
if(typeof(serviceName) == 'string'
|
|
5024
|
+
if(typeof(serviceName) == 'string'){
|
|
4994
5025
|
translate.service.name = serviceName;
|
|
5026
|
+
if(serviceName != 'translate.service'){
|
|
5027
|
+
if(serviceName == 'siliconflow'){
|
|
5028
|
+
//设定翻译接口为硅基流动的
|
|
5029
|
+
translate.request.api.host=['https://siliconflow.zvo.cn/','https://america.api.translate.zvo.cn:1414/','https://deutsch.enterprise.api.translate.zvo.cn:1414/'];
|
|
5030
|
+
}
|
|
4995
5031
|
|
|
4996
|
-
|
|
4997
|
-
|
|
5032
|
+
//增加元素整体翻译能力
|
|
5033
|
+
translate.whole.enableAll();
|
|
5034
|
+
}
|
|
4998
5035
|
}
|
|
4999
5036
|
},
|
|
5000
5037
|
//客户端方式的edge提供机器翻译服务
|
|
@@ -5034,7 +5071,10 @@ var translate = {
|
|
|
5034
5071
|
let translateTextArray = translate.util.split(textArray, 40000, 900);
|
|
5035
5072
|
|
|
5036
5073
|
translate.request.send(translate.service.edge.api.auth, {}, function(auth){
|
|
5037
|
-
var from =
|
|
5074
|
+
var from = data.from;
|
|
5075
|
+
if(from != 'auto'){
|
|
5076
|
+
from = translate.service.edge.language.getMap()[data.from];
|
|
5077
|
+
}
|
|
5038
5078
|
var to = translate.service.edge.language.getMap()[data.to];
|
|
5039
5079
|
var transUrl = translate.service.edge.api.translate.replace('{from}',from).replace('{to}',to);
|
|
5040
5080
|
|
|
@@ -6337,7 +6377,7 @@ var translate = {
|
|
|
6337
6377
|
//console.log(JSON.stringify(kvs, null, 2));
|
|
6338
6378
|
|
|
6339
6379
|
/**** 第二步,将文本值进行翻译 ***/
|
|
6340
|
-
|
|
6380
|
+
//先将其 kvs 的key 取出来
|
|
6341
6381
|
var texts = new Array();
|
|
6342
6382
|
for (const key in kvs) {
|
|
6343
6383
|
texts.push(key);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "i18n-jsautotranslate",
|
|
3
|
-
"version": "3.15.
|
|
3
|
+
"version": "3.15.5",
|
|
4
4
|
"description": "Two lines of js realize automatic html translation. No need to change the page, no language configuration file, no API key, SEO friendly!",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|