Greasy Fork

Greasy Fork is available in English.

arXiv论文一键翻译

arXiv论文一键翻译| arXiv paper one-click translation

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         arXiv论文一键翻译
// @namespace    http://tampermonkey.net/
// @version      0.2.0
// @description  arXiv论文一键翻译| arXiv paper one-click translation
// @author       xx025
// @homepage     https://github.com/xx025/strawberry
// @match        https://arxiv.org/abs/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=arxiv.org
// @run-at       document-idle
// @grant        none
// ==/UserScript==


let templates = [
    {
        name: '有道arxiv翻译[推荐]',
        url: `https://fanyi.youdao.com/trans/#/home?keyfrom=fanyiweb&url=%s&type=undefined`,
        need_arg: 'source_url'
    },
    {
        name: '有道翻译',
        url: `http://webtrans.yodao.com/webTransPc/index.html#/?url=%s&from=auto&to=auto&type=1`,
        need_arg: 'html_url'
    },
    // {
    //     name: '百度翻译',
    //     url: `https://fanyi.baidu.com/transpage?query=%s&source=url&ie=utf8&from=auto&to=zh&render=1`,
    //     need_arg: 'html_url'
    // }
];



(function () {
    'use strict';

    function generate_url(Ourl, template) {
        let value = ''
        let base_url = template.url
        if (template.need_arg == 'source_url') {
            value = Ourl.source_url
        }
        else if (template.need_arg == 'html_url') {
            value = Ourl.html_url
        }
        return base_url.replace(/%s/g, value);
    }

    function create_Ourl(url) {

        // url_demo='https://arxiv.org/abs/2203.01927'
        // html_url_demo=`https://ar5iv.labs.arxiv.org/html/2203.01927`
        let Ourl = Object()
        Ourl.source_url = url
        Ourl.html_url = `https://ar5iv.labs.arxiv.org/html/${url.split('/').pop()}`
        return Ourl
    }


    function insert_html(name, url) {

        // 获取要在其后添加新元素的元素
        const list = document.querySelector(".full-text ul");
        // 点击下载按钮,在新标签中打开
        list.querySelector('.abs-button.download-pdf').target = '_blank'
        // 创建新的 li 元素
        const newLi = document.createElement("li");
        newLi.style.color = "black";
        // 创建 a 元素,并设置其 href 和 class 属性
        const newLink = document.createElement("a");
        newLink.href = url;
        newLink.className = "abs-button download-format";
        newLink.target = "_blank";// 在新标签中打开链接
        newLink.style.color = "#8cbd18";
        // 设置 a 元素的文本内容
        const linkText = document.createTextNode(name);
        newLink.appendChild(linkText);
        // 将 a 元素添加到新的 li 元素中
        newLi.appendChild(newLink);
        // 将新的 li 元素添加到列表中
        list.appendChild(newLi);
    }


    let Ourl = create_Ourl(window.location.href)
    for (let template of templates) {
        let url = generate_url(Ourl, template)
        insert_html(template.name, url)
    }

})();