i18n-jsautotranslate 3.15.1 → 3.15.6
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/README.md +2 -0
- package/index.js +51 -11
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -34,6 +34,8 @@
|
|
|
34
34
|
|
|
35
35
|
|
|
36
36
|
# 微调指令
|
|
37
|
+
它有丰富的扩展指令,让你可以对翻译进行极其精准的各种自定义控制。
|
|
38
|
+
|
|
37
39
|
* **[设置默认翻译为的语种](http://translate.zvo.cn/4071.html)**,用户第一次打开时,默认以什么语种显示。
|
|
38
40
|
* **[自定义翻译术语](http://translate.zvo.cn/41555.html)**,如果你感觉某些翻译不太符合你的预期,可进行针对性的定义某些词或句子的翻译结果,进行自定义术语库
|
|
39
41
|
* **[翻译完后自动触发执行](http://translate.zvo.cn/4069.html)**,当翻译完成后会自动触发执行您的某个方法,以便您来做自定义扩展。
|
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.6.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
|
}
|
|
@@ -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.6",
|
|
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": {
|