i18n-jsautotranslate 3.11.8 → 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 +21 -0
- package/{translate.js/translate.js → index.js} +77 -10
- package/package.json +3 -3
    
        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 | 
             
              
         | 
| @@ -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 | 
            -
             | 
| 12 | 
            -
             | 
| 11 | 
            +
            	 * 由 npm 脚本自动更新,无需手动修改
         | 
| 12 | 
            +
            	 * 格式:major.minor.patch.date
         | 
| 13 13 | 
             
            	 */
         | 
| 14 | 
            -
             | 
| 15 | 
            -
              version: '3. | 
| 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( | 
| 4889 | 
            -
            			 | 
| 4890 | 
            -
             | 
| 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: | 
| 4896 | 
            -
            				to:  | 
| 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. | 
| 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": " | 
| 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 | 
            -
                " | 
| 16 | 
            +
                "index.js"
         | 
| 17 17 | 
             
              ],
         | 
| 18 18 | 
             
              "homepage": "https://github.com/xnx3/translate#readme",
         | 
| 19 19 | 
             
              "bugs": {
         |