translate.js
兩行js實(shí)現(xiàn)html全自動(dòng)翻譯。
無(wú)需改動(dòng)頁(yè)面、無(wú)語(yǔ)言配置文件、無(wú)API Key、對(duì)SEO友好!
特性
使用極其簡(jiǎn)單。 無(wú)需任何前期準(zhǔn)備,直接加入幾行代碼即可擁有多種語(yǔ)言全自動(dòng)切換能力。
不增加工作量。 無(wú)需另行改造頁(yè)面本身,也沒(méi)有各種語(yǔ)言都要單獨(dú)配置的語(yǔ)言文件,更不需要你對(duì)頁(yè)面本身要顯示的文字區(qū)域進(jìn)行代碼調(diào)用,我認(rèn)為那樣對(duì)技術(shù)人員實(shí)在是太不友好了。而且它也不需要你到某某網(wǎng)站申請(qǐng)什么key,它本身就是開(kāi)放的,拿來(lái)即用。
極其靈活擴(kuò)展。 您可指定它只翻譯某些指定區(qū)域、切換語(yǔ)言時(shí)顯示下拉框還是通過(guò)擺放多個(gè)切換語(yǔ)言按鈕進(jìn)行、可指定某些特定的元素不進(jìn)行翻譯忽略……
自動(dòng)匹配語(yǔ)種。 自動(dòng)根據(jù)用戶(hù)所在的國(guó)家切換其國(guó)家所使用的語(yǔ)種
瞬間翻譯能力。 內(nèi)置緩存預(yù)加載機(jī)制,只要翻譯過(guò)的網(wǎng)頁(yè),再次看時(shí)會(huì)達(dá)到瞬間翻譯的效果,給用戶(hù)的感覺(jué)就是,這個(gè)頁(yè)面本來(lái)就是這種語(yǔ)言的,而不是經(jīng)過(guò)第三方翻譯的。
永久免費(fèi)使用。 采用Apache-2.0開(kāi)源協(xié)議,您可永久免費(fèi)使用。
搜索引擎友好。 完全不影響你本身網(wǎng)站搜索引擎的收錄。爬蟲(chóng)所爬取的網(wǎng)頁(yè)源代碼,它不會(huì)對(duì)其進(jìn)行任何改動(dòng),你可完全放心。
后端翻譯開(kāi)源。 在某些政府機(jī)關(guān)及大集團(tuán)內(nèi)部項(xiàng)目中,對(duì)數(shù)據(jù)隱私及安全保密有強(qiáng)要求場(chǎng)景、或您對(duì)自有客戶(hù)希望提供自建高可靠翻譯服務(wù)場(chǎng)景時(shí),您可將后端翻譯接口進(jìn)行私有化部署,不走我們公開(kāi)開(kāi)放的翻譯接口,以做到安全保密及后端服務(wù)全部自行掌控。
在線體驗(yàn)
http://res.zvo.cn/translate/demo.html
先拿別人的網(wǎng)站動(dòng)手試試

