给每个非中文的网页左下角添加一个google翻译图标,直接调用 Google 的翻译接口对非中文网页进行翻译
目前為
// ==UserScript==
// @name 网页翻译
// @author Kaiter
// @namespace https://gitee.com/Kaiter-Plus
// @description 给每个非中文的网页左下角添加一个google翻译图标,直接调用 Google 的翻译接口对非中文网页进行翻译
// @include *://*
// @run-at document-end
// @version 1.0
// ==/UserScript==
(function () {
// 获取当前页面的语言
let lang = document.documentElement.lang;
// 判断是不是中文,如果不是则执行
if (lang.substr(0, 2) != "zh" && lang != "") {
// 导入谷歌翻译接口
let googletrans = document.createElement("script");
googletrans.src = "//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit";
document.head.appendChild(googletrans);
// 初始化
let script = document.createElement("script");
let text = "";
text += [
"function googleTranslateElementInit() {",
" var google_translate_element = document.getElementById('google_translate_element');",
" var timer = setInterval(function() {",
" google_translate_element = document.getElementById('google_translate_element');",
" if (google_translate_element) {",
" clearInterval(timer);",
" //var langName = navigator.language ? navigator.language.split('-')[0].toLowerCase() : 'en';",
" new google.translate.TranslateElement({",
" pageLanguage: 'auto',",
" //包括的语言,中文简体,中文繁体,英语,日语,俄语",
" includedLanguages: 'zh-CN,zh-TW,en,ja,ru',",
" //0,原生select,并且谷歌logo显示在按钮下方。1,原生select,并且谷歌logo显示在右侧。2,完全展开语言列表,适合pc,",
" layout: /mobile/i.test(navigator.userAgent) ? 0 : 2,",
" }, 'google_translate_element');",
" // 清除图片的请求",
" img = [].slice.call(document.querySelectorAll('#goog-gt-tt img,#google_translate_element img'));",
" img.forEach(function(v, i) {",
" v.src = '';",
" });",
" }",
" }, 300);",
"}"
].join("\n");;
script.appendChild(document.createTextNode(text));
document.head.appendChild(script);
// 在页面的左下角显示一个翻译图标,防止和其它插件位置冲突
var google_translate_element = document.createElement('div');
google_translate_element.id = 'google_translate_element';
google_translate_element.style = 'position: fixed;left: 10px;bottom: 10px;border-radius: 5px;overflow: hidden;box-shadow: 1px 2px 6px 2px #888;';
document.body.appendChild(google_translate_element);
}
})();