answer-in-my-language

Add a "answer in my language" prefix to chatgpt textarea

// ==UserScript==
// @name         answer-in-my-language
// @namespace    http://tampermonkey.net/
// @version      0.5
// @description  Add a "answer in my language" prefix to chatgpt textarea
// @license      BSD
// @author       Julius Kiesian
// @match        https://chat.openai.com/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=openai.com
// @grant        none
// ==/UserScript==
(function () {
    'use strict';

    const LANGUAGES_LIST = {
        "af": {
            "name": "Afrikaans"
        },
        "af-ZA": {
            "name": "Afrikaans (South Africa)"
        },
        "ar": {
            "name": "Arabic"
        },
        "ar-AE": {
            "name": "Arabic (U.A.E.)"
        },
        "ar-BH": {
            "name": "Arabic (Bahrain)"
        },
        "ar-DZ": {
            "name": "Arabic (Algeria)"
        },
        "ar-EG": {
            "name": "Arabic (Egypt)"
        },
        "ar-IQ": {
            "name": "Arabic (Iraq)"
        },
        "ar-JO": {
            "name": "Arabic (Jordan)"
        },
        "ar-KW": {
            "name": "Arabic (Kuwait)"
        },
        "ar-LB": {
            "name": "Arabic (Lebanon)"
        },
        "ar-LY": {
            "name": "Arabic (Libya)"
        },
        "ar-MA": {
            "name": "Arabic (Morocco)"
        },
        "ar-OM": {
            "name": "Arabic (Oman)"
        },
        "ar-QA": {
            "name": "Arabic (Qatar)"
        },
        "ar-SA": {
            "name": "Arabic (Saudi Arabia)"
        },
        "ar-SY": {
            "name": "Arabic (Syria)"
        },
        "ar-TN": {
            "name": "Arabic (Tunisia)"
        },
        "ar-YE": {
            "name": "Arabic (Yemen)"
        },
        "az": {
            "name": "Azeri (Latin)"
        },
        "az-AZ": {
            "name": "Azeri (Cyrillic) (Azerbaijan)"
        },
        "be": {
            "name": "Belarusian"
        },
        "be-BY": {
            "name": "Belarusian (Belarus)"
        },
        "bg": {
            "name": "Bulgarian"
        },
        "bg-BG": {
            "name": "Bulgarian (Bulgaria)"
        },
        "bs-BA": {
            "name": "Bosnian (Bosnia and Herzegovina)"
        },
        "ca": {
            "name": "Catalan"
        },
        "ca-ES": {
            "name": "Catalan (Spain)"
        },
        "cs": {
            "name": "Czech"
        },
        "cs-CZ": {
            "name": "Czech (Czech Republic)"
        },
        "cy": {
            "name": "Welsh"
        },
        "cy-GB": {
            "name": "Welsh (United Kingdom)"
        },
        "da": {
            "name": "Danish"
        },
        "da-DK": {
            "name": "Danish (Denmark)"
        },
        "de": {
            "name": "German"
        },
        "de-AT": {
            "name": "German (Austria)"
        },
        "de-CH": {
            "name": "German (Switzerland)"
        },
        "de-DE": {
            "name": "German (Germany)"
        },
        "de-LI": {
            "name": "German (Liechtenstein)"
        },
        "de-LU": {
            "name": "German (Luxembourg)"
        },
        "dv": {
            "name": "Divehi"
        },
        "dv-MV": {
            "name": "Divehi (Maldives)"
        },
        "el": {
            "name": "Greek"
        },
        "el-GR": {
            "name": "Greek (Greece)"
        },
        "en": {
            "name": "English"
        },
        "en-AU": {
            "name": "English (Australia)"
        },
        "en-BZ": {
            "name": "English (Belize)"
        },
        "en-CA": {
            "name": "English (Canada)"
        },
        "en-CB": {
            "name": "English (Caribbean)"
        },
        "en-GB": {
            "name": "English (United Kingdom)"
        },
        "en-IE": {
            "name": "English (Ireland)"
        },
        "en-JM": {
            "name": "English (Jamaica)"
        },
        "en-NZ": {
            "name": "English (New Zealand)"
        },
        "en-PH": {
            "name": "English (Republic of the Philippines)"
        },
        "en-TT": {
            "name": "English (Trinidad and Tobago)"
        },
        "en-US": {
            "name": "English (United States)"
        },
        "en-ZA": {
            "name": "English (South Africa)"
        },
        "en-ZW": {
            "name": "English (Zimbabwe)"
        },
        "eo": {
            "name": "Esperanto"
        },
        "es": {
            "name": "Spanish"
        },
        "es-AR": {
            "name": "Spanish (Argentina)"
        },
        "es-BO": {
            "name": "Spanish (Bolivia)"
        },
        "es-CL": {
            "name": "Spanish (Chile)"
        },
        "es-CO": {
            "name": "Spanish (Colombia)"
        },
        "es-CR": {
            "name": "Spanish (Costa Rica)"
        },
        "es-DO": {
            "name": "Spanish (Dominican Republic)"
        },
        "es-EC": {
            "name": "Spanish (Ecuador)"
        },
        "es-ES": {
            "name": "Spanish (Spain)"
        },
        "es-GT": {
            "name": "Spanish (Guatemala)"
        },
        "es-HN": {
            "name": "Spanish (Honduras)"
        },
        "es-MX": {
            "name": "Spanish (Mexico)"
        },
        "es-NI": {
            "name": "Spanish (Nicaragua)"
        },
        "es-PA": {
            "name": "Spanish (Panama)"
        },
        "es-PE": {
            "name": "Spanish (Peru)"
        },
        "es-PR": {
            "name": "Spanish (Puerto Rico)"
        },
        "es-PY": {
            "name": "Spanish (Paraguay)"
        },
        "es-SV": {
            "name": "Spanish (El Salvador)"
        },
        "es-UY": {
            "name": "Spanish (Uruguay)"
        },
        "es-VE": {
            "name": "Spanish (Venezuela)"
        },
        "et": {
            "name": "Estonian"
        },
        "et-EE": {
            "name": "Estonian (Estonia)"
        },
        "eu": {
            "name": "Basque"
        },
        "eu-ES": {
            "name": "Basque (Spain)"
        },
        "fa": {
            "name": "Farsi"
        },
        "fa-IR": {
            "name": "Farsi (Iran)"
        },
        "fi": {
            "name": "Finnish"
        },
        "fi-FI": {
            "name": "Finnish (Finland)"
        },
        "fo": {
            "name": "Faroese"
        },
        "fo-FO": {
            "name": "Faroese (Faroe Islands)"
        },
        "fr": {
            "name": "French"
        },
        "fr-BE": {
            "name": "French (Belgium)"
        },
        "fr-CA": {
            "name": "French (Canada)"
        },
        "fr-CH": {
            "name": "French (Switzerland)"
        },
        "fr-FR": {
            "name": "French (France)"
        },
        "fr-LU": {
            "name": "French (Luxembourg)"
        },
        "fr-MC": {
            "name": "French (Principality of Monaco)"
        },
        "gl": {
            "name": "Galician"
        },
        "gl-ES": {
            "name": "Galician (Spain)"
        },
        "gu": {
            "name": "Gujarati"
        },
        "gu-IN": {
            "name": "Gujarati (India)"
        },
        "he": {
            "name": "Hebrew"
        },
        "he-IL": {
            "name": "Hebrew (Israel)"
        },
        "hi": {
            "name": "Hindi"
        },
        "hi-IN": {
            "name": "Hindi (India)"
        },
        "hr": {
            "name": "Croatian"
        },
        "hr-BA": {
            "name": "Croatian (Bosnia and Herzegovina)"
        },
        "hr-HR": {
            "name": "Croatian (Croatia)"
        },
        "hu": {
            "name": "Hungarian"
        },
        "hu-HU": {
            "name": "Hungarian (Hungary)"
        },
        "hy": {
            "name": "Armenian"
        },
        "hy-AM": {
            "name": "Armenian (Armenia)"
        },
        "id": {
            "name": "Indonesian"
        },
        "id-ID": {
            "name": "Indonesian (Indonesia)"
        },
        "is": {
            "name": "Icelandic"
        },
        "is-IS": {
            "name": "Icelandic (Iceland)"
        },
        "it": {
            "name": "Italian"
        },
        "it-CH": {
            "name": "Italian (Switzerland)"
        },
        "it-IT": {
            "name": "Italian (Italy)"
        },
        "ja": {
            "name": "Japanese"
        },
        "ja-JP": {
            "name": "Japanese (Japan)"
        },
        "ka": {
            "name": "Georgian"
        },
        "ka-GE": {
            "name": "Georgian (Georgia)"
        },
        "kk": {
            "name": "Kazakh"
        },
        "kk-KZ": {
            "name": "Kazakh (Kazakhstan)"
        },
        "kn": {
            "name": "Kannada"
        },
        "kn-IN": {
            "name": "Kannada (India)"
        },
        "ko": {
            "name": "Korean"
        },
        "ko-KR": {
            "name": "Korean (Korea)"
        },
        "kok": {
            "name": "Konkani"
        },
        "kok-IN": {
            "name": "Konkani (India)"
        },
        "ky": {
            "name": "Kyrgyz"
        },
        "ky-KG": {
            "name": "Kyrgyz (Kyrgyzstan)"
        },
        "lt": {
            "name": "Lithuanian"
        },
        "lt-LT": {
            "name": "Lithuanian (Lithuania)"
        },
        "lv": {
            "name": "Latvian"
        },
        "lv-LV": {
            "name": "Latvian (Latvia)"
        },
        "mi": {
            "name": "Maori"
        },
        "mi-NZ": {
            "name": "Maori (New Zealand)"
        },
        "mk": {
            "name": "FYRO Macedonian"
        },
        "mk-MK": {
            "name": "FYRO Macedonian (Former Yugoslav Republic of Macedonia)"
        },
        "mn": {
            "name": "Mongolian"
        },
        "mn-MN": {
            "name": "Mongolian (Mongolia)"
        },
        "mr": {
            "name": "Marathi"
        },
        "mr-IN": {
            "name": "Marathi (India)"
        },
        "ms": {
            "name": "Malay"
        },
        "ms-BN": {
            "name": "Malay (Brunei Darussalam)"
        },
        "ms-MY": {
            "name": "Malay (Malaysia)"
        },
        "mt": {
            "name": "Maltese"
        },
        "mt-MT": {
            "name": "Maltese (Malta)"
        },
        "nb": {
            "name": "Norwegian (Bokm?l)"
        },
        "nb-NO": {
            "name": "Norwegian (Bokm?l) (Norway)"
        },
        "nl": {
            "name": "Dutch"
        },
        "nl-BE": {
            "name": "Dutch (Belgium)"
        },
        "nl-NL": {
            "name": "Dutch (Netherlands)"
        },
        "nn-NO": {
            "name": "Norwegian (Nynorsk) (Norway)"
        },
        "ns": {
            "name": "Northern Sotho"
        },
        "ns-ZA": {
            "name": "Northern Sotho (South Africa)"
        },
        "pa": {
            "name": "Punjabi"
        },
        "pa-IN": {
            "name": "Punjabi (India)"
        },
        "pl": {
            "name": "Polish"
        },
        "pl-PL": {
            "name": "Polish (Poland)"
        },
        "ps": {
            "name": "Pashto"
        },
        "ps-AR": {
            "name": "Pashto (Afghanistan)"
        },
        "pt": {
            "name": "Portuguese"
        },
        "pt-BR": {
            "name": "Portuguese (Brazil)"
        },
        "pt-PT": {
            "name": "Portuguese (Portugal)"
        },
        "qu": {
            "name": "Quechua"
        },
        "qu-BO": {
            "name": "Quechua (Bolivia)"
        },
        "qu-EC": {
            "name": "Quechua (Ecuador)"
        },
        "qu-PE": {
            "name": "Quechua (Peru)"
        },
        "ro": {
            "name": "Romanian"
        },
        "ro-RO": {
            "name": "Romanian (Romania)"
        },
        "ru": {
            "name": "Russian"
        },
        "ru-RU": {
            "name": "Russian (Russia)"
        },
        "sa": {
            "name": "Sanskrit"
        },
        "sa-IN": {
            "name": "Sanskrit (India)"
        },
        "se": {
            "name": "Sami (Northern)"
        },
        "se-FI": {
            "name": "Sami (Inari) (Finland)"
        },
        "se-NO": {
            "name": "Sami (Southern) (Norway)"
        },
        "se-SE": {
            "name": "Sami (Southern) (Sweden)"
        },
        "sk": {
            "name": "Slovak"
        },
        "sk-SK": {
            "name": "Slovak (Slovakia)"
        },
        "sl": {
            "name": "Slovenian"
        },
        "sl-SI": {
            "name": "Slovenian (Slovenia)"
        },
        "sq": {
            "name": "Albanian"
        },
        "sq-AL": {
            "name": "Albanian (Albania)"
        },
        "sr-BA": {
            "name": "Serbian (Cyrillic) (Bosnia and Herzegovina)"
        },
        "sr-SP": {
            "name": "Serbian (Cyrillic) (Serbia and Montenegro)"
        },
        "sv": {
            "name": "Swedish"
        },
        "sv-FI": {
            "name": "Swedish (Finland)"
        },
        "sv-SE": {
            "name": "Swedish (Sweden)"
        },
        "sw": {
            "name": "Swahili"
        },
        "sw-KE": {
            "name": "Swahili (Kenya)"
        },
        "syr": {
            "name": "Syriac"
        },
        "syr-SY": {
            "name": "Syriac (Syria)"
        },
        "ta": {
            "name": "Tamil"
        },
        "ta-IN": {
            "name": "Tamil (India)"
        },
        "te": {
            "name": "Telugu"
        },
        "te-IN": {
            "name": "Telugu (India)"
        },
        "th": {
            "name": "Thai"
        },
        "th-TH": {
            "name": "Thai (Thailand)"
        },
        "tl": {
            "name": "Tagalog"
        },
        "tl-PH": {
            "name": "Tagalog (Philippines)"
        },
        "tn": {
            "name": "Tswana"
        },
        "tn-ZA": {
            "name": "Tswana (South Africa)"
        },
        "tr": {
            "name": "Turkish"
        },
        "tr-TR": {
            "name": "Turkish (Turkey)"
        },
        "tt": {
            "name": "Tatar"
        },
        "tt-RU": {
            "name": "Tatar (Russia)"
        },
        "ts": {
            "name": "Tsonga"
        },
        "uk": {
            "name": "Ukrainian"
        },
        "uk-UA": {
            "name": "Ukrainian (Ukraine)"
        },
        "ur": {
            "name": "Urdu"
        },
        "ur-PK": {
            "name": "Urdu (Islamic Republic of Pakistan)"
        },
        "uz": {
            "name": "Uzbek (Latin)"
        },
        "uz-UZ": {
            "name": "Uzbek (Cyrillic) (Uzbekistan)"
        },
        "vi": {
            "name": "Vietnamese"
        },
        "vi-VN": {
            "name": "Vietnamese (Viet Nam)"
        },
        "xh": {
            "name": "Xhosa"
        },
        "xh-ZA": {
            "name": "Xhosa (South Africa)"
        },
        "zh": {
            "name": "Chinese"
        },
        "zh-CN": {
            "name": "Chinese (S)"
        },
        "zh-HK": {
            "name": "Chinese (Hong Kong)"
        },
        "zh-MO": {
            "name": "Chinese (Macau)"
        },
        "zh-SG": {
            "name": "Chinese (Singapore)"
        },
        "zh-TW": {
            "name": "Chinese (T)"
        },
        "zu": {
            "name": "Zulu"
        },
        "zu-ZA": {
            "name": "Zulu (South Africa)"
        }
    }

    class ISO6391 {
        static getLanguages(codes = []) {
            return codes.map(code => ({
                code,
                name: ISO6391.getName(code),
            }));
        }

        static getName(code) {
            return ISO6391.validate(code) ? LANGUAGES_LIST[code].name : '';
        }

        static getAllNames() {
            return Object.values(LANGUAGES_LIST).map(l => l.name);
        }


        static getCode(name) {
            const code = Object.keys(LANGUAGES_LIST).find(code => {
                const language = LANGUAGES_LIST[code];

                return (
                    language.name.toLowerCase() === name.toLowerCase() 
                    // || language.nativeName.toLowerCase() === name.toLowerCase()
                );
            });
            return code || '';
        }

        static getAllCodes() {
            return Object.keys(LANGUAGES_LIST);
        }

        static validate(code) {
            return LANGUAGES_LIST.hasOwnProperty(code);
        }
    }


    function krijgHuidigeTaal() {
        var taal = navigator.language || navigator.userLanguage;
        return taal;
    }

    // Roep de functie aan en toon de huidige taal in de console
    const huidigeTaalCode = krijgHuidigeTaal();
    const huidegeTaal = ISO6391.getName(huidigeTaalCode)
    console.log("De huidige taal van de gebruiker is: " + huidigeTaalCode);

    function replaceText(textarea) {
        const currentValue = textarea.value
        // console.log("replacing text...");
        if (currentValue.length < 2) {
            textarea.value = `Answer me in ${huidegeTaal}. \n${currentValue}`;
        } else {
           // console.log("nothing to do...");
        }
    }

    function mijnFunctie() {
        console.log("De website is volledig geladen!");
        // Plaats hier je JavaScript-code die je wilt uitvoeren
        const textarea = document.getElementById('prompt-textarea');
        // Voeg een event listener toe voor het 'input'-event
        textarea.addEventListener('input', function () {
            // Deze functie wordt uitgevoerd telkens wanneer de inhoud van de textarea verandert.
            // Hier kun je de waarde van de textarea ophalen en bewerken zoals nodig.
            replaceText(textarea)
        });
    }
    setTimeout(mijnFunctie, 3000);

    // Gebruik het "load" evenement om de functie aan te roepen wanneer de pagina is geladen
    // window.addEventListener("load", mijnFunctie);


})();
长期地址
遇到问题?请前往 GitHub 提 Issues。