制作一个多语言谷歌翻译 脚本

1.修改host文件:C:\Windows\System32\drivers\etc

加入以下配置

# google translate
203.208.40.66 translate.google.com
# google translate api
142.251.117.90 translate.googleapis.com

ip地址可能会失效,查看最新可用ip地址:https://github.com/hcfyapp/crx-selection-translate/discussions/1607

配置好,测试地址:https://translate.googleapis.com/translate_a/element.js

如果能打开,说明谷歌翻译api可用

2.下载油猴插件,推荐下载地址:

收藏猫插件-Chrome插件商店,谷歌浏览器插件,谷歌应用商店插件推荐及下载

3.根据网站需求,编写油猴脚本:

// ==UserScript==
// @name         多语言谷歌翻译
// @namespace    https://plushine.cn
// @version      1.1
// @description  多语言谷歌翻译
// @author       linsj
// @match        https://*.meetingselect.com/*
// @grant        GM_log
// @grant        GM_addStyle
// @grant        GM_setValue
// @grant        GM_getValue
// @grant        GM_xmlhttpRequest
// @grant        GM_deleteValue
// @license      MIT License
// @require      https://code.jquery.com/jquery-2.1.4.min.js
// ==/UserScript==

function addStyle() {
  let css = `
  .translate-btn {
    position:fixed;
    cursor:pointer;
    top:20px;
    right:20px;
    background:pink;
    padding:4px;
    border-radius:4px;
  }
  .translate-ja-btn{
    top:50px
  }
  .translate-all-btn{
    top:80px
  }
  `

  GM_addStyle(css)
}

var i=1;// 让脚本只执行一次
(function() {
  'use strict';
  var googleUrl = 'https://translate.googleapis.com/translate_a/single?';//?client=gtx&hl=zh-CN&dt=t&dt=bd&dj=1&source=icon&tk=33858.33858

  // Your code here...
  addStyle()

  if(i==1){
    i++;

  // setTimeout(function (){

    $('table').prepend('
translate Chinese
'); $('table').prepend('
translate Japanese
'); $('table').prepend('
translate Chinese and Japanese
'); $(".translate-zh-btn").click(function (){ translate('zh-CN',7) }); $(".translate-ja-btn").click(function (){ translate('ja',8) }); $(".translate-all-btn").click(function (){ $('.translate').click() }); // }, 1000); function translate(to,col) { $("table tr").each(function (e) { // e代表索引 从0开始 eq(0)就是第一行 // var englishText = $("table").find("tr").eq(e).find("td").eq(1).find("input").val(); //英语列 var englishText = $(this).find("td").eq(1).find("input").val(); //英语列 if(!englishText){ return } // 一些特殊情况处理 if(col == 7){ // 对中文的常用翻译纠正 if(englishText == 'Attachment'){ $("table").find("tr").eq(e).find("td").eq(col).find("input").val('附件') return } if(englishText == 'Remove'){ $("table").find("tr").eq(e).find("td").eq(col).find("input").val('移除') return } if(englishText == 'Save'){ $("table").find("tr").eq(e).find("td").eq(col).find("input").val('保存') return } } if(englishText.indexOf('Max.') > -1 || englishText.indexOf('Min.') > -1){ englishText = englishText.replace(/Max./g,'Max') englishText = englishText.replace(/Min./g,'Min') } let from = "en"; let params = new URLSearchParams({ client: "gtx", dt: "t", sl: from, tl: to, q: englishText }) $.ajax({url:googleUrl + params.toString(), type:"get", // data:{"input":$("#ajax-get").find("input").eq(1).val()}, success:function (data){ console.log('成功翻译了',data); // const res = data[0][0][0] let res = '' if(data[0]?.length > 0){ res = data[0].map(element => element[0])?.join(''); } if(res){ $("table").find("tr").eq(e).find("td").eq(col).find("input").val(res)//8 中文列 9 日语列 } } }); }) } } })();

你可能感兴趣的:(脚本,css,javascript,前端)