DeepL Translator for Archive of Our Own

Add a DeepL translation button for Archive of Our Own

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==UserScript==
// @name         DeepL Translator for Archive of Our Own
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  Add a DeepL translation button for Archive of Our Own
// @author       AlmazUvelir
// @match        https://archiveofourown.org/*
// @grant        none
 // @license MIT
// ==/UserScript==

(function() {
    'use strict';

    function createTranslationButton() {
        // Create a button element
        var translationButton = document.createElement('button');
        translationButton.innerHTML = 'Перевод DeepL';

        // Apply styles from 08-actions.css
        translationButton.classList.add('your-button-class'); // Замените 'your-button-class' на класс из 08-actions.css

        // Add a click event listener to the button
        translationButton.addEventListener('click', function() {
            // Get the text from the specified div
            var chaptersDiv = document.getElementById('chapters');
            var textToTranslate = chaptersDiv.innerText;

            // Open DeepL in a new tab and pass the text for translation
            window.open('https://www.deepl.com/translator#en/ru/' + encodeURIComponent(textToTranslate), '_blank');
        });

        // Insert the button before the specified div
        var workskinDiv = document.getElementById('workskin');
        workskinDiv.parentNode.insertBefore(translationButton, workskinDiv);
    }

    // Call the function to create the translation button
    createTranslationButton();
})();