iTranslator

👆👆👆 多功能网页翻译工具,支持所有网站划词翻译,支持快捷键翻译和独立面板翻译,选择单词或段落后,按快捷键即可快速翻译(快捷键可自定义更换),可设置翻译字体颜色、翻译结果显示位置,独立翻译 面板支持显示多个翻译结果,方便对比翻译结果,支持多种语言互相翻译,全面支持百度翻译、彩云小译、有道翻译、阿里翻译、必应翻译、搜狗翻译、爱词霸翻译。👆👆👆

スクリプトをインストール?
作者が勧める他のスクリプト

SciHub CRXも気に入るかもしれません。

スクリプトをインストール
このスクリプトの質問や評価の投稿はこちら通報はこちらへお寄せください。
// ==UserScript==
// @name         iTranslator
// @version      2.8.7
// @author       SCI Great
// @homepage     https://www.hezibuluo.com/159129.html
// @namespace    https://www.hezibuluo.com/159129.html
// @description  👆👆👆 多功能网页翻译工具,支持所有网站划词翻译,支持快捷键翻译和独立面板翻译,选择单词或段落后,按快捷键即可快速翻译(快捷键可自定义更换),可设置翻译字体颜色、翻译结果显示位置,独立翻译  面板支持显示多个翻译结果,方便对比翻译结果,支持多种语言互相翻译,全面支持百度翻译、彩云小译、有道翻译、阿里翻译、必应翻译、搜狗翻译、爱词霸翻译。👆👆👆
// @require      https://lib.baomitu.com/limonte-sweetalert2/10.16.9/sweetalert2.all.min.js
// @require      https://lib.baomitu.com/crypto-js/3.3.0/crypto-js.min.js
// @require      https://lib.baomitu.com/jquery/3.6.0/jquery.min.js
// @license      AGPL-3.0-or-later
// @grant        unsafeWindow
// @grant        GM_info
// @grant        GM_setValue
// @grant        GM_getValue
// @grant        GM_deleteValue
// @grant        GM_openInTab
// @grant        GM_setClipboard
// @grant        GM_xmlhttpRequest
// @grant        GM_registerMenuCommand
// @compatible   chrome
// @compatible   firefox
// @compatible   safari
// @compatible   opera
// @compatible   edge
// @connect      qq.com
// @connect      so.com
// @connect      sssam.com
// @connect      ooopn.com
// @connect      aalib.net
// @connect      bing.com
// @connect      baidu.com
// @connect      iciba.com
// @connect      sogou.com
// @connect      youdao.com
// @connect      taobao.com
// @connect      google.com
// @connect      alibaba.com
// @connect      ydstatic.com
// @connect      caiyunai.com
// @connect      googleapis.com
// @connect      *
// @match        *://*/*
// @icon         data:image/png;base64,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
// ==/UserScript==

(function() {
    'use strict';
    var tgoing, random, lang, odata = {}, tdata = {}, kdata = {}, result = {}, initOption = {}, $ = jQuery, doc = $(document), site = document.URL.toString();
    let itran_ico = "data:image/png;base64,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";
    let sgt_ico = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAA/ZJREFUWEfFl+9rW1UYxz8nyc2vts5a1w0XrUURVKxr2VgrFEc7cE6mDgVf2BeOgaBvrMjQ/QGCCoLCQEt1vhB9IQxtqdqidls31pU5F39NxY2uZYJirbNpb3KTm3Pk3Js0P9dlbaLnTRJy7vl+zvd5zrnPI2KxJeURgnAgxNjsFC9H3yf613kSMkU1R9BjsLnpdl6850keau3CtOJIpRBLi6bS4l1Dz3Dq4nHw14PXX03t3FrpJCQXaY908s1j7zgQQqWUcsRnJyFwHQhRG/HsqkqBtUD7TVscCDF64ZTa+fE+CN1Qe/F8iPg8Iw8PIh4YekGNzZwAX6C2Oy9e3bbo3rQFsf7QbvVn/HL53dsWLPx2dTARhsaNV5+XP0MpGowwwni7R6XSqVKA5CJdzXcxtOfgigsbHh9Tl35g5+G9UHdj5WFUiqDPjwgO9KqEnSx8UCdKagn13JmKd/XK6fc4MPE6hJsqe2ZFAJmmQQgWnj1e2WLAR7+M8cTw81C/vrJnqg3wwU+f0jey//8DOHTuJPs+2QuhDYUO6MNV7m5ZqwP2Hy8Rj59ACoOwEHwbN9k6v67U/mgCdE4VQ6wFQIt75l5F+SB7b3oUTInr6aQXiOVAvBI+t8Bb5MRaAFKzPQjzSMGmNIiGGKGZ3eltoBIuRFDBF8lSF9YCIGcfRJqjywBaXCpX74x2we52AYSEgKgtgA6vD3hTtdAv21yKrLj+bgBfparrQPL8rXjTM65WBmBQRXhatheK6z/9oroAWtxnzTgJWBYAM/eHDosOQbUciE3fR505idQZnTeWQ5C+G4Tl2qLFdXJU1YHf28GO4mxS5ghsHWp7V6m4hvBLGJfXmANKUa8kl586gjdg8PXcObYO7IDGDrAS0BGEjZ6M1WkQ2hKzcOfOqUi7DlwzQN7L6Lu5X7l3oAcaW11BC2jzQcSAlL7hMlbk254V1/NXCxAJNHDs8UFue6MDNtyZ8zuhXIBNXkhnDv+VxFcNoBSG1yCVXCot1bIALV6wdLJlILKIKl2YoatyIHu+9GeZl4gThh0GGJ6cCzre+UNfjbaEsHflHLhiSVa4XOEvp7TGvQLLDX0sdJiaJfxtwY/+sqdAu+wWpeY8eIoO90oAy3YX2Z//jAZsEbANGM5cmfluZovSXcP71WcXJ2pTlut8iYD4R6CSRTWBbdFzcyfi6PRZtf1wX+0aE1uVrQWIzzO65123Nesd6Wd8+uh/2pp13tLF5CNvIRZjpqoLh+gd7mf8wpduc+rRpU7mpqskFyqZoyRI22lOu1u3M/HoQcx4HKHbc4GgLhji2KUor33/IafnfsbpFao4dBPS0XQHB9r6uD+yebk9/xcP8n2S4xZqfAAAAABJRU5ErkJggg==";
    let bdt_ico = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAA+BJREFUWEfFV2lsVUUYPXP3vmKpaWULUBvAGMIWKCk7EkASI5KmEUyqiRgM/EAETWxiCb8oAUJo9QdoZFETQG01hsVAGotNY4tpJMEoCEigVatJsSz1rXcj39y+93L73n1bXun8eMudme87c86Zb+4wDLYLN421H3UZOy7/a833R+xR0ef5/C5U2P9zxwldWyqlg2umSGcpNqOP+rbw7oZOoy6fydLF2rFQqq9bru5kF24ZL9Y0hc+kmzAc/Seq1ZdY1clQa3uPuWI4EqSLuXSyeJGVHQwMDJfm6QCQJ1jpXr/tNbBABhSR2wQB3YZupgsZ76e5n1Wp6PjTQmOn7jkxJYC65TK2L5D55PdaIjh+2cBojWFMoQPKJwPTSgQoIjD9KQHFGrBqighJAGSB8X5qjZd01LclB5ETgPY3NA6EEgR0QLdsnpDag5ANRQJKCpz/1IiFbd+F0X0/keyUAGqXynhznsSD7GrVcfIXIxa0UGHo3KTh9HUTO7+PxJ6X+hhaX9cw/gkHwIEOHfvac5QgneLPTxVxolrFl78aqG1xkjRvUFExQeC/P79i4N3zcXDJ4qVkIB0A6t+9UsHmConT+yBsY9ZYJzmB2noudXIa5wJQVhzXbWjy3gHvXfDVehUrykWX5q80hRD0Zj421gWgr9bnueg5h4P4+6HbRLIILkHlRDHm+GgAMudPf5ncgFf7LNy+Z+POfSthK7sAHF2nugCUFjIsmuRQOhQA6f/hCwp3OyU71KXjVr+N95fJmFSUnMl7IeCZDwKuHCk9UDlRwNkazQXguadF0O6YOVZAR4+Jb383ce6GiS9eVvHDHRPfXDWxpEzAq7OkmB8owM1+Gys/DSbIkhUAn8ywfoaIH7stdPVa8EfikkTlIyNObQxy0OSpPasUjFIYvDyREsCMMQIubnQz4GWSKID/gjZqmsMo8TEUqY4Uzb/F68fQ+TkBoBJd9ayEIo1BYDZGDybyApdzKfZigMrw1koJ/QHa+8DdgM13A7V/BmwsPBJyyZOqnuTEQLKAUQnIbIs+cTyQScsaAK2eTr1izdFXk4ACiaFpQ5yBhks6l4XOhfInGeZNEPhWXXwky12QTIKNcyXsX614Li5sgktj2EDRYFkxLGd4fxAJ7GTNAAWiFT0MAxHThj8C+HUbPe84VfRan4Vlx0KZsM/HZFUHhpbiaBaS5Y+3C/IPYPY4AdHyvO5UKOEsSAaATsWKj/Nkwkx5JLNde8thYMQAnH9NQ1u3yd+afu4ddF0GKxj51/IRv5jQpbTm6/DpDNjK+xB+NaOoI3o5jS7rsV7P50sNa6ZJ/EL8CBxM+NCR6KutAAAAAElFTkSuQmCC";
    let ydt_ico = "data:image/png;base64,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";
    let bin_ico = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAyBJREFUWEftl11IU2EYx//Huc3NTwxLMvJjagO10AlNg2xESWj2pTYlQxOC7KbAi0CDbqJEIq8MgiiIUHLQcFMyrQuFjEov1MLEvOqqlRd+bB7P5uI5esQ5d7YdZzf1whicc973/zvP+zz/9zmM2+12Y200DL6BaeYbWvTHUKfNES7v6D+zEeCU9SVeT08CKy7A5URpVi7u6YuQHZ+wYxAeAKU9JvR8nwTkcoAC43QCrAMRsfE8yI2D+SEH8Q2wUcrlAhbmYDbW40xKRkghAgMgSYcdlgs1KE1O/w/wD0egr7IWqdFxyHzUAqOuEE26gm2XqKQkZO7fAiLUAMcCkdFozD2MZl0hYhXKoLdHEsDpXhOsZFjkF1Si5BdLdiQkJuFO/hE0ZOcFDCIJYGLWhpwnbUBUjKcQwSyz/E+fmcVvkb+ylQRAqqrHD7BEYjKZ99sKLkpbxITBmKPzmS+SAdrGPuPmgAVQqcXDTTDLy6v5olTBXHbRw00lA5Aq09rEJyEYJrA9Z1kY0jLwrqxq/fltAVx+24Pnn4YAdRQQHu4fhONQotHCWlIeGgBahRLy9schmMdHALkSUCh8g+wEwMbYt0+M4vqA1TfETgLcHR1G82D/348AtXAV1i7AyQERKvE82FYEFuZgqaxbNxba+8JXLzA/awNUkVv7webacNhhSNdKqAKWhWZ3Iqarr8Lu5HC8uxMfpr6sOuFWRrRZmBzSsQhNUjLGKuugDpcHUQUsC/3+VAyfr4FH2dE54G8IJrTiQtfZapSnHfCaIe4DHAdDigb12kO4ZOkAZHLxJNuij6Rju+NEmU9U8a6YYZCgUsM2+8t/ggkS9NaORUTH7cJXYz32kVOKDPEICN8sgVotx/Ft/MPicwG38N4fJjNTq+d8MGOtbacjmHIlmOEBsJ5kMXH+fZ1UKEJLDkChxHBFLfR79gajzT/rAUAXnk6O40qvCQiT+XU12BfQWFSM1gJD0MLCBC8A4UZVfzc6R95717pITUuh8AlAi/1YnEde1zPYfv/kmwm+9xOp6ZADCAvyft9nxrWsXLQfPSlFx+ecPyxyML/hAuFDAAAAAElFTkSuQmCC";
    let cai_ico = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAABRRJREFUWEfFlmtolXUcxz9n57KLO9s503nc5WxO55ybc0oXFR2BUoyUahAileSbQOhFL4KMwne+USorMHwTZChBYJEvgkoMauILMeeluVDnZcp25tYu5/rc4//cerYdnZVbDxye+//7+d2+z/EZhmHwP26+uQT4KdnHpJyjNhhhfdnSvGHOGUBKlzg12ceYnEPSVCbkHHuqN1IeLJkCMi8AQjGpyFxPj/BpU9f8AAgVUYK72QmGsyn+zGb5NvE7nze/SEes2YWYkwxkshk+6j3FL8mbJPQcjaWLWBAsojedYOuiJg40b3+8ANdHBzh5q4fLQ7fpTvRzNzHI0qYVxGOLSWky8ZIohYEQ1zL3WR+p5+PWv8vwjzNwKznMhcQNvrt3hSvDNzk/cteKxmc3l+EHWWNdQx2LKsr+I4CmcW6knxNDF/h59CaDE4MMSFlQhWAI8INuZ1PRQTes86wyAyAQDNKfHpk9A0cHfuWrRA9Xx25zR5oAQwiJH6D7QbMFVSGmg2L7mBdAVllXF5+SAQHwR2qYzdGGB5dg628fcnq8H4xi8AU8YiI6AWCAEBaaQlCYqAOginOs+9MAqoujBAIBrmfusylaxyetL89swvHsONGz70OgFAyfJSiiNRfNA6DpoBnWTzxrgtmANkC0opQJTaa+OEowEHo4wKXkbdrPHYRQGBQb0AEwBewai2tuJoSgDScAxCbAcipt8RpWVFUxoUuUFIQoCRRyNT3ElmgDh1bnyYAJcOEgELaidjJgLirOdStKE8ojnMni12Q0RYFgufWeIrOtaRUtS5cxmEviUyFpqPSnh9kSqedQ246ZJXABCsJT02+KA7JkvxSwQQyQZF6vXcMXz7yBkstSf/w9Bg3VvN7Vupba6iUMp1IUB/yMq4oFMGsGHACz0ZwRS/FZw3bOjN7ieKLXGkFxf3IIY/cxN5r950+y79z3oPpob6hlXbyBMSWDroE/EKQvNUhndNkjZsApQy7Ftaf30rgwbgq9duaIBSFGM5Pkmw276WrcaN7rPLGfH8YS5oS011VTHFlARpKIhysI+kOPCBAIW0YjNrHPjGI8dxhClhe8e/FrDtzoBj1o9YKU5tXKVfRNDnM+NQZGECSN5sULqalZwriUYUlJ+SMCXDoIPhvAyYCusiYU48wTe+iZHKDz7BHSBSG7Me0xVBVQC2yzsj1C06mJluMvC9JWWUthURG9Y/dmKYEDYJqOxwcUFeSsnRbb870O6BiSY8ViFM3GVS2fUFWqImGCVWW8VN+W34jMKcgH4IyhY0juvHv8QIyoa0ieYwEiNtn27/ERvtz5FrtWdswcw8upO6y5eAD8dgm8GRDHTkkcQ3Is2XVAj1uaUYvy2ABiLykUyWmy7xwDv/8hAKIHzA+PY0D23v0I2YuKEngNyeuIHksWwqTGeSrezOmdeyktsde3Edz/A24JnAy4DuiJ3uuIbr09jSjlQJII+wqJhcJsji2jo7aFXSs3EiwqdqP2HuQH8DaheNr7bTAjVUDRLHfMpYmEImyqbGRbrIUnYw2sjdYTtMc2r6rn4sMBRJSa+DKKKciBJlHhW0BjcRVbI3VsqGzmhVir6xGzieW77wKYTXh5WhPKSfOdrtImnq9sp6NiBSvLa/6NzgPfyQNQan7NwprG4eU72FWz+bEKTl9sJoAOz5a38OPqN+dU2Fl8ag/07OPt6k4+WP7KvIgLkSkZOJronlfxKQDzFvI0ob8Ar9FzzrVcocsAAAAASUVORK5CYII=";
    let sot_ico = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAABNxJREFUWEftl3tMlXUYxz/ncLjJ4WYuxFAUTPCSmOUtNy1zim5eoxGlm5WZTGa6yrbW0kZ/GJXmbWxFzC1HoyhtOJnFzHCEkkmaKApEiQgYkR4Ol3N4z3va7305B17OhRf/aW2929nO3vP8nufzfJ/n9/x+x+B0Op38i4/hPwdQ2V5PXWcrVqmHcFMIiWExzB6ZeM8a6lLg44ZTvHe9mN/u3gCjCQwB/QGdDpAlpoxM5JXEVDZNWDQsGL8ABY0/8ty5fYrD0MARBIrgPp5eWaK7t0uBK5idRcbYx3SB+ARYWPYuZS1VmEOiMBqMupwJI9kpY+25w4LRD/PDgreGXOcVIK4ki6audiKCwrw6ENk6nDIBBqNPVSz2ThLMMdQv3esXwgNgaukOajqaMZtCNAvdEssSCZHjuC/IzF92q7svvJVINGpyeCzVi3N8QmgAdl39mneqC4kIjtAsENmMCo4g/5FNrIid6eGsqKmSzKp82mwWD9UsNgu7p6/jjUkrvEK4ASSnk8Av04gIHakN3t3OtuQ17J2+bsh6bryQx6d1JRofrp7ofboIk8Hg4cMN8OLPn3D4RplGekG/c2o6uyavHTK4y2D7pSN8dL1Yo6IoRWbCkxxM2eAbwFCUjjnI7O74HoedlMhxVD6RrTu4y1D0UZ21lZCAIOWVooLdijOt0DuAmG5zTr2pobZ0t9O0Io8xodHDBqjtaGFSyRZNKYS/qiV7mBEVr/GnlEBpvitF7gYSHR8bEjXkFvJHJrZyu73TvU1FI+9+KMOjGRWAZ386ROHNs+76+6uZXjkG95Tw+Xz8QvJmbvRUYHF5Dmf+rHbXzBet3uDCTqiaXXPUnZToqWWjZ3Bs7nZPgNVn91LS8guOvuHjkGzsTFo5rO4fDPf65c/5oO4kAaZg5SdnbxfpcXMpmLXFEyDr4mEONZxmudTD5s7bXDEY+S5xCaXzdwwnaY1tasUeFtaeYILBwP6wGCqMJl6buJT3p2V4AuQ2VnDm9NsUWG6CUEGW+FuyE55V43V46KGyHkzCLLahOEGlHlIj43lmUTYbxszyBPgdMO0bT1xINLhOPttdmPcqPJqpJ57W5nwuVHwIwZHqe6fMRZuFyK31jB/kzT0J5SNLMHY0Q9/wEIuwtsLWeggM1Q9hs8DBZDDH9CfjsCOHx2Jc963vSUjtCTj+MoTd32/ksKvfM3/VD3Bosiq7KxGxsqsNlu2HpFV+AMRP+fNBZDBwsYCQumFlPsQv8A1SfxKOb4Ygs+d6cbq+UO51rfY+0HkbcqdB+AP98vXVUMkichyIU1EcycFRYLsDzRfgQp6apThJB96eRBk7miDzsqrspSNwswLi5ql+AM8bkcjk6HrvELKkqiE7lMZSghkDwBTad1kdcHVzBV91GB5cDoVr4NZ5VSG7FeIfh7WfeQEQWNe+geKXICxGK6feTnAFX54LU56C9lq1vBFj+z1YGhVlfN+K265B4WqQeyEoXCutLxAR2N4BxkBIPwajklTLpnPwRZq2wUW515f6AXAFEXu6PEeVPHCEKvXA67koi/iIK7l45myDedp5r7w/MFEFE4NO6lFtt1zVAeAC+aMMGr6HW5VgbQExqITD6ASISYGJqf53idhdX2VAcxXEzYG1Bcp80fXPSG/p78Xuf4B/ALlARmPqWU/9AAAAAElFTkSuQmCC";
    let icb_ico = "data:image/png;base64,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";
    let ali_ico = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAABU5JREFUWEetV21QVGUUfu5+4S4IufGRLtmggikB5aT9yPFHRioaoSkqzaCTgoAf42iONZOpo6ZOU40KayMfoaPZGCKQGgX0wx/1o0YRNBEDDBGSxXX4kIX9us15nXu9u3v37pq+f+/7nvOc55zznHM5nud5PMEp+7YHVxoHoVZziq+2bH4REyeOCWiZexIAv/3ej5272jFunFbRsMvNw2HnUVOV/GwBrM1twcCAM2D05NVqdeCoeSomxekVQQTNQHuHDfkFN2E0Poq+v98Jl8s3exERGgbQZnNh4cJI5KyZ8GwAfLqjHTduPoROq2LRVVUmQ69XwS0BoVJzyCtogdXqZE4JyOlTiU8P4OFDF9IzmhAdrcPoqBuzZobj4+0vyRquPGdB+fEehIaqGdAT5dMRE6PzCyKoFJiPdqG+4QFCQlTo67Pj5IlEv0atDxxYmXWdpYrSkLksBlkrY54OwLwFjcwg5TwqSoeiIwmKtGav/gsjI252x2BQobxs+v8HIKWUCm/3rjjMfD1cEcDxEz04V2WBXq9mjFVWJGHsWI3sm4ApeD+zGWrVY9E58/0rAXv73j07iAVijepn9arxWLI46skBkPDs3Xcb1FpkKGfteLy7SN6Qt/WVH1wX21QpbYoMSIWH6L94PiVg9MIFkuzzF/rEwv354qugNvU+fgFIhUdJVOieVO2I/iOFXbjaNISwMDXzR+zlrTMhbcHzwQOQCk9vrx21F1Og1ap8DMxNvYKGutdw9+4oDhd24fLlAYRHaJhgCWdoyMXatuTYy8EBcDjcSFt0FZGROtgdbqQkheGzHXE+jy9dsmLf/k4kJBjQ2jqMsLFqD8ckWpS61LeNWF9gku0E2RSQ8PxSZ2VtRGpWVjINJlOIDwBpv0vHM6XMZnNj/nwj8nJjmWT7O7IAKHqqfBIeo1GDb8y+1N26NYwNm1rF4UQOBMfvpUciL9ckW3QBizBY4dn+SRv+bhtmlAuOly6NDjj9AgLIXHFNvEOLxdkzST7sDQ46kbGkmQ0cp5PH8sxorMoer9iiDb8+wJdfdfooqUcK/vhzADt3dYjC40/BDhz8B3X1Vqz5cILioCFEZHPf57dht/PQ6TjMfjMCH219PEk9AAiznArKn/DQ/C8t7wlINaWyyNyFA/sno7q6T9wlSBOkq5oIoLNzBDnrWsQx+k6qEQX5sUErn3BRqCFKjd6gYikk+g8dvsNSRoEd+joe8fEG9kQEsHtPB5qah1hR0QSrqUpRbB9vZN+dvoeTp/6FRsMxR9IhRKzNS2tkukIFKw2OASDhWZTexKIn4Zk2NRR790wKKnrS/IqzvaJj4ZF3CtdvbIXFYhdtClOVASgu7caFC32i8ASzzdKbiopexhIJlvR4R0nffjxvQXHJ41VNEDcGQCo8ShsMMVVc0o3qGgLr6ZhEizSfBtD9+w5WaJQK4ZAypmc8kncCuDgjirUuV99g5YUCIQPbtsZizhyjR0TkuNDchdpakmdPx5SygX4nEhPDsG3rRLS1D+OHCguOHPJd24TxTsbHjFGxhZVbl3+DpzVa0HLpGk2oi8x38FOtlWkDLaXCERzPmBGO9fkm8TeMRKrj9giSk8J8aojSUFrWI65qtNpzy5Y389JBQoZ5N8CpANuwmyGVc/zGrAhs3BArux1TwVFba7WeC4jUjrAjcCuyrgX1c0qjlaKbPfs55tio8H9IkR4r7hEXErl2oppJiDf4MuB9WXA89y3/M937jXSf8NfLxPSUyQZwGzbd5GmNkvvdJpSpqUaszn5BdhtSEorNW26hu3vU748speeLg1PwH1psA38RWZrvAAAAAElFTkSuQmCC";
    let cog_svg = '<span icon="cog"class="it-icon it-icon-cog"><svg data-icon="cog"width="14"height="14"viewBox="0 0 16 16"><path d="M15.19 6.39h-1.85c-.11-.37-.27-.71-.45-1.04l1.36-1.36c.31-.31.31-.82 0-1.13l-1.13-1.13a.803.803 0 00-1.13 0l-1.36 1.36c-.33-.17-.67-.33-1.04-.44V.79c0-.44-.36-.8-.8-.8h-1.6c-.44 0-.8.36-.8.8v1.86c-.39.12-.75.28-1.1.47l-1.3-1.3c-.3-.3-.79-.3-1.09 0L1.82 2.91c-.3.3-.3.79 0 1.09l1.3 1.3c-.2.34-.36.7-.48 1.09H.79c-.44 0-.8.36-.8.8v1.6c0 .44.36.8.8.8h1.85c.11.37.27.71.45 1.04l-1.36 1.36c-.31.31-.31.82 0 1.13l1.13 1.13c.31.31.82.31 1.13 0l1.36-1.36c.33.18.67.33 1.04.44v1.86c0 .44.36.8.8.8h1.6c.44 0 .8-.36.8-.8v-1.86c.39-.12.75-.28 1.1-.47l1.3 1.3c.3.3.79.3 1.09 0l1.09-1.09c.3-.3.3-.79 0-1.09l-1.3-1.3c.19-.35.36-.71.48-1.1h1.85c.44 0 .8-.36.8-.8v-1.6a.816.816 0 00-.81-.79zm-7.2 4.6c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z"></path></svg></span>';
    let copy_svg = '<span icon="copy"class="it-icon it-icon-copy"><svg data-icon="copy"width="12"height="12"viewBox="0 0 16 16"><path d="M15 0H5c-.55 0-1 .45-1 1v2h2V2h8v7h-1v2h2c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-4 4H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm-1 10H2V6h8v8z"></path></svg></span>';
    let spin_svg = '<span icon="pin"class="it-icon it-icon-pin"><svg data-icon="pin"width="14"height="14"viewBox="0 0 16 16"><path d="M9.41.92c-.51.51-.41 1.5.15 2.56L4.34 7.54C2.8 6.48 1.45 6.05.92 6.58l3.54 3.54-3.54 4.95 4.95-3.54 3.54 3.54c.53-.53.1-1.88-.96-3.42l4.06-5.22c1.06.56 2.04.66 2.55.15L9.41.92z"></path></svg></span>';
    let close_svg = '<span icon="close"class="it-icon it-icon-close"><svg data-icon="close"width="18"height="18"viewBox="0 0 16 16"><path d="M9.41 8l3.29-3.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L8 6.59l-3.29-3.3a1.003 1.003 0 00-1.42 1.42L6.59 8 3.3 11.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L8 9.41l3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L9.41 8z"></path></svg></span>';
    let share_svg = '<span icon="share"class="it-icon it-icon-share"><svg data-icon="share"width="12"height="12"viewBox="0 0 16 16"><path d="M10.99 13.99h-9v-9h4.76l2-2H.99c-.55 0-1 .45-1 1v11c0 .55.45 1 1 1h11c.55 0 1-.45 1-1V7.24l-2 2v4.75zm4-14h-5c-.55 0-1 .45-1 1s.45 1 1 1h2.59L7.29 7.28a1 1 0 00-.3.71 1.003 1.003 0 001.71.71l5.29-5.29V6c0 .55.45 1 1 1s1-.45 1-1V1c0-.56-.45-1.01-1-1.01z"></path></svg></span>';
    let search_svg = '<span icon="search"class="it-icon it-icon-search"><svg data-icon="search"width="14"height="14"viewBox="0 0 16 16"><path d="M15.55 13.43l-2.67-2.68a6.94 6.94 0 001.11-3.76c0-3.87-3.13-7-7-7s-7 3.13-7 7 3.13 7 7 7c1.39 0 2.68-.42 3.76-1.11l2.68 2.67a1.498 1.498 0 102.12-2.12zm-8.56-1.44c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z"></path></svg></span>';

    const def = {
        sgt  :"aHR0cHM6Ly9mYW55aS5zb2dvdS5jb20vdGV4dD9rZXl3b3JkPQ==",
        ali  :"aHR0cHM6Ly90cmFuc2xhdGUuYWxpYmFiYS5jb20vYXBpL3RyYW5zbGF0ZS90ZXh0",
        csrf :"aHR0cHM6Ly90cmFuc2xhdGUuYWxpYmFiYS5jb20vYXBpL3RyYW5zbGF0ZS9jc3JmdG9rZW4=",
        ydt  :"aHR0cHM6Ly9mYW55aS55b3VkYW8uY29tL3RyYW5zbGF0ZV9vP3NtYXJ0cmVzdWx0PWRpY3Qmc21hcnRyZXN1bHQ9cnVsZQ==",
        ydm  :"aHR0cDovL20ueW91ZGFvLmNvbS90cmFuc2xhdGU=",
        qqt  :"aHR0cHM6Ly9mYW55aS5xcS5jb20vYXBp",
        bdt  :"aHR0cHM6Ly9mYW55aS5iYWlkdS5jb20=",
        bing :"aHR0cHM6Ly9jbi5iaW5nLmNvbQ==",
        icb  :"aHR0cHM6Ly9pZmFueWkuaWNpYmEuY29tL2luZGV4LnBocD9jPXRyYW5zJm09ZnkmY2xpZW50PTYmYXV0aF91c2VyPWtleV93ZWJfZmFueWkmc2lnbj0=",
        ticb :"NmtleV93ZWJfZmFueWlpZmFueWl3ZWI4aGM5czk4ZQ==",
        cai  :"aHR0cHM6Ly9hcGkuaW50ZXJwcmV0ZXIuY2FpeXVuYWkuY29tL3Yx",
        cait :"cWdlbXY0anIxeTM4anlxNnZodmk=",
        t_set: /(sssam|scigreat)\.com\/s\/(app|crx)/i,
        t_tua  : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/188.0.5845.188 Safari/537.36",
        t_ydt  : "&smartresult=dict&client=fanyideskweb&bv=11b89db74b56b4ba918674d36e95a672&doctype=json&version=2.1&keyfrom=fanyi.web&action=FY_BY_REALTlME",
        t_itran: "PGRpdiBpZD0iaVRyYW5zbGF0b3IiPjxkaXYgaWQ9ImlUcmFuLWJ0biI+PGltZyBhbHQ9IueCueWHu+WxleW8gOe/u+ivkee7k+aenCJ0aXRsZT0i54K55Ye75bGV5byA57+76K+R57uT5p6cIj48L2Rpdj48ZGl2IGlkPSJpVHJhbi1wYW5lbCI+PGRpdiBjbGFzcz0iaXQtZnJvbnQiPjxkaXYgY2xhc3M9Iml0LWhlYWRlciI+PGRpdiBjbGFzcz0iaXQtbGVmdCI+PGRpdiBjbGFzcz0ic3dpdGNoLXBpbiI+PGJ1dHRvbiB0eXBlPSJidXR0b24iY2xhc3M9Iml0LWJ1dHRvbiBzcGluLWJ0biJ0aXRsZT0i5Zu65a6a57+76K+R6Z2i5p2/Ij48L2J1dHRvbj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJpdC1jZW50ZXIidGl0bGU9IuaMieS9j+S4jeaUvuWPr+S7peaLluWKqCI+PC9kaXY+PGRpdiBjbGFzcz0iaXQtcmlnaHQiPjxidXR0b24gdHlwZT0iYnV0dG9uImNsYXNzPSJpdC1idXR0b24gaXNlYXJjaC1pY29uInRpdGxlPSLmiZPlvIDmkJzntKLmoYYiPjwvYnV0dG9uPjxhIHJvbGU9ImJ1dHRvbiJ0YXJnZXQ9Il9ibGFuayJ0aXRsZT0i5omT5byA6K6+572u6aG16Z2iImNsYXNzPSJpdC1idXR0b24gY29nLWJ0biI+PC9hPjxidXR0b24gdHlwZT0iYnV0dG9uInRpdGxlPSLlhbPpl60iY2xhc3M9Iml0LWJ1dHRvbiBpY2xvc2UtYnRuIj48L2J1dHRvbj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJpdC1zZWFyY2ggaXNlYXJjaCI+PGRpdiBjbGFzcz0icXVpY2staXNlYXJjaCI+PHRleHRhcmVhIHBsYWNlaG9sZGVyPSLovpPlhaXmlofmnKzvvIzmjInmkJzntKLlm77moIfnv7vor5EuLi4iY2xhc3M9Iml0LWlucHV0IGl0LWZpbGwiPjwvdGV4dGFyZWE+PGJ1dHRvbiB0eXBlPSJidXR0b24iY2xhc3M9Iml0LWJ1dHRvbiBpc2VhcmNoLWJ0biJ0aXRsZT0i57+76K+R5paH5pysIj48L2J1dHRvbj48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJpdC1ib2R5IGlib2R5Ij48L2Rpdj48L2Rpdj48L2Rpdj4=",
        t_tip  : "脚本安装成功,请重新刷新网页使用吧!功能简介如下:\r\n\r\n(1) 多功能网页翻译工具,支持多种翻译引擎\r\n\r\n(2) 快捷键翻译:选中文字,按 T 翻译,按 Y 取消(快捷键可修改)\r\n\r\n(3) 独立面板翻译:可显示多个翻译结果,支持多种语言翻译\r\n\r\n(4) 可自定义更换翻译结果显示位置,自定义更换翻译字体颜色"
    };
    const message = {
        success: (text) => { toast.fire({title: text, icon: "success"}) },
        error:   (text) => { toast.fire({title: text, icon: "error" }) },
        warning: (text) => { toast.fire({title: text, icon: "warning"}) },
        info:    (text) => { toast.fire({title: text, icon: "info" }) },
        question:(text) => { toast.fire({title: text, icon: "question"})}
    };
    let toast = Swal.mixin({
        toast: true,
        position: "top",
        showConfirmButton: false,
        timer: 2500,
        timerProgressBar: false,
        didOpen: (toast) => {
            toast.addEventListener("mouseenter", Swal.stopTimer);
            toast.addEventListener("mouseleave", Swal.resumeTimer);
        }
    });
    let base = {
        d(str) { return decodeURIComponent(escape(atob(str))) },
        e(str) { return btoa(unescape(encodeURIComponent(str))) },
        deURL(str) { return decodeURIComponent(str) },
        enURL(str) { return encodeURIComponent(str) },
        setV(name, value) { GM_setValue(name, value) },
        getV(name) { return GM_getValue(name) },
        delV(name) { GM_deleteValue(name) },
        isType(obj) { return Object.prototype.toString.call(obj).replace(/^\[object (.+)\]$/, '$1').toLowerCase(); },
        get(url, type) {
            return new Promise((resolve,reject) => {
                GM_xmlhttpRequest({
                    method: "GET", url,
                    responseType: type || "json",
                    onload: (res) => { resolve(res.response || res.responseText) },
                    onerror: (e) => { reject('') }
                });
            });
        },
        post(url, data, headers, h) {
            if (this.isType(data) === "object") { data = JSON.stringify(data); }
            headers === undefined || headers.length == 0 ? headers = h === undefined ? { "Content-Type":"application/x-www-form-urlencoded" } : { "Content-Type":"application/json", "User-Agent": def.t_tua }:'';
            return new Promise((resolve,reject) => {
                GM_xmlhttpRequest({
                    method: "POST", url, data, headers,
                    responseType: "json",
                    onload: (res) => { resolve(res.response || res.responseText) },
                    onerror: (e) => { reject('') }
                });
            });
        },
        addStyle(id, tag, css) {
            let doc = document, styleDom = doc.getElementById(id), style = doc.createElement(tag);
            if (styleDom) return;
            style.id = id;
            style.innerHTML = css;
            doc.getElementsByTagName("head")[0].appendChild(style);
        },
        initConfig() {
            initOption = {
                "itran_quick_open": true,
                "itran_panel_open": true,
                "itran_panel_size": 13,
                "itran_panel_eng" : ["百度翻译","必应翻译","彩云小译","搜狗翻译"],
                "itran_tkey": [false, false, false, false, false, false],
                "itran_key" : ["T", "Y"],
                "itran_tolang": "自动检测",
                "itran_place" : "句后",
                "itran_icopos": "右上",
                "itran_engine": "百度翻译",
                "itran_color" : "#1b538c"
            };
            base.getV("odata") === undefined && base.setV("odata", initOption);
            odata = base.getV("odata"); for(const k in initOption) { odata[k] === undefined && base.setV("odata", initOption); }
        },
        async getBaseData() {
            var tdata_time = base.getV("tdata_time");
            if (tdata_time === undefined || new Date().getTime() - tdata_time > 8e8) {
                base.setV("tdata", "eyJpdHJhbiI6Imh0dHBzOi8vd3d3LnNjaWdyZWF0LmNvbS9zL2FwcC8/dD1pdHJhbnNsYXRvciIsInNvZnR3YXJlIjoiaHR0cHM6Ly93d3cuc2NpZ3JlYXQuY29tL2FkL3NvZnR3YXJlIn0=");
                base.setV("tdata_time", new Date().getTime());
                if (tdata_time === undefined) { alert(def.t_tip); location.reload() }
            }
            if (base.getV("odata")) odata = base.getV("odata");
            if (base.getV("tdata")) tdata = JSON.parse(base.d(base.getV("tdata")));
            if (base.getV("kdata") === undefined || base.getV("kdata_time") === undefined || new Date().getTime() - base.getV("kdata_time") > 7.2e6) upToken.all();
        },
        addInitStyle() {
            var color = odata.itran_color, bw = base.getV("itran_width"), sb = base.getV("itran_so_open"), sh = base.getV("itran_so_height"), size = odata.itran_panel_size,
            css = `#iTran-panel{width:${bw?bw:240}px}.it-search{height:${sb?"auto":0}}.it-result p,.it-heading,.it-fill{font-size:${size}px!important}.it-fill{height:${sh?sh:66}px}.itranslator_span{color: ${color}}`;
            css += `.itranslator_span{font-weight:bold;font-family:Times New Roman,STKaiTi,KaiTi,sans-serif,Georgia,Segoe UI,Microsoft Yahei}#iTran-btn{top:0;left:0;display:none;position:absolute;z-index:9999999999}#iTran-btn img{cursor:pointer;width:20px;height:20px;background-color:#ffffff;border:1px solid #aeaeae;border-radius:4px;padding:2px;box-sizing:content-box}#iTran-btn img:hover{border:1px solid #ff9900}#iTran-panel{top:0;left:0;display:none;min-width:240px;max-width:100%;position:absolute;font-size:13px;border-radius:3px;box-sizing:border-box;z-index:999999999;color:#333;background-color:#f5f8fa;box-shadow:0px 0px 10px #0000004d;}#iTran-panel,.it-fill{font-family:Times New Roman,Arial,STKaiti,KaiTi,sans-serif,Segoe UI,Microsoft Yahei!important}#iTran-panel.spin,#iTran-panel.it-spin{position:fixed;}.it-body{padding:0 10px;max-height:580px;margin-bottom:10px;flex-grow:1;overflow:auto;scrollbar-width:thin;}.it-body::-webkit-scrollbar{width:6px;background-color:rgba(0,0,0,0);-webkit-border-radius:100px}.it-body::-webkit-scrollbar:hover{background-color:rgba(0,0,0,0.09)}.it-body::-webkit-scrollbar-thumb:vertical{background:rgba(0,0,0,0.5);-webkit-border-radius:100px}.it-body::-webkit-scrollbar-thumb:vertical:active{background:rgba(0,0,0,0.61);-webkit-border-radius:100px}.it-input{background:#fff;border-radius:3px;border:thin solid #aaaaaa;color:#182026;font-weight:400;outline:0;transition:box-shadow .1s cubic-bezier(.4,1,.75,.9);vertical-align:middle}.it-header{display:flex;margin-bottom:10px;padding:4px 6px 4px 10px;border-bottom:1px solid #e8e8e8}.it-center{cursor:pointer;flex-grow:1;align-self:stretch}.it-left,.it-right{display:flex}.it-button{position:relative!important;margin:0 0 0 1px;padding:0;min-height:20px;min-width:20px;max-height:20px;max-width:20px;background:0 0;box-shadow:none;align-items:center;border:none;border-radius:3px;cursor:pointer;display:inline-flex;flex-direction:row;font-size:14px;justify-content:center;text-align:left;vertical-align:middle}.quick-isearch{position:relative;padding:0 10px 10px 10px}.it-search{overflow:hidden;transition:transform .2s cubic-bezier(.4,1,.75,.9)}.it-fill{width:100%;padding:5px;margin:0;font-size:13px;min-height:44px;max-width:100%;min-width:220px;line-height:1.3;box-sizing:border-box}.isearch-btn{display:none;position:absolute!important;opacity:0.6;right:18px;bottom:18px;min-height:18px;min-width:18px;padding:0 7px;color:#fff;background-color:#137cbd}.isearch-btn:hover{opacity:1}.it-card{margin:8px 0;padding:2px 5px;background-color:#fff;border-radius:3px;border:thin dashed #aaaaaa;transition:transform .2s cubic-bezier(.4,1,.75,.9),box-shadow .2s cubic-bezier(.4,1,.75,.9)}.it-card .it-button{visibility:hidden}.it-card:hover .it-button{visibility:visible}.it-card:first-child{margin-top:0}.it-card:last-child{margin-bottom:0}.it-card .it-icon{position:relative;margin-left:1px}.it-icon{display:inline-block;flex:0 0 auto;vertical-align:text-bottom}.it-icon:not(:empty):before{content:""!important;box-sizing:inherit;content:unset!important}.it-icon>svg{display:block}.it-icon>svg:not([fill]){fill:currentColor}.it-legend{display:flex;align-items:center;justify-content:space-between}.legend-left{display:flex;align-items:center}.engine-icon{display:inline-block;width:14px;height:14px;background-size:contain;margin-right:3px}.it-heading{font-size:13px;font-weight:400;margin:0 2px 0 0;letter-spacing:0;}.it-result p{margin:2px 0;font-size:13px;font-weight:bold;line-height:1.3;text-align:left;letter-spacing:0;overflow-wrap:break-word}.it-icon-pin{transition:transform 0.2s,color 0.2s;transform:rotate(-45deg)}.it-spin .it-icon-pin,.spin .it-icon-pin{transform:rotate(-70deg)}.it-button .it-icon{color:#5c7080}.it-button .it-icon:first-child:last-child{margin:0 -7px}.it-button:hover{background:rgba(167,182,194,.3);box-shadow:none;color:#182026;text-decoration:none}.quick-isearch .it-icon{color:#ffffff}.isearch-btn:hover{background:rgba(16,107,163)}.it-active{background:rgba(115,134,148,.3);}.it-button:disabled{color:rgba(92,112,128,.6);background-color:initial;pointer-events:none;}.it-button:disabled .it-icon{color:inherit;}`;
            $("body").append(base.d(def.t_itran)); 
            $("#iTran-btn img").attr("src",itran_ico); 
            $(".spin-btn").append(spin_svg); 
            $(".isearch-icon").append(search_svg);
            $(".isearch-btn").append(search_svg); 
            $(".cog-btn").append(cog_svg).attr("href",tdata.itran); 
            $(".iclose-btn").append(close_svg);
            base.addStyle("itran_style", "style", css);
        },
        registerMenu() {
            GM_registerMenuCommand("选项设置", () => { GM_openInTab(tdata.itran, { active: true }) });
            GM_registerMenuCommand("免费软件", () => { GM_openInTab(tdata.software, { active: true }) });
            GM_registerMenuCommand("打开翻译", () => { $("#iTran-panel").show().css({ left: $(window).width()/2, top: $(window).scrollTop() }); });
        },
        pageListener() {
            var obj = $("#iTran-panel"), twidth = $(window).width(), theight = $(window).height();
            obj.mousemove((e) => {
                obj.unbind("mousedown"); obj.css("cursor","default");
                var left, top, yy, scroll = $(window).scrollTop(), nowleft = obj.offset().left, nowtop = obj.offset().top - scroll, isSpin = $('.it-spin').css('display') === 'block' ? true : false;
                if (e.clientX - nowleft > 0 && e.clientX - nowleft < obj.width() && e.clientY - nowtop > 0 && e.clientY - nowtop < 30) {
                    obj.mousedown((e) => {
                        var ismove = true, x = e.pageX - nowleft, y = e.pageY - nowtop;
                        doc.mousemove((e) => {
                            e.pageX - x < 0 ? left = 0 : e.pageX - x + obj.width() > twidth ? left = twidth - obj.width() : left = e.pageX - x;
                            e.pageY - y < 0 ? top = 0 : e.pageY - y + obj.height() > theight ? top = theight - obj.height() : top = e.pageY - y;
                            top = isSpin ? top : top + scroll; yy = isSpin ? e.pageY - y : e.pageY - y + scroll;
                            ismove && obj.css({"left": e.pageX - x, "top": yy});
                        }).mouseup(() => {
                            ismove && obj.css({"left": left, "top": top}); ismove = false;
                        });
                    });
                }
                if (e.clientX - nowleft > 0 && e.clientX - nowleft < 10 && e.clientY - nowtop > 30 && e.clientY - nowtop < obj.height()) {
                    obj.css("cursor","w-resize");
                    obj.mousedown((e) => {
                        var ismove = true, x = e.pageX - nowleft, w = e.pageX + obj.width();
                        doc.mousemove((e) => {
                            ismove && obj.css({"width":w - e.pageX, "left":e.pageX - x});
                        }).mouseup(() => {
                            ismove = false; base.setV('itran_width',obj.width());
                        });
                    });
                }
                if (e.clientX - nowleft > obj.width() - 10 && e.clientX - nowleft < obj.width() && e.clientY - nowtop > 30 && e.clientY - nowtop < obj.height()) {
                    obj.css("cursor","e-resize");
                    obj.mousedown((e) => {
                        var ismove = true, x = e.pageX - nowleft, w = e.pageX - obj.width();
                        doc.mousemove((e) => {
                            ismove && obj.css({"width":e.pageX - w});
                        }).mouseup(() => {
                            ismove = false; base.setV('itran_width',obj.width());
                        });
                    });
                }
            });
            if (def.t_set.test(site)) {
                $("#itranslator").attr("version",GM_info.script.version);
                for (const k in odata) {
                    switch (k) {
                        case "itran_place": case "itran_engine": case "itran_icopos": case "itran_panel_size": case "itran_tolang":
                            $("#"+k+" dd[lay-value='0']").removeClass("layui-this");
                            $("#"+k+" option").each((i,e) => {
                                $(e).text() == odata[k] && $(e).attr("selected", true) && $(e).parent().parent().find("input").val(odata[k]) &&
                                $(e).parent().parent().find('dd[lay-value="'+$(e).val()+'"]').addClass("layui-this");
                            }); break;
                        case "itran_key":
                            var tk = odata.itran_tkey, tkey = odata[k][0], hkey = odata[k][1];
                            if(tk[2]) tkey = "Shift+" + tkey; if(tk[1]) tkey = "Alt+" + tkey;if(tk[0]) tkey = "Ctrl+" + tkey;
                            if(tk[5]) hkey = "Shift+" + hkey; if(tk[4]) hkey = "Alt+" + hkey;if(tk[3]) hkey = "Ctrl+" + hkey;
                            $("#"+k).val(tkey).attr("ctrlkey",tk[0] ? tk[0] : "").attr("altkey",tk[1] ? tk[1] : "").attr("shiftkey",tk[2] ? tk[2] : "").attr("tkey",odata[k][0]);
                            $("#h"+k).val(hkey).attr("ctrlkey",tk[3] ? tk[3] : "").attr("altkey",tk[4] ? tk[4] : "").attr("shiftkey",tk[5] ? tk[5] : "").attr("tkey",odata[k][1]); break;
                        case "itran_color":
                            $("#"+k+" input").val(odata[k]); $("#"+k+" .layui-colorpicker-trigger-span").css({background:odata[k]}); break;
                        case "itran_panel_eng":
                            var peng = odata.itran_panel_eng;
                            for(var n in peng) {
                                $("#"+k+" input").each((i,e) => { var order = n == 0  ?  peng[n] : " &gt; " + peng[n];
                                    $(e).attr("name") === peng[n] && $(e).prop("checked", true) && $(e.nextSibling).addClass("layui-form-checked") && $("#"+k+"_order").append('<span cid="'+peng[n]+'">'+order+'</span>');
                                });
                            }; break;
                        default:
                            if (odata[k] === true) {
                                $("#"+k+" input").prop("checked", true);
                                $("#"+k+" .layui-form-switch").addClass("layui-form-onswitch");
                                $("#"+k+" em").text("ON");
                            }; break;
                    }
                }
            }
            doc.on("click", ".itranSave", (e) => {
                var option = {};
                for (const k in odata) {
                    switch (k) {
                        case "itran_color": case "itran_place": case "itran_engine": case "itran_icopos": case "itran_panel_size": case "itran_tolang":
                            option[k] = $("#"+k+" input").val()?$("#"+k+" input").val():odata[k]; break;
                        case "itran_key":
                            option.itran_tkey = [Boolean($("#"+k).attr("ctrlkey")),Boolean($("#"+k).attr("altkey")),Boolean($("#"+k).attr("shiftkey")),Boolean($("#h"+k).attr("ctrlkey")),Boolean($("#h"+k).attr("altkey")),Boolean($("#h"+k).attr("shiftkey"))];
                            option[k] = []; option[k][0] = $("#"+k).attr("tkey"); option[k][1] = $("#h"+k).attr("tkey"); break;
                        case "itran_panel_eng":
                            option[k] = []; $("#"+k+"_order span").each((i,e) => { option[k].push($(e).attr("cid")); }); break;
                        default: if($("#"+k+" input")[0]) option[k] = $("#"+k+" input")[0].checked; break;
                    }
                }
                base.setV("odata", option); upToken.all();
            });
            doc.on("click", ".itranReset", (e) => {
                if (confirm("提示:即将进行初始化,所有设置将重置,确认吗?")) {
                    base.setV("odata", initOption);
                    message.success("初始化设置成功,重启插件中!");
                    setTimeout(() => { location.replace(tdata.itran); }, 1.5e3);
                }
            });
            doc.on("click", ".itranDelete", (e) => {
                var del_time = base.getV("del_time");
                if (del_time === undefined || new Date().getTime() - del_time > 2e7) {
                    if (confirm("警告:除非插件无法使用,否则不要删除所有数据,你确认吗?")) {
                        base.delV("tdata_time"); base.delV("kdata_time"); base.setV("odata", initOption);
                        base.setV("del_time", new Date().getTime());
                        message.success("所有数据删除成功,重启插件中!");
                        setTimeout(() => { location.replace(tdata.itran); }, 1.5e3);
                    }
                } else { alert("提示:6小时内删除过所有数据,请6小时后重试!"); }
            });
            doc.on("click", ".isearch-icon", () => {
                if ($(".isearch-icon").is(".it-active")) {
                    $(".isearch-icon").removeClass("it-active"); $(".it-search").height("0"); base.setV("itran_so_open",false);
                } else {
                    $(".isearch-icon").addClass("it-active"); $(".it-search").height("auto"); base.setV("itran_so_open",true);
                }
            });
            doc.on("click", ".spin-btn", () => {
                var obj = $("#iTran-panel"), top = obj.offset().top, scroll = $(window).scrollTop();
                if ($(".spin-btn").is(".it-active")) {
                    $(".spin-btn").removeClass("it-active"); $("#iTran-panel").removeClass("it-spin"); obj.css("top",top);
                } else {
                    $(".spin-btn").addClass("it-active"); $("#iTran-panel").addClass("it-spin"); obj.css("top",top - scroll);
                }
            });
            doc.on("click", ".icopy-btn", (e) => { GM_setClipboard($(e.currentTarget).parent().parent().parent().find(".it-result p").text()); message.success("复制成功!"); });
            doc.on("keyup", ".it-fill", () => { $(".it-fill").val() === "" ? $(".isearch-btn").hide() : $(".isearch-btn").css("display","inline-flex"); });
            doc.on("click", ".iclose-btn", () => { $("#iTran-panel").removeClass("it-spin").hide(); $(".spin-btn").removeClass("it-active"); });
            doc.on("click", ".isearch-btn", () => { utils.showResult($(".it-fill").val()); base.setV("itran_so_height",$(".it-fill").height()); });
            base.getV("itran_so_open") ? $(".isearch-icon").addClass("it-active") : $(".isearch-icon").removeClass("it-active");
        }
    };

    let func = {
        tk(a,b) {
            if(b === undefined) return;
            var d = b.split("."); b = Number(d[0]) || 0;
            for (var e = [], f = 0, g = 0; g < a.length; g++) {
                var k = a.charCodeAt(g);
                128 > k ? e[f++] = k : (2048 > k ? e[f++] = k >> 6 | 192 : (55296 == (k & 64512) && g + 1 < a.length && 56320 == (a.charCodeAt(g + 1) & 64512) ? (k = 65536 + ((k & 1023) << 10) + (a.charCodeAt(++g) & 1023), e[f++] = k >> 18 | 240, e[f++] = k >> 12 & 63 | 128) : e[f++] = k >> 12 | 224, e[f++] = k >> 6 & 63 | 128), e[f++] = k & 63 | 128);
            }
            a = b; for (f = 0; f < e.length; f++)a = this.Fo(a+e[f], "+-a^+6");
            a = this.Fo(a, "+-3^+b+-f"); a ^= Number(d[1]) || 0;
            0 > a && (a = (a & 2147483647) + 2147483648); a %= 1E6;
            return a.toString() + "." + (a ^ b);
        },
        Fo(a, b) {
            for (var c = 0; c < b.length - 2; c += 3) {
                var d = b.charAt(c + 2);
                d = "a" <= d ? d.charCodeAt(0) - 87 : Number(d);
                d = "+" == b.charAt(c + 1) ? a >>> d : a << d;
                a = "+" == b.charAt(c) ? a + d & 4294967295 : a ^ d;
            }
            return a;
        },
        caide(t) {
            function ee(t) { return "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".indexOf(t) }
            t = t.split("").map(function(t) { return - 1 < ee(t) ? "NOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm" [ee(t)] : t }).join("");
            return base.d(t).toString();
        }
    };

    let upToken = {
        async bing() {
            var res = await base.get(base.d(def.bing)+'/translator');
            kdata.ig = res.match(/IG:"([A-Za-z0-9]+)"/)[1];
            [, kdata.key, kdata.token] = res.match(/var params_AbusePreventionHelper\s*=\s*\[([0-9]+),\s*"([^"]+)",[^\]]*\];/);
            kdata.iid = $(res).find("#rich_tta").attr("data-iid");
            base.setV("kdata", kdata);
        },
        async ali() {
            var csrf = await base.get(base.d(def.csrf));
            kdata.csrf = csrf.token;
            base.setV("kdata", kdata);
        },
        async bdt() {
            var res = await base.get(base.d(def.bdt));
            kdata.gtk = /window\.gtk = ['"](.*?)['"]/.exec(res)[1];
            kdata.btoken = /token: ['"](.*?)['"]/.exec(res)[1];
            base.setV("kdata", kdata);
        },
        async cai() {
            kdata.caid = CryptoJS.MD5(Math.random().toString()).toString();
            var data = {"browser_id": kdata.caid };
            var header = { "Content-Type": "application/json", "X-Authorization": "token:"+base.d(def.cait), "origin": "https://fanyi.caiyunapp.com" };
            var res = await base.post(base.d(def.cai)+'/user/jwt/generate',data,header);
            kdata.jwt = res.jwt;
            base.setV("kdata", kdata);
        },
        async ydt() {
            var r = await base.get("https://fanyi.youdao.com");
            var n = r.match(/<script.*?src="(http[^"]+fanyi\.min\.js)"/);
            var p = await base.get(n[1]);
            kdata.ydt = p.match(/sign: n\.md5\("fanyideskweb" \+ e \+ i \+ "([^"]+)"\)/)[1];
            base.setV("kdata", kdata);
        },
        async qqt() {
            var res = await base.post(base.d(def.qqt)+'/reauth12f','','',1);
            kdata.qtv = res.qtv;
            kdata.qtk = res.qtk;
            base.setV("kdata", kdata);
        },
        all() {
            this.bing(); this.ali(); this.bdt(); this.cai(); base.setV("kdata_time", new Date().getTime());
        }
    };

    let utils = {
        getTransInfo(e,node,engine) {
            var t_num = 0, ele = $(".itranslator_span");
            ele.each((i,v) => { let m = parseInt($(v).attr("value")); if (m > t_num) t_num = m; });
            if (e) {
                var sp, tspan = document.createElement("span"), eng = engine ? engine : odata.itran_engine, num = { "必应翻译": 2500, "有道翻译": 1000 };
                if (!engine || e.length > 5e3) { $(tspan).addClass("itranslator_span").attr("value",++t_num).text(" "+odata.itran_engine+"等待中... "); node.insertNode(tspan); }
                if (e.length > 5e3) {
                    $(tspan).text(" 字数过多,翻译暂不可用,请减少字数重试...");
                } else {
                    tspan = engine === undefined ? tspan : node;
                    sp = engine === undefined ? ' ' : '';
                    if (!num[eng] || e.length < num[eng]) {
                        utils.getTransText(e, tspan, eng);
                    } else {
                        $(tspan).text(sp + eng + "只能翻译" + num[eng] + "字符以内,请减少字数重试...");
                    }
                }
            } else { $(".itranslator_span[value=" + t_num + "]").remove() }
        },
        async getTransText(e,node,eng) {
            var tapi, url, data, header, sign, num = 0, res = "", resTxt = "", ee = e.replace(/[,:“”‘’{}【】。、・=「」『』()〔〕[]-~?!……]/g,""),
            tolang = { "自动检测":"auto", "中文":"zh", "英语":"en", "法语":"fr", "日语":"ja", "德语":"de", "俄语":"ru", "韩语":"ko", "西班牙":"es" },
            langZH = { "有道翻译":"zh-CHS", "必应翻译":"zh-Hans", "搜狗翻译":"zh-CHS"}, bde = {"日语":"jp", "韩语":"kor", "法语":"fra", "西班牙":"spa"}//,"谷歌翻译":"zh-CN", };
            tgoing = true; 
            kdata = base.getV("kdata"); 
            e = e.replace(/\r|\n|\r\n/g," ");
            lang = (/[\u4E00-\u9FA5]/g.test(ee) && !/[\u0800-\u4e00]/g.test(ee)) ? "en" : "zh";
            lang = odata.itran_tolang === "自动检测" ? lang : tolang[odata.itran_tolang]; 
            if(lang === "zh" && langZH[eng]) lang = langZH[eng];
            switch(eng) {
                case "彩云小译": while (!resTxt.length && num < 2) {
                    data = {"source":e,"trans_type":"auto2"+lang,"request_id":"web_fanyi","media":"text","os_type":"web","dict":true,"cached":true,"replaced":true,"detect":true,"browser_id":kdata.caid};
                    header = { "X-Authorization": "token:"+base.d(def.cait), "T-Authorization": kdata.jwt, "User-Agent": def.t_tua };
                    res = await base.post(base.d(def.cai)+"/translator",data,header); resTxt = res.target ? func.caide(res.target) : "";
                    !resTxt.length && await upToken.cai(); num++ }; utils.transOutput(resTxt,node); break;
                case "百度翻译": while (!resTxt.length && num < 2) {
                    if (bde[odata.itran_tolang]) lang = bde[odata.itran_tolang];
                    var e_r = e.length>30?(e.substr(0,10)+e.substr(~~(e.length/2)-5,10)+e.substr(-10)):e;
                    data = `from=auto&to=${lang}&query=${base.enURL(e)}&simple_means_flag=3&sign=${func.tk(e_r,kdata.gtk)}&token=${kdata.btoken}&domain=common`;
                    res = await base.post(base.d(def.bdt)+"/v2transapi",data); resTxt = res.trans_result ? res.trans_result.data[0].dst : "";
                    !resTxt.length && await upToken.bdt(); num++ }; utils.transOutput(resTxt,node); break;
                case "阿里翻译": while (!resTxt.length && num < 2) {
                    data = `srcLang=auto&tgtLang=${lang}&domain=general&_csrf=${kdata.csrf}&query=${base.enURL(e)}`;
                    res = await base.post(base.d(def.ali),data); resTxt = res.data ? res.data.translateText : "";
                    !resTxt.length && await upToken.ali(); num++ }; utils.transOutput(resTxt,node); break;
                case "必应翻译": while (!resTxt.length && num < 2) {
                    url = `${base.d(def.bing)}/ttranslatev3?isVertical=1&&IG=${kdata.ig}&IID=${kdata.iid}`;
                    data = `fromLang=auto-detect&to=${lang}&token=${kdata.token}&key=${kdata.key}&text=${base.enURL(e)}`;
                    res = await base.post(url,data); resTxt = res[0] ? res[0].translations[0].text : "";
                    !resTxt.length && await upToken.bing(); num++ }; utils.transOutput(resTxt,node); break;
                /*case "腾讯翻译": while (!resTxt.length && num < 2) { if(lang == "zh") lang = "zh-CN";
                    data = `source=auto&target=${lang}&sourceText=${base.enURL(e)}&qtv=${base.enURL(kdata.qtv)}&qtk=${base.enURL(kdata.qtk)}&sessionUuid=translate_uuid${new Date().getTime()}`;
                    header = { "Host":"fanyi.qq.com", "Origin":"https://fanyi.qq.com", "Content-Type": "application/x-www-form-urlencoded", "Referer": "https://fanyi.qq.com/", "User-Agent": def.t_tua }
                    res = await base.post(base.d(def.qqt)+"/translate",data,header); console.log(res); resTxt = res.translate.records ? res.translate.records[0].targetText : "";
                    !resTxt.length && await upToken.qqt(); num++ }; utils.transOutput(resTxt,node);
                    break;*/
                case "有道翻译":
                    /* while (!resTxt.length && num < 2) {
                    var lts = "" + new Date().getTime(), salt = lts + Math.floor(10 * Math.random()); sign = CryptoJS.MD5("fanyideskweb" + e + salt + kdata.ydt);
                    data = `i=${base.enURL(e)}&salt=${salt}&sign=${sign}&lts=${lts}${def.t_ydt}&from=AUTO&to=${lang}`;
                    res = await base.post(base.d(def.ydt),data,header); if(res.translateResult) { for(var i in res.translateResult[0]) resTxt += res.translateResult[0][i].tgt };
                    !resTxt.length && await upToken.ydt(); num++ }; utils.transOutput(resTxt,node); break;*/
                    data = "type=AUTO&inputtext=" + base.enURL(e); res = await base.post(base.d(def.ydm),data);
                    resTxt = $(res).find("#translateResult li").text() ? $(res).find("#translateResult li").text() : "";
                    utils.transOutput(resTxt,node); break;
                /*case "谷歌翻译":
                    tapi = Math.random() > 0.5 ? tdata.ggt : tdata.gmt;
                    url = tapi + lang + "&q=" + base.enURL(e); setTimeout(() => { tgoing = false; }, 3e3);
                    $.getJSON(url, (res) => { if (res) for(const i in res[0]) resTxt += res[0][i][0]; utils.transOutput(resTxt,node) }); break;*/
                case "搜狗翻译":
                    utils.transOutput("", node, base.d(def.sgt) + base.enURL(e) + "&transto=" + lang, "#trans-result"); break;
                default:
                    sign = CryptoJS.MD5(base.d(def.ticb) + e.replace(/(^\s*)|(\s*$)/g, "")).toString().substring(0,16);
                    data = `from=auto&t=${lang}&q=${base.enURL(e)}`; res = await base.post(base.d(def.icb) + sign,data);
                    resTxt = res.content ? res.content.out : ""; utils.transOutput(resTxt,node); break;
            }
        },
        async transOutput(e,node,url,s) {
            var sp = $(node).is(".itranslator_span")?" ":"";
            if (url && url.length > 0) {
                var res = await base.get(url);
                if(res) e += $(res).find(s).text(); tgoing = false;
                e.length > 0 ? $(node).text(sp+e+sp) : $(node).text(sp+"翻译暂不可用,请稍后重新尝试...");
            } else {
                tgoing = false; e.length > 0 ? $(node).text(sp+e+sp) : $(node).text(sp+"翻译暂不可用,请稍后重新尝试...");
            }
            setTimeout(() => { tgoing = false; }, 3e3);
        },
        showResult(e) {
            $(".it-body").empty(); $(".it-fill").val(e); $("#iTran-panel").show();
            random = (Math.floor(Math.random() * 9e2) + 1e2).toString();
            for(let i in odata.itran_panel_eng) {
                var eid, eid_ico, go_link, node = random+" .it-result p", eng = odata.itran_panel_eng[i];
                switch(eng) {
                    case "彩云小译": eid = "cai"; eid_ico = cai_ico; utils.getTransInfo(e,"."+eid+node,eng); go_link = `https://fanyi.caiyunapp.com`; break;
                    case "百度翻译": eid = "bdt"; eid_ico = bdt_ico; utils.getTransInfo(e,"."+eid+node,eng); go_link = `https://fanyi.baidu.com/translate#auto/${lang}/${base.enURL(e)}`; break;
                    case "阿里翻译": eid = "ali"; eid_ico = ali_ico; utils.getTransInfo(e,"."+eid+node,eng); go_link = `https://translate.alibaba.com`; break;
                    case "必应翻译": eid = "bin"; eid_ico = bin_ico; utils.getTransInfo(e,"."+eid+node,eng); go_link = `https://cn.bing.com/translator/?from=auto&to=${lang}&text=${base.enURL(e)}`; break;
                    case "有道翻译": eid = "ydt"; eid_ico = ydt_ico; utils.getTransInfo(e,"."+eid+node,eng); go_link = `https://www.youdao.com/result?lang=en&word=${base.enURL(e)}`; break;
                    /*case "谷歌翻译": eid = "ggt"; eid_ico = ggt_ico; utils.getTransInfo(e,"."+eid+node,eng); go_link = `https://translate.google.com/?sl=auto&tl=${lang}&text=${base.enURL(e)}`; break;*/
                    case "搜狗翻译": eid = "sgt"; eid_ico = sgt_ico; utils.getTransInfo(e,"."+eid+node,eng); go_link = `https://fanyi.sogou.com/text?transfrom=auto&transto=${lang}&keyword=${base.enURL(e)}`; break;
                    case "爱词霸": eid = "icb"; eid_ico = icb_ico; utils.getTransInfo(e,"."+eid+node,eng); go_link = `http://www.iciba.com/word?w=${base.enURL(e)}`; break;
                }
                var result = `<div class="it-card ${eid+random}"><div class="it-legend"><div class="legend-left"><span class="engine-icon"style="background-image: url(${eid_ico});"></span><div class="it-heading">${eng}</div></div><div class="legend-right"><button type="button"title="复制翻译结果"class="it-button icopy-btn">${copy_svg}</button><a role="button"target="_blank"title="查看官网译文"class="it-button igo-btn"href="${go_link}">${share_svg}</a></div></div><div class="it-result"><p></p></div></div>`;
                $(".it-body").append(result);
            }
            setInterval(() => { $(".it-body").css("height") === $(".it-body").css("max-height") ? $(".it-body").css("padding","0 4px 0 10px") : $(".it-body").css("padding","0 10px"); }, 1e3);
        }
    };
    let main = {
        init() {
            base.initConfig();
            base.getBaseData();
            base.addInitStyle();
            base.registerMenu();
            base.pageListener();
            start.keyT();
            start.panelT();
        }
    };
    let start = {
        keyT() {
            doc.keydown((e) => {
                if (odata.itran_quick_open && !def.t_set.test(site)) {
                    let keyCode = e.keyCode ? e.keyCode : e.which ? e.which : e.charCode;
                    if (!tgoing && e.ctrlKey == odata.itran_tkey[0] && e.altKey == odata.itran_tkey[1] && e.shiftKey == odata.itran_tkey[2] && keyCode == odata.itran_key[0].charCodeAt(0)) {
                        let isCont, startNode, selected = window.getSelection();
                        selected && (isCont = selected.toString().trim()) && (startNode = selected.getRangeAt(0));
                        if (isCont.length > 0) { if (odata.itran_place == "句前") { startNode.collapse(true); } else { startNode.collapse(false); } utils.getTransInfo(isCont, startNode); }
                    } else if (e.ctrlKey == odata.itran_tkey[3] && e.altKey == odata.itran_tkey[4] && e.shiftKey == odata.itran_tkey[5] && keyCode == odata.itran_key[1].charCodeAt(0) && $(".itranslator_span").length > 0) {
                        utils.getTransInfo();
                    }
                }
            });
        },
        panelT() {
            if (odata.itran_panel_open && !def.t_set.test(site)) {
                var isSpin, isIcon, isSelect, isPanel, isShow, isCont, selected, iTranIcon = $("#iTran-btn"), iTranPanel = $("#iTran-panel"),
                icopos = {"右上":[16,-32],"右下":[16,16],"左上":[-32,-32],"左下":[-32,16]}, eX = icopos[odata.itran_icopos][0], eY = icopos[odata.itran_icopos][1];
                doc.on({
                    "selectionchange": (e) => { isSelect = true; },
                    "mousedown": (e) => {
                        isSpin = $(".it-spin").css("display") === "block" ? true : false;
                        isShow = iTranPanel.css("display") === "block" ? true : false;
                        isPanel = $(e.target).parents().is("#iTran-panel");
                        isIcon = $(e.target).parents().is("#iTran-btn");
                        !isIcon && iTranIcon.removeAttr("style");
                        !isIcon && !isPanel && !isSpin && isShow && iTranPanel.removeClass("it-spin").removeAttr("style") && $(".spin-btn").removeClass("it-active");
                    },
                    "mouseup": (e) => {
                        selected = window.getSelection();
                        selected && (isCont = selected.toString().trim());
                        if (!isSpin && !isPanel && !isIcon && isSelect && isCont) {
                            var obj = $("#iTran-panel"), twidth = $(window).width(), theight = $(window).height();
                            var xpos = e.pageX + eX + 26 + obj.width() > twidth ? twidth - obj.width() - 26 : e.pageX + eX;
                            iTranIcon.show().css({ left: e.pageX + eX + "px", top : e.pageY + eY + "px" });
                            iTranPanel.css({ left: xpos + 26 + "px", top : e.pageY + eY + "px" });
                        }
                        isSpin && !isPanel && !isIcon && isSelect && isCont && utils.showResult(isCont); isSelect = false;
                    }
                });
                iTranIcon.on("click", () => { iTranIcon.removeAttr("style"); utils.showResult(isCont) });
            }
        }
    };
    main.init();
})();