在日常開發工作中,如果需要多語言,很多時候就需要在線翻譯,通常是簡體中文翻譯爲英文、日文,繁體中文。
如果對翻譯要求結果不高,使用百度翻譯即可,而翻譯一個字段點來點去,實在是煩人,特此寫了個腳本,請在百度翻譯界面 F12 打開控制檯使用:
let translateCn = function (text) {
location.href = "https://fanyi.baidu.com/#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.cn = 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.cn);
console.log("繁體中文:",transResult.cht);
console.log("日文:",transResult.jp);
console.log("英文:",transResult.en);
});
});
});
};
使用方式:
目前只考慮了簡體中文翻譯爲其他語言
translateCn("蘋果樹下的雪花");
結果:
簡體中文: 蘋果樹下的雪花
繁體中文: 蘋果樹下的雪花
日文: リンゴの木の下の雪
英文: Snowflakes under Apple Trees