Skip to content

Instantly share code, notes, and snippets.

@0x1306a94
Last active November 20, 2024 01:11
Show Gist options
  • Save 0x1306a94/43976bd23e912e4dc2e073d4ba798bd0 to your computer and use it in GitHub Desktop.
Save 0x1306a94/43976bd23e912e4dc2e073d4ba798bd0 to your computer and use it in GitHub Desktop.
让谷歌翻译插件翻译网页的时候,绕过代码块和一些无需翻译的元素
// ==UserScript==
// @name 谷歌翻译绕过代码块(适配github,mathworks等)
// @version 0.3
// @description 让谷歌翻译插件翻译网页的时候,绕过代码块和一些无需翻译的元素
// @match http*://*.*/*
// @match http://localhost:*/*
// @match http://127.0.0.1:*/*
// @match http://[::]:*/*
// @license MIT
// @grant none
// ==/UserScript==
/*jshint esversion: 6 */
(function () {
'use strict'
function noTranslate (array) {
array.forEach((name) => {
[...document.querySelectorAll(name)].forEach(node => {
if (node.className.indexOf('notranslate') === -1) {
node.classList.add('notranslate')
}
})
})
}
const bypassSelectorArray = [
'pre',
'code',
'.prism-code',
'.codeinput',
'.CodeMirror-sizer',
'.CodeMirror-lines',
'.CodeMirror-scroll',
'.CodeMirror-line',
'.enlighter'
]
// 延迟加载
const delaySelectorArray = []
if (window.location.hostname.indexOf("mathjax") !== -1) {
const selectors = [
'.math',
'.MathJax',
'.MathJax_Display',
'.MathRow',
'.MathEquation',
'.CodeBlock'
]
delaySelectorArray.push.apply(delaySelectorArray, selectors)
}
if (window.location.hostname.indexOf("github") !== -1) {
// 如果是github 还需要处理一些别的元素
const githubSelector = [
'.bg-gray-light.pt-3.hide-full-screen.mb-5',
'summary.btn.css-truncate',
'.commit-author',
'.js-navigation-open.link-gray-dark',
'.Box-title',
'.d-flex',
'.file-navigation.mb-3.d-flex',
'.pt-3',
'.Box-row',
'.Box-header',
'.BorderGrid-cell > div.mt-3 > a.muted-link',
'.BorderGrid-cell > ul.list-style-none',
'header.AppHeader',
'#repos-file-tree',
'div.Box-sc-g0xbh4-0.eIgvIk',
'div.Box-sc-g0xbh4-0.jQCQnS',
'div.Box-sc-g0xbh4-0.ePiodO',
'div.Box-sc-g0xbh4-0.eLcVee',
// 主页文件列表
'tr.Box-sc-g0xbh4-0.jEbBOT',
// README 头部
'nav.Box-sc-g0xbh4-0.dvTdPK',
]
bypassSelectorArray.push.apply(bypassSelectorArray, githubSelector)
//如果还有github的插件 还需要延迟追加一些
const githubPluginSelector = [
'.github-repo-size-div',
'.octotree-tree-view',
'tr.react-directory-row',
]
delaySelectorArray.push.apply(delaySelectorArray, githubPluginSelector)
}
if (window.location.hostname.indexOf("mathworks") !== -1) {
// 如果是mathworks
const selectors = [
'.codeinput',
'.code_responsive',
'.inlineequation',
'inline'
]
bypassSelectorArray.push.apply(bypassSelectorArray, selectors)
}
if (window.location.hostname.indexOf("threejsfundamentals") !== -1) {
const selectors = [
'.threejs_example_container',
]
bypassSelectorArray.push.apply(bypassSelectorArray, selectors)
}
if (window.location.hostname.indexOf("kodeco.com") !== -1) {
const selectors = [
'pre.language-swift',
]
bypassSelectorArray.push.apply(bypassSelectorArray, selectors)
}
if (window.location.hostname.indexOf("questdb.io") !== -1) {
const selectors = [
'.prism-code',
'.codeBlockContainer_J+bg',
]
delaySelectorArray.push.apply(delaySelectorArray, selectors)
}
if (window.location.hostname.indexOf("cursor.com") !== -1) {
const selectors = [
'div.nice-code-block-container',
]
delaySelectorArray.push.apply(delaySelectorArray, selectors)
}
noTranslate(bypassSelectorArray)
setTimeout(function () {
noTranslate(delaySelectorArray)
}, 2000)
})()
@Alan3344
Copy link

Alan3344 commented Oct 3, 2024

我用的 暴力猴 2.25.0
补充下,当前的文件头不符合规范
以下是修改过后的

// ==UserScript==
// @name         谷歌翻译绕过代码块(适配github,mathworks等)
// @version      0.3
// @description  让谷歌翻译插件翻译网页的时候,绕过代码块和一些无需翻译的元素
// @match        http*://*.*/*
// @match        http://localhost:*/*
// @match        http://127.0.0.1:*/*
// @match        http://[::]:*/*
// @license      MIT
// @grant        none
// ==/UserScript==
/*jshint esversion: 6 */

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment