i18n-jsautotranslate 3.11.11 → 3.12.0

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 CHANGED
@@ -104,6 +104,9 @@ translate.execute();//进行翻译
104
104
 
105
105
 
106
106
  # 使用示例
107
+
108
+ ## 在浏览器使用
109
+
107
110
  **普通网站中点击某个语言进行切换**
108
111
  如下图所示,网站中的某个位置要有几种语言切换
109
112
  ![](http://cdn.weiunity.com/site/341/news/43b838ea6ad041898037eaaaf5802776.png)
@@ -126,6 +129,24 @@ translate.execute();//进行翻译
126
129
  </script>
127
130
  ````
128
131
 
132
+ ## 在 NPM 中使用
133
+
134
+ 1. Install
135
+
136
+ ```bash
137
+ npm i i18n-jsautotranslate
138
+ ```
139
+
140
+ 2. Import
141
+
142
+ ```javascript
143
+ import translate from 'i18n-jsautotranslate'
144
+ /* Or */
145
+ const translate = require("i18n-jsautotranslate")
146
+ ```
147
+
148
+ [Vue2 中使用 translate.js 在线 Demo](https://lruihao.github.io/vue-el-demo/#/translate-js)
149
+
129
150
  # 谁在使用
130
151
  截止 2023.7 月份时,本项目的后端免费翻译服务的请求量就已经达到了 1.5亿次/月 的规模,并且还在非常快速的持续增大,包括一些城投集团像是长沙城投、以及一些政府单位像是环境保障局、企业国际化经营服务平台、海外矿业产业联合、国际潮青联谊年会、人力资源和社会保障局、政务服务网、海外的一些平台如futrom智能住宅、bitheime全球区块链等等都在广泛使用。
131
152
  这里给出两个使用比较好的网站作为实际示例参考:
@@ -8,11 +8,11 @@
8
8
  var translate = {
9
9
  /**
10
10
  * 当前的版本
11
- * 由 npm 脚本自动更新,无需手动修改
12
- * 格式:major.minor.patch.date
11
+ * 由 npm 脚本自动更新,无需手动修改
12
+ * 格式:major.minor.patch.date
13
13
  */
14
- // AUTO_VERSION_START
15
- version: '3.11.11.20241209',
14
+ // AUTO_VERSION_START
15
+ version: '3.12.0.20241210',
16
16
  // AUTO_VERSION_END
17
17
  /*
18
18
  当前使用的版本,默认使用v2. 可使用 setUseVersion2();
@@ -564,6 +564,7 @@ var translate = {
564
564
  return translate.nomenclature.data;
565
565
  },
566
566
  //对传入的str字符进行替换,将其中的自定义术语提前进行替换,然后将替换后的结果返回
567
+ //v3.11 后此方法已废弃,不再使用
567
568
  dispose:function(str){
568
569
  if(str == null || str.length == 0){
569
570
  return str;
@@ -2854,6 +2855,14 @@ var translate = {
2854
2855
 
2855
2856
  //当前本地语种,本地语言,默认是简体中文。设置请使用 translate.language.setLocal(...)。不可直接使用,使用需用 getLocal()
2856
2857
  local:'',
2858
+
2859
+ /*
2860
+ * v3.12增加, 是否会翻译本地语种,默认是false,不会翻译。
2861
+ * 比如当前设置的本地语种是简体中文, 但是网页中也有一段英文, 如果设置了translate.to 为中文,也就是要以中文显示 默认是false的情况下,整个页面是不会被任何翻译的,也就是有的那段英文也不会进行任何翻译,依旧是显示英文。
2862
+ * 如果这里设置为 true, 则英文也会被翻译,只要不是中文的,都会被翻译为要显示的语种,也就是都会被翻译为中文。
2863
+ */
2864
+ translateLocal:false,
2865
+
2857
2866
  /*
2858
2867
  翻译语种范围
2859
2868
  比如传入 ['chinese_simplified','chinese_traditional','english'] 则表示仅对网页中的简体中文、繁体中文、英文 进行翻译,而网页中出现的其他的像是法语、韩语则不会进行翻译
@@ -4294,11 +4303,16 @@ var translate = {
4294
4303
 
4295
4304
  */
4296
4305
  name:'translate.service',
4306
+
4297
4307
  /*
4298
4308
  其实就是设置 translate.service.name
4299
-
4309
+
4300
4310
  */
4301
4311
  use: function(serviceName){
4312
+ if(translate.enterprise.isUse == true){
4313
+ console.log('您已启用了企业级翻译通道 translate.enterprise.use(); (文档:https://translate.zvo.cn/4087.html) , 所以您设置的 translate.service.use(\''+serviceName+'\'); (文档:https://translate.zvo.cn/4081.html) 将失效不起作用,有企业级翻译通道全部接管。');
4314
+ return;
4315
+ }
4302
4316
  if(typeof(serviceName) == 'string' && serviceName == 'client.edge'){
4303
4317
  translate.service.name = serviceName;
4304
4318
 
@@ -4884,16 +4898,63 @@ var translate = {
4884
4898
  //打印翻译结果
4885
4899
  console.log(data);
4886
4900
  });
4901
+
4902
+ 使用案例三:
4903
+ var obj = {
4904
+ from:'chinese_simplified',
4905
+ to:'english',
4906
+ texts: ['我是翻译的第一句','我是翻译的第二句','我是翻译的第三句']
4907
+ }
4908
+ translate.request.translateText(obj, function(data){
4909
+ //打印翻译结果
4910
+ console.log(data);
4911
+ });
4887
4912
  */
4888
- translateText:function(texts, func){
4889
- if(typeof(texts) == 'string'){
4890
- texts = [texts];
4913
+ translateText:function(obj, func){
4914
+ var texts = new Array();
4915
+ var from = translate.language.getLocal();
4916
+ var to = translate.language.getCurrent();
4917
+
4918
+ if(typeof(obj) == 'string'){
4919
+ //案例一的场景,传入单个字符串
4920
+ texts[0] = [obj];
4921
+ }else{
4922
+ //不是字符串了,而是对象了,判断是案例二还是案例三
4923
+
4924
+ var type = Object.prototype.toString.call(obj);
4925
+ //console.log(type);
4926
+ if(type == '[object Array]'){
4927
+ //案例二
4928
+ texts = obj;
4929
+ }else if(type == '[object Object]'){
4930
+ //案例三
4931
+ if(typeof(obj.texts) == 'undefined'){
4932
+ console.log('translate.request.translateText 传入的值类型异常,因为你没有传入 obj.texts 要翻译的具体文本! 请查阅文档: https://translate.zvo.cn/4077.html');
4933
+ }
4934
+ if(typeof(obj.texts) == 'string'){
4935
+ //单个字符串
4936
+ texts = [obj.texts];
4937
+ }else{
4938
+ //多个字符串,数组形态
4939
+ texts = obj.texts;
4940
+ }
4941
+ if(typeof(obj.from) == 'string' && obj.from.length > 0){
4942
+ from = obj.from;
4943
+ }
4944
+ if(typeof(obj.to) == 'string' && obj.to.length > 0){
4945
+ to = obj.to;
4946
+ }
4947
+ }else{
4948
+ console.log('translate.request.translateText 传入的值类型错误,请查阅文档: https://translate.zvo.cn/4077.html');
4949
+ return;
4950
+ }
4891
4951
  }
4952
+
4892
4953
 
4893
4954
  var url = translate.request.api.translate;
4894
4955
  var data = {
4895
- from:translate.language.getLocal(),
4896
- to: translate.language.getCurrent(),
4956
+ from:from,
4957
+ to: to,
4897
4958
  text:encodeURIComponent(JSON.stringify(texts))
4898
4959
  };
4899
4960
  //console.log(data);
@@ -5294,6 +5355,12 @@ var translate = {
5294
5355
  //主节点额外权重降低,更追求响应速度
5295
5356
  translate.request.speedDetectionControl.hostMasterNodeCutTime = 300;
5296
5357
  translate.request.api.host=['https://america-enterprise-api-translate.zvo.cn/','https://beijing.enterprise.api.translate.zvo.cn/','https://deutsch.enterprise.api.translate.zvo.cn/', 'https://america.api.translate.zvo.cn:666/', 'https://api.translate.zvo.cn:666/', 'https://api.translate.zvo.cn:888/'];
5358
+
5359
+ if(translate.service.name == 'client.edge'){
5360
+ translate.service.name = 'translate.service';
5361
+ console.log('您已启用了企业级翻译通道 translate.enterprise.use(); (文档:https://translate.zvo.cn/4087.html) , 所以您设置的 translate.service.use(\'client.edge\'); (文档:https://translate.zvo.cn/4081.html) 将失效不起作用,有企业级翻译通道全部接管。');
5362
+ return;
5363
+ }
5297
5364
  },
5298
5365
  /*
5299
5366
  自动适配翻译服务通道,如果当前所有网络节点均不可用,会自动切换到 edge.client 进行使用
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "i18n-jsautotranslate",
3
- "version": "3.11.11",
3
+ "version": "3.12.0",
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
- "main": "translate.js/translate.js",
5
+ "main": "index.js",
6
6
  "scripts": {
7
7
  "version": "node dev/update-version.js",
8
8
  "postversion": "git push && git push --tags"
@@ -13,7 +13,7 @@
13
13
  "i18n-translatejs"
14
14
  ],
15
15
  "files": [
16
- "translate.js/translate.js"
16
+ "index.js"
17
17
  ],
18
18
  "homepage": "https://github.com/xnx3/translate#readme",
19
19
  "bugs": {