谷歌浏览器整页翻译(原位翻译,不跳转页面),去除顶部翻译栏,适配移动端布局。在所有网页(除百度和优酷外)左下角均会显示翻译按钮。
< Σχολιασμός για τον κώδικα Google整页翻译一直运行-自改(不再更新,已找到原作者最新版脚本,脚本看简介)
因为无法判断这个网站是否需要翻译,所以需要靠人去点击。原作者最新版的脚本是通过判断网页设置的语言来判断,比如网站不是中文才展示翻译按钮,不过还是需要人点击翻译按钮才行。如果你需要的话我可以加一个这个判断,即非中文网站自动帮你点击翻译按钮。
你误解我的意思了,我不是要进入网页就自动翻译,我的意思是点击翻译后,就自动翻译为中文,从而跳过选择语言的环节。
因为目前的情况是,我进入一个新网站首次点击翻译后,还要再点击一次选择要翻译成什么目标语言才会被记住,之后再在这个网站其它页面点击翻译就会自动选择中文,但是进入一个新的网站还会重复这个步骤。
我不希望通过脚本去判断网页是否展示翻译按钮,也不希望进入网页就自动翻译,很多网页很复杂,还是自己判断和选择是否要翻译比较好。
我不希望通过脚本去判断网页是否展示翻译按钮,也不希望进入网页就自动翻译,很多网页很复杂,还是自己判断和选择是否要翻译比较好。
OK,了解✧(≖ ◡ ≖✿)
希望你不要用原作者的新版本自动判断语言的脚本,还是0.13就行了,稍微改下应该就能实现,我是完全不懂JS,我之前试过通过AI改,但是没成功。
希望你不要用原作者的新版本自动判断语言的脚本,还是0.13就行了,稍微改下应该就能实现,我是完全不懂JS,我之前试过通过AI改,但是没成功。
嗯嗯,之前我改成根据语言自动点翻译按钮,等下有空我先改回来,你说的那个语言选项我看下怎么改成默认选中文。之前是默认中文的,但后来失效了,我看影响不大就懒得修
访问的网站少影响是不大,比如有些人天天泡油管,但是我查资料会跑很多网站,就影响大了
如果比较难实现,可以换一种方法,点击翻译后,自动弹出选择语言栏,这样也能少一个步骤
如果比较难实现,可以换一种方法,点击翻译后,自动弹出选择语言栏,这样也能少一个步骤
他是通过cookie来默认选择语言的,已经改好了,然后有些网站他安全性比较高,要求不能跨域和使用动态添加script节点,所以不能使用,我后续看看能不能解决
真的是自动选择了目标语言,这也太棒了。有些网站需要禁用csp就能使用脚本了,按个扩展就能使用。
真的是自动选择了目标语言,这也太棒了。有些网站需要禁用csp就能使用脚本了,按个扩展就能使用。
禁用csp就可以了嘛,学到了
目前那些禁用csp的扩展我也试了一些,不过目前也是不完美,有的是禁用所有网站,有的是单次禁用,或者当前网站短期内禁用,不能按域名永久记住禁用状态,好像扩展也是基于js写的,不过不会改,作者都消失了很久的那种。
说回来,这个脚本在点击原文后,能不能让“翻译”按钮变回来啊,这样就能又再次自动翻译。
目前那些禁用csp的扩展我也试了一些,不过目前也是不完美,有的是禁用所有网站,有的是单次禁用,或者当前网站短期内禁用,不能按域名永久记住禁用状态,好像扩展也是基于js写的,不过不会改,作者都消失了很久的那种。
说回来,这个脚本在点击原文后,能不能让“翻译”按钮变回来啊,这样就能又再次自动翻译。
原文按钮下面的语言栏再次选择中文简体就行
刚才体验到了
我借助AI成功实现了可以反复点击“原文”和“翻译”按钮
把第217行替换为下面的代码就可以了
// 显示翻译按钮
const translateBtn = document.querySelector('.translateBtn');
translateBtn.setAttribute('class', 'notranslate btnBox translateBtn');
// 显示原文按钮
recoverPage.style.display = 'block';
// 隐藏语言选择栏
const googleTranslateElement = document.getElementById('google_translate_element');
googleTranslateElement.style.display = 'none';
});
我借助AI成功实现了可以反复点击“原文”和“翻译”按钮
把第217行替换为下面的代码就可以了
// 显示翻译按钮
const translateBtn = document.querySelector('.translateBtn');
translateBtn.setAttribute('class', 'notranslate btnBox translateBtn');
// 显示原文按钮
recoverPage.style.display = 'block';
// 隐藏语言选择栏
const googleTranslateElement = document.getElementById('google_translate_element');
googleTranslateElement.style.display = 'none';
});
刷新页面导致发了一条重复的回复,不好意思
我借助AI成功实现了可以反复点击“原文”和“翻译”按钮
把第217行替换为下面的代码就可以了
// 显示翻译按钮
const translateBtn = document.querySelector('.translateBtn');
translateBtn.setAttribute('class', 'notranslate btnBox translateBtn');
// 显示原文按钮
recoverPage.style.display = 'block';
// 隐藏语言选择栏
const googleTranslateElement = document.getElementById('google_translate_element');
googleTranslateElement.style.display = 'none';
});
你这个有一个问题,就是googleTranslateDivDom下面会有原来越多的语言选择栏的html代码,因为每次点击翻译按钮,都会添加一个新的翻译语言选择栏,而旧的只是隐藏,不过问题不大。可以把createTranslateBtnFuc函数里面的translateBtn.onclick这段函数改成:
// 点击翻译按钮
translateBtn.onclick = (() => {
if(document.getElementById('google_translate_element')){
const PCRecoverIframe = document.getElementById(':2.container');
const recoverDocument = PCRecoverIframe.contentWindow.document;
recoverDocument.getElementById(':2.confirm').click();
return;
}
// 创建翻译语种选择栏
let google_translate_element = document.createElement('div');
google_translate_element.id = 'google_translate_element';
googleTranslateDivDom.appendChild(google_translate_element);
// 加载谷歌翻译API
loadGoogleApiFuc();
});
上面代码就解决了我之前说的问题,你不改也没事,只要不在一个页面重复太多次原文和翻译之间切换就行。不过我个人还是更喜欢原来的逻辑,所以你可以自己修改本地代码然后关闭自动更新
上面代码就解决了我之前说的问题,你不改也没事,只要不在一个页面重复太多次原文和翻译之间切换就行。不过我个人还是更喜欢原来的逻辑,所以你可以自己修改本地代码然后关闭自动更新
我更新了代码,如果不想点击翻译按钮后隐藏,可以将193-208行代码替换180-191的代码,具体看我脚本介绍页的图
确实留着语言栏可以方便多语言习惯的人切换会好很多,我原本也是不想隐藏语言栏的,但是AI告诉我那个是动态的只能这样了。
我刚试了v0.34版,发现按照说明将193-208行代码替换到180-191行(大意应该是把这些给注释掉),但是翻译按钮不工作了。
之后我换回v0.31版,直接把你上面留言给的函数代码给替换进去,都没有使用AI给的代码,就能直接反复点击翻译和原文完美工作了。
确实留着语言栏可以方便多语言习惯的人切换会好很多,我原本也是不想隐藏语言栏的,但是AI告诉我那个是动态的只能这样了。
我刚试了v0.34版,发现按照说明将193-208行代码替换到180-191行(大意应该是把这些给注释掉),但是翻译按钮不工作了。
之后我换回v0.31版,直接把你上面留言给的函数代码给替换进去,都没有使用AI给的代码,就能直接反复点击翻译和原文完美工作了。
我自己用的时候是完好的,替换其实是把193-208行的代码取消注释,把180-191行的代码注释,你刚开始是不是两个都注释了。后来切回0.31再用代码替换其实就是我之前说的替换操作。
现在重新弄新版本搞好了,刚开始是直接复制193-208覆盖到180-191
试了很多同类网页翻译脚本,这个是不错的,唯一有个麻烦,就是每次进入一个新网站,需要多点一次选择翻译语言