在日常开发工作中,如果需要多语言,很多时候就需要在线翻译,通常是简体中文翻译为英文、日文,繁体中文。

如果对翻译要求结果不高,使用百度翻译即可,而翻译一个字段点来点去,实在是烦人,特此写了个脚本,请在百度翻译界面 F12 打开控制台使用:

let translateCn = function (text) {

location.href = "https://fanyi.baidu/#zh/zh/";

var getResult = function (lang, cb) {

var output = document.querySelector(".target-output");

var btnSelect = document.querySelector(".select-to-language");

btnSelect.click();

var langItems = document.querySelectorAll(".lang-table .lang-item");

langItems = Array.prototype.slice.apply(langItems);

var btnLang = null;

if (lang === "cn") {

btnLang = langItems.find((o) => o.innerText === "中文(简体)");

}

if (lang === "cht") {

btnLang = langItems.find((o) => o.innerText === "中文(繁体)");

}

if (lang === "jp") {

btnLang = langItems.find((o) => o.innerText === "日语");

}

if (lang === "en") {

btnLang = langItems.find((o) => o.innerText === "英语");

}

if (output != null) {

output.innerText = "";

}

btnLang.click();

btnTrans.click();

var idx = setInterval(() => {

if (output != null && output.innerText.length > 0) {

clearInterval(idx);

cb(output.innerText);

} else {

output = document.querySelector(".target-output");

}

}, 30);

};

var input = document.querySelector("#baidu_translate_input");

var btnTrans = document.querySelector("#translate-button");

input.value = text;

var transResult = {

cn: "",

cht: "",

jp: "",

en: "",

};

transResult = text;

getResult("cht", function (result2) {

transResult.cht = result2;

getResult("jp", function (result3) {

transResult.jp = result3;

getResult("en", function (result4) {

transResult.en = result4;

console.clear();

console.log("简体中文:",transResult);

console.log("繁体中文:",transResult.cht);

console.log("日文:",transResult.jp);

console.log("英文:",transResult.en);

});

});

});

};

使用方式:

目前只考虑了简体中文翻译为其他语言

translateCn("苹果树下的雪花");

结果:

简体中文: 苹果树下的雪花

繁体中文: 蘋果樹下的雪花

日文: リンゴの木の下の雪

英文: Snowflakes under Apple Trees