隨便打開(kāi)一個(gè)網(wǎng)頁(yè)
右鍵 - 審查元素
粘貼入以下代碼:
var head= document.getElementsByTagName('head')[0];
var script= document.createElement('script');
script.type= 'text/javascript';
script.src= 'https://res.zvo.cn/translate/inspector_v2.js';
head.appendChild(script);
Enter 回車(chē)鍵 , 執(zhí)行
在當(dāng)前網(wǎng)頁(yè)的左上角,就出現(xiàn)了一個(gè)大大的切換語(yǔ)言,切換試試看。
快速使用
在網(wǎng)頁(yè)最末尾, </html>
之前,加入以下代碼,一般在頁(yè)面的最底部就出現(xiàn)了選擇語(yǔ)言的 select 切換標(biāo)簽。 其實(shí)就這么簡(jiǎn)單:
<script src="https://res.zvo.cn/translate/translate.js"></script>
<script>
translate.setUseVersion2(); //設(shè)置使用v2.x 版本
translate.language.setLocal('chinese_simplified'); //設(shè)置本地語(yǔ)種(當(dāng)前網(wǎng)頁(yè)的語(yǔ)種)。如果不設(shè)置,默認(rèn)自動(dòng)識(shí)別當(dāng)前網(wǎng)頁(yè)顯示文字的語(yǔ)種。 可填寫(xiě)如 'english'、'chinese_simplified' 等,具體參見(jiàn)文檔下方關(guān)于此的說(shuō)明。
translate.execute();//進(jìn)行翻譯
</script>
更多擴(kuò)展用法
指定切換語(yǔ)言的select選擇框的位置
你想在你頁(yè)面什么地方顯示,就吧下面這個(gè)放到哪即可。
<div id="translate"></div>
主要是這個(gè) id="translate" 切換語(yǔ)言的按鈕會(huì)自動(dòng)賦予這個(gè)id里面。當(dāng)然你也不一定非要是div的,也可以這樣
<span id="translate"></span>
CSS美化切換語(yǔ)言按鈕
可使用css來(lái)控制切換語(yǔ)言選擇的顯示位置及美觀。如:
<style>
.translateselectLanguage{
position: absolute;
top:100px;
right:100px;
}
</style>
這就是控制切換語(yǔ)言的 <select>
標(biāo)簽
設(shè)定是否自動(dòng)出現(xiàn) select 切換語(yǔ)言
/*
* 是否顯示 select選擇語(yǔ)言的選擇框,true顯示; false不顯示。默認(rèn)為true
* 注意,這行要放到 translate.execute(); 上面
*/
translate.selectLanguageTag.show = false;
translate.execute();
使用場(chǎng)景是,如果使用了:
<a href="javascript:translate.changeLanguage('en');">切換為英語(yǔ)</a>
這種切換方式,那么 select下拉選擇的就用不到了,就可以用此方式來(lái)不顯示。
當(dāng)然你也可以使用css的方式來(lái)控制其不顯示。比如:
<style>#translate{ display:none;}</style>
自定義出現(xiàn)的 select 切換語(yǔ)言所支持的語(yǔ)種
translate.selectLanguageTag.languages = 'english,chinese_simplified,korean'; //每個(gè)語(yǔ)種之間用英文,分割。比如這里設(shè)置的是支持英語(yǔ)、簡(jiǎn)體中文、韓語(yǔ) 的切換。根據(jù)后端翻譯服務(wù)不同,支持的語(yǔ)言也不同。具體支持哪些,可通過(guò) http://api.translate.zvo.cn/doc/language.json.html 獲取 (如果您私有部署的,將請(qǐng)求域名換為您自己私有部署的域名)
每個(gè)語(yǔ)種之間用英文,分割。比如這里設(shè)置的是支持英語(yǔ)、簡(jiǎn)體中文、韓語(yǔ) 的切換。根據(jù)后端翻譯服務(wù)不同,支持的語(yǔ)言也不同。
具體支持哪些,可通過(guò) http://api.translate.zvo.cn/doc/language.json.html 獲取 (如果您私有部署的,將請(qǐng)求域名換為您自己私有部署的域名)
注意,這行要放到 translate.execute(); 上面
翻譯時(shí)忽略指定的tag標(biāo)簽
translate.ignore.tag.push('span'); //翻譯時(shí)追加上自己想忽略不進(jìn)行翻譯的tag標(biāo)簽,凡是在這里面的,都不進(jìn)行翻譯。
翻譯時(shí)追加上自己想忽略不進(jìn)行翻譯的tag標(biāo)簽,凡是在這里面的,都不進(jìn)行翻譯。
如果你想查看當(dāng)前忽略哪些tag標(biāo)簽,可直接執(zhí)行 console.log(translate.ignore.tag);
進(jìn)行查看 注意,這行要放到 translate.execute(); 上面
翻譯時(shí)忽略指定的class值
translate.ignore.class.push('test'); //翻譯時(shí)追加上自己想忽略不進(jìn)行翻譯的class name的值,凡是在這里面的,都不進(jìn)行翻譯。
翻譯時(shí)追加上自己想忽略不進(jìn)行翻譯的class標(biāo)簽,凡是在這里面的,都不進(jìn)行翻譯。
如果你想查看當(dāng)前忽略哪些class,可直接執(zhí)行 console.log(translate.ignore.class);
進(jìn)行查看
注意,這行要放到 translate.execute(); 上面
翻譯時(shí)忽略指定的id值
translate.ignore.id.push('test'); //翻譯時(shí)追加上自己想忽略不進(jìn)行翻譯的id的值,凡是在這里面的,都不進(jìn)行翻譯。
翻譯時(shí)追加上自己想忽略不進(jìn)行翻譯的id的值,凡是在這里面的,都不進(jìn)行翻譯。
如果你想查看當(dāng)前忽略哪些id,可直接執(zhí)行 console.log(translate.ignore.id);
進(jìn)行查看
注意,這行要放到 translate.execute(); 上面
翻譯指定的區(qū)域
var documents = [];
documents.push(document.getElementById('test1'));
documents.push(document.getElementById('test2'));
documents.push(document.getElementById('test3'));
translate.setDocuments(documents); //指定要翻譯的元素的集合,可傳入一個(gè)或多個(gè)元素。如果不設(shè)置,默認(rèn)翻譯整個(gè)網(wǎng)頁(yè)
可使用 translate.setDocuments(...) 指定要翻譯的元素的集合,可傳入一個(gè)或多個(gè)元素。如果不設(shè)置此,默認(rèn)翻譯整個(gè)網(wǎng)頁(yè)。
注意,這行要放到 translate.execute(); 上面
js主動(dòng)切換語(yǔ)言
比如點(diǎn)擊某個(gè)鏈接顯示英文界面
<a href="javascript:translate.changeLanguage('english');" class="ignore">切換為英語(yǔ)</a>
只需傳入翻譯的目標(biāo)語(yǔ)言,即可快速切換到指定語(yǔ)種。具體有哪些語(yǔ)言,可查閱: http://api.translate.zvo.cn/doc/language.json.html
其中 class="ignore"
加了這個(gè)class,代表這個(gè)a標(biāo)簽將不會(huì)被翻譯
自動(dòng)根據(jù)用戶(hù)所在的國(guó)家切換其語(yǔ)種
用戶(hù)第一次打開(kāi)網(wǎng)頁(yè)時(shí),自動(dòng)判斷當(dāng)前用戶(hù)所在國(guó)家使用的是哪種語(yǔ)言,來(lái)自動(dòng)進(jìn)行切換為用戶(hù)所在國(guó)家的語(yǔ)種。
如果用戶(hù)手動(dòng)切換了別的語(yǔ)種,再使用時(shí),那就優(yōu)先以用戶(hù)所選擇的為主,這個(gè)就不管用了。
translate.setAutoDiscriminateLocalLanguage(); //設(shè)置用戶(hù)第一次用時(shí),自動(dòng)識(shí)別其所在國(guó)家的語(yǔ)種進(jìn)行切換
設(shè)置本地語(yǔ)種(當(dāng)前網(wǎng)頁(yè)的語(yǔ)種)
translate.language.setLocal('chinese_simplified'); //設(shè)置本地語(yǔ)種(當(dāng)前網(wǎng)頁(yè)的語(yǔ)種)。如果不設(shè)置,默認(rèn)就是 chinese_simplified 簡(jiǎn)體中文
當(dāng)前支持的本地語(yǔ)種有:
chinese_simplified 簡(jiǎn)體中文
chinese_traditional 繁體中文
english 英語(yǔ)
如果不設(shè)置,默認(rèn)會(huì)自動(dòng)識(shí)別當(dāng)前網(wǎng)頁(yè)的文本,取當(dāng)前網(wǎng)頁(yè)文本中,出現(xiàn)頻率最高的語(yǔ)種為默認(rèn)語(yǔ)種。
這個(gè)會(huì)在出現(xiàn) select 選擇語(yǔ)言時(shí),默認(rèn)選中的語(yǔ)種。
注意,這行要放到 translate.execute(); 上面
對(duì)頁(yè)面動(dòng)態(tài)渲染的文本進(jìn)行自動(dòng)翻譯
正常情況下,極大可能會(huì)有這種需求:
頁(yè)面中需要通過(guò)ajax請(qǐng)求后端服務(wù)器獲取數(shù)據(jù),然后再將數(shù)據(jù)渲染展示出來(lái)。
頁(yè)面中的彈出提示 (就比如 msg.js 的 msg.info('你好');
) 這個(gè)提示是js加載出來(lái)的,提示文字也需要一并進(jìn)行翻譯的情況 您可加入下面一行代碼,來(lái)實(shí)現(xiàn)以上需求。
translate.listener.start(); //開(kāi)啟html頁(yè)面變化的監(jiān)控,對(duì)變化部分會(huì)進(jìn)行自動(dòng)翻譯。注意,這里變化區(qū)域,是指使用 translate.setDocuments(...) 設(shè)置的區(qū)域。如果未設(shè)置,那么為監(jiān)控整個(gè)網(wǎng)頁(yè)的變化
建議放在 translate.execute() 這行之前。
注意事項(xiàng)
如果你手動(dòng)設(shè)置了 translate.setDocuments(...)
,那么監(jiān)聽(tīng)的就不是整個(gè)頁(yè)面了,而是單純只監(jiān)聽(tīng) setDocuments(...)
所設(shè)置的區(qū)域的改動(dòng)。
私有化部署翻譯服務(wù)接口
在某些政府機(jī)關(guān)及大集團(tuán)內(nèi)部項(xiàng)目中,對(duì)數(shù)據(jù)隱私及安全保密有強(qiáng)要求場(chǎng)景、以及您對(duì)自有客戶(hù)希望提供高可靠翻譯服務(wù)場(chǎng)景時(shí),您可將翻譯服務(wù)接口進(jìn)行私有化部署,不走我們公開(kāi)開(kāi)放的翻譯接口,以做到安全保密及后端服務(wù)全部自行掌控。
實(shí)際部署方式,可參考:translate.service
部署好后,在 translate.execute();
之前,加入一行代碼,如下所示:
translate.request.api.host='http://121.121.121.121/'; //將這里面的ip地址換成你服務(wù)器的ip,注意開(kāi)頭,及結(jié)尾還有個(gè) / 別拉下translate.execute();
如此,翻譯請(qǐng)求接口就會(huì)走您自己服務(wù)器了。
翻譯完后自動(dòng)執(zhí)行
當(dāng)翻譯完成后會(huì)自動(dòng)觸發(fā)執(zhí)行某個(gè)方法,以便您來(lái)做自定義擴(kuò)展。比如 layui的翻譯組件 便是使用了此能力在翻譯完成后重新繪制 select 選中項(xiàng)。
translate.listener.renderTaskFinish = function(task){
console.log('執(zhí)行完一次');
}
進(jìn)行翻譯時(shí)每當(dāng)執(zhí)行完一次渲染任務(wù)(翻譯)時(shí)會(huì)觸發(fā)此。注意頁(yè)面一次翻譯會(huì)觸發(fā)多個(gè)渲染任務(wù)。普通情況下,一次頁(yè)面的翻譯可能會(huì)觸發(fā)兩三次渲染任務(wù)。(因?yàn)橐粋€(gè)網(wǎng)頁(yè)上可能有多種語(yǔ)言,每種語(yǔ)言都是一次翻譯任務(wù)。)
另外如果頁(yè)面中有ajax交互方面的信息時(shí),每次ajax信息刷新后,也會(huì)進(jìn)行翻譯,也是一次翻譯任務(wù)。
當(dāng)然,這里的翻譯任務(wù)是確實(shí)有進(jìn)行了翻譯的前提下,執(zhí)行完才會(huì)觸發(fā)此。
自定義翻譯術(shù)語(yǔ)
如果你感覺(jué)某些翻譯不準(zhǔn)確,可進(jìn)行針對(duì)性的定義某些詞的翻譯結(jié)果,進(jìn)行自定義術(shù)語(yǔ)庫(kù)。使用的方法為:
translate.nomenclature.append(from, to, properties);
傳入?yún)?shù)解釋?zhuān)?/p>
from 要轉(zhuǎn)換的語(yǔ)種,傳入如 chinese_simplified
to 翻譯至的目標(biāo)語(yǔ)種,傳入如 english
properties 配置表,格式便是properties的格式,每行一個(gè)規(guī)則,每個(gè)前后用等號(hào)分割,等號(hào)前是要翻譯的詞或句子,等號(hào)后是自定義的翻譯結(jié)果。傳入如:
比如,要自定義 “網(wǎng)市場(chǎng)云建站系統(tǒng)” 、 “國(guó)際化” 這兩個(gè)詞有簡(jiǎn)體中文翻譯為英文的結(jié)果,可以這么寫(xiě):
translate.nomenclature.append('chinese_simplified','english',`網(wǎng)市場(chǎng)云建站系統(tǒng)=wangmarket CMS國(guó)際化=GuoJiHua`);
這個(gè)自定義術(shù)語(yǔ)庫(kù)的可以單獨(dú)用一個(gè)js文件來(lái)定義,如此定義一次,在類(lèi)似的項(xiàng)目中有使用,可直接將之前定義的js術(shù)語(yǔ)庫(kù)文件復(fù)制來(lái)引入即可方便使用。
當(dāng)前正在優(yōu)化中,如果原語(yǔ)種是中文、韓文還可以,像是英語(yǔ)結(jié)果會(huì)不準(zhǔn),如果您項(xiàng)目中用到了,發(fā)現(xiàn)異常時(shí),可聯(lián)系我,免費(fèi)幫您調(diào)試好的同時(shí)還能完善本項(xiàng)目。
注意,這行要放到 translate.execute(); 上面
示例
這里給出一個(gè)示例用于參考,鏈接地址: https://res.zvo.cn/translate/doc/demo_nomenclature.html
您可打開(kāi)后查看頁(yè)面源代碼,即可看到它是如何設(shè)置的。
實(shí)際使用場(chǎng)景示例
普通網(wǎng)站中點(diǎn)擊某個(gè)語(yǔ)言進(jìn)行切換
如下圖所示,網(wǎng)站中的某個(gè)位置要有幾種語(yǔ)言切換

直接在其html代碼末尾的位置加入以下代碼:
<!-- 增加某種語(yǔ)言切換的按鈕。注意 ul上加了一個(gè) class="ignore" 代表這塊代碼不會(huì)被翻譯到 -->
<ul class="ignore">
<li><a href="javascript:translate.changeLanguage('english');">English</a></li>|
<li><a href="javascript:translate.changeLanguage('chinese_simplified');">簡(jiǎn)體中文</a></li>|
<li><a href="javascript:translate.changeLanguage('chinese_traditional');">繁體中文</a></li>
</ul>
<!-- 引入多語(yǔ)言切換的js -->
<script src="https://res.zvo.cn/translate/translate.js"></script>
<script>
translate.setUseVersion2(); //設(shè)置使用v2.x 版本
translate.selectLanguageTag.show = false; //不出現(xiàn)的select的選擇語(yǔ)言
translate.execute();
</script>
參與
您可直接 fork 本項(xiàng)目,注意,是github倉(cāng)庫(kù) https://github.com/xnx3/translate ,非 gitee 的倉(cāng)庫(kù)
如果您改動(dòng)了哪些代碼,請(qǐng)?jiān)谄渲袀渥⑸献约旱男彰?、以及自己的個(gè)人主頁(yè),是您參與付出的留名。比如,陳某人參與了日語(yǔ)翻譯的字符判斷,那可以這樣:
/* 是否包含日語(yǔ),返回true:包含 參與完善者:陳某人 https://www.chenmouren.com/xxxxx.html*/japanese:function(str){ if(/.*[\u0800-\u4e00]+.*$/.test(str)){ return true } else { return false; }},
版本
注意,v1.x 跟 v2.x 使用上略有差別,可使用 console.log(translate.version);
查看當(dāng)前使用的版本。
另外 v1.x 版本的相關(guān)說(shuō)明參見(jiàn): 使用說(shuō)明 | 在線demo
v1.0
2022.2月發(fā)布,提供多語(yǔ)言支持能力,使網(wǎng)頁(yè)無(wú)需改動(dòng)快速具備多語(yǔ)言切換能力。
v2.0
2022.12月發(fā)布,增加更多的擴(kuò)展方法。
可自定義忽略的Tag標(biāo)簽,進(jìn)行翻譯時(shí)會(huì)忽略之
可自定義忽略的class,進(jìn)行翻譯時(shí)會(huì)忽略之
默認(rèn)內(nèi)置 class="ignore" 為忽略的class,可在某個(gè)標(biāo)簽上增加此屬性,即可使其跳過(guò)不進(jìn)行翻譯。
增加緩存機(jī)制,翻譯一次后會(huì)將結(jié)果進(jìn)行緩存,翻譯過(guò)后,再查看,會(huì)達(dá)到秒翻譯的結(jié)果,極大提高體驗(yàn)度。
增加局部翻譯的能力,可支持自定義翻譯的區(qū)域。
優(yōu)化 input 輸入框的 placeholder 的內(nèi)容不翻譯的問(wèn)題
優(yōu)化本地使用(file協(xié)議)時(shí)無(wú)法測(cè)試的問(wèn)題?,F(xiàn)在本地也能正常使用及測(cè)試了。
修復(fù)翻譯時(shí)會(huì)莫名其妙多了無(wú)數(shù)層font標(biāo)簽的問(wèn)題
修復(fù)翻譯時(shí),像是中文翻譯為韓語(yǔ),鼠標(biāo)多經(jīng)過(guò)幾次會(huì)將其翻譯的韓語(yǔ)重復(fù)翻譯導(dǎo)致翻譯結(jié)果不準(zhǔn)確的問(wèn)題。
開(kāi)放翻譯云服務(wù)平臺(tái)接口 http://api.translate.zvo.cn/doc/index.html
v2.1
本地語(yǔ)種時(shí)默認(rèn)賦予使用v2版本翻譯
增加 translate.language.connector()
對(duì)句子的連接符單獨(dú)進(jìn)行適配
增加如果是被 <!-- -->
注釋的區(qū)域,不進(jìn)行翻譯
增加英文 README 文檔
增加對(duì)圖片alt、meta關(guān)鍵詞及描述的翻譯
優(yōu)化判斷本地語(yǔ)種跟要翻譯的目標(biāo)語(yǔ)種是否一樣,如果是一樣,那就不需要進(jìn)行任何翻譯
增加 translate.listener.start()
可對(duì)當(dāng)前頁(yè)面變化的區(qū)域進(jìn)行自動(dòng)翻譯,比如ajax加載數(shù)據(jù)后進(jìn)行渲染
translate.execute(...)
增加可傳入翻譯區(qū)域,傳入的區(qū)域只是單純做一次性翻譯,不會(huì)影響 setDocuments(...)
的值
加入任務(wù)隊(duì)列機(jī)制,徹底解決翻譯時(shí)非常小概率有文字遺漏不翻譯的問(wèn)題。
增加 translate.setAutoDiscriminateLocalLanguage();
用戶(hù)第一次用時(shí),可自動(dòng)識(shí)別其所在國(guó)家的語(yǔ)種進(jìn)行切換
v2.2
開(kāi)放后端翻譯服務(wù)接口的私有化一鍵部署,并開(kāi)源。
大幅優(yōu)化句子翻譯的準(zhǔn)確性,達(dá)到百度翻譯、谷歌翻譯的程度
增加可配置對(duì)某個(gè)元素指定id忽略其不進(jìn)行翻譯
增加單獨(dú)針對(duì)連接符識(shí)別判斷,以提高翻譯準(zhǔn)確度
增加可針對(duì) translate.request.api.host 單獨(dú)配置,以私有化部署
增加 inspector_v2.js ,用于v2版本的快速轉(zhuǎn)換體驗(yàn),并將readme中的快速體驗(yàn)?zāi)J(rèn)便是使用此v2版本。
增加 translate.language.autoRecognitionLocalLanguage(); 如果未手動(dòng)設(shè)置當(dāng)前網(wǎng)頁(yè)的語(yǔ)種,會(huì)自動(dòng)識(shí)別語(yǔ)種
增加 translate.language.getLocal() 用戶(hù)獲取當(dāng)前網(wǎng)頁(yè)的語(yǔ)種(如果未設(shè)置,自動(dòng)根據(jù)網(wǎng)頁(yè)當(dāng)前顯示的文字進(jìn)行識(shí)別語(yǔ)種)
增加 translate.selectLanguageTag.selectOnChange 用于提供重寫(xiě)select onchange 事件,以便更好擴(kuò)展
優(yōu)化中英文混合時(shí)翻譯的一些意外問(wèn)題
優(yōu)化meta - keywords 替換的問(wèn)題
優(yōu)化轉(zhuǎn)英文時(shí)如果英文有',比如 let's 這種的情況
優(yōu)化 ignore 對(duì)忽略class name有多情況下的判斷
開(kāi)放后端翻譯服務(wù)接口文檔,以便更好自有擴(kuò)展及使用
修復(fù)tag有時(shí)失效的問(wèn)題,比如監(jiān)聽(tīng)狀態(tài)下局部翻譯情況
v2.3
增加 translate.nomenclature 用于自定義術(shù)語(yǔ)支持
增加 translate.listener.renderTaskFinish(renderTask); 以便更好的擴(kuò)展
增加 translate.language.wordBlankConnector() 適配語(yǔ)言是否需要空格作為連詞符,增加十余種語(yǔ)言的適配
增加 translate.element.getNodeName 以供全局使用
增加vue、uniapp中使用的說(shuō)明
增加 translate.element.nodeAnalyse 用于元素分析及渲染
增加對(duì) input 標(biāo)簽的 type=button 類(lèi)型的支持
增加對(duì) input 標(biāo)簽的 type="submit" 類(lèi)型的支持
增加 a 標(biāo)簽 title 屬性的翻譯適配
優(yōu)化忽略類(lèi)、tag、id等的判斷,使之更精準(zhǔn)
針對(duì)v2.0增加 translate.selectLanguageTag.languages 的設(shè)置
優(yōu)化,當(dāng)前語(yǔ)種在未翻譯時(shí),切換其他語(yǔ)種,不重新加載當(dāng)前頁(yè)面
修改 nodeQueue 第五維增加 translateText
優(yōu)化英文轉(zhuǎn)其他語(yǔ)種時(shí)自定義術(shù)語(yǔ)異常的問(wèn)題
優(yōu)化忽略翻譯的標(biāo)簽,增加 textarea
針對(duì)新潮傳媒反饋的某些頁(yè)面無(wú)法使用問(wèn)題增加相關(guān)判斷進(jìn)行容錯(cuò),避免阻塞整體運(yùn)行。
將默認(rèn)的忽略tag標(biāo)簽中的img標(biāo)簽去除。也對(duì)img的alt進(jìn)行翻譯
對(duì)翻譯隊(duì)列進(jìn)行排序,將原字符串長(zhǎng)的放前面,避免造成有部分不翻譯的情況(bug是先翻譯了短的,導(dǎo)致長(zhǎng)的被打斷而無(wú)法進(jìn)行適配)
修復(fù)如果一個(gè)句子中有多個(gè)被特殊字符間隔的漢字時(shí),會(huì)導(dǎo)致漏掉末尾一些漢字不翻譯的問(wèn)題
該文章在 2023/7/6 10:01:31 編輯過(guò)