Русификатор интерфейса Sidekick (Tobit)

Переводит на русский интерфейс сайта Sidekick (Tobit)

// ==UserScript==
// @name         Русификатор интерфейса Sidekick (Tobit)
// @namespace    http://tampermonkey.net/
// @version      3.0
// @license      MIT
// @description  Переводит на русский интерфейс сайта Sidekick (Tobit)
// @author       MrVovchick
// @match        https://sidekick.ki/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    // Словарь переводов (добавляйте вручную все найденные фразы)
    const translations = {
        // Примеры переводов
        'Neu': 'Новый',
        'Chats': 'Чаты',
        'Unified Artificial Intelligence.': 'Единый искусственный интеллект.',
        'Intelligent Agent': 'Интеллектуальный агент',
        'Support': 'Поддержка',
        'Natives Modell': 'Нативная модель',
        'PRO': 'ПРО',
        'Persönliche und sensible Daten können manuell oder automatisch durch Pseudonymisierung geschützt werden. Das kann die Ergebnisqualität beeinträchtigen.': 'Личные и конфиденциальные данные могут быть защищены вручную или автоматически с помощью псевдонимизации. Это может ухудшить качество результатов.',
        'Erweiterter Datenschutz (DSGVO)': 'Расширенная защита данных (РЗД)',
        'Nicht aktiv': 'Не активна',
        'Aktiv': 'Активна',
        'Automatische Erkennung von Personendaten zur manuellen Freigabe.': 'Автоматическое распознавание личных данных для ручного освобождения.',
        'Aktiv (erweitert)': 'Активная (расширенная)',
        'Automatisch': 'Автоматический',
        'Automatisch (erweitert)': 'Автоматический (расширенная)',
        'Neuer Chat': 'Новый чат',
        'Älter': 'Старые',
        'Löschen': 'Удалить',
        'Ja': 'Да',
        'Nein': 'Нет',
        'Bist Du Dir sicher, dass Du den Chat löschen möchtest?': 'Вы уверены, что хотите удалить чат?',
        'Bild versenden': 'Отправить изображение',
        'Person hinzufügen': 'Добавить человека',
        'Natives Modell hinzufügen': 'Добавить нативную модель',
        'Dateien versenden': 'Отправить файл',
        'Antworten': 'Ответить',
        'Kopieren': 'Копировать',
        'Upgrade': 'Обновить',
        'Wechsle zu Sidekick™ Pro für volle Geschwindigkeit und zusätzliche Funktionen.': 'Переключитесь на Sidekick™ Pro, чтобы получить полную скорость и дополнительные функции.',
        'Finden': 'Найти',
        'Account': 'Аккаунт',
        'money': 'Деньги',
        'cards': 'Карты',
        'Abmelden': 'Выход',
        'Authentifizierung': 'Аутентификация',
        'Persönliche Daten': 'Персональные данные',
        'Unterschrift': 'Подпись',
        'Dokumente': 'Документы',
        'Verifizieren': 'Проверка',
        'Homepage': 'Домашняя страница',
        'Personen': 'Лица',
        'Sites': 'Сайты',
        'Erweitert': 'Расширенный',
        'Heute': 'Сегодня',
        'Erkläre das Konzept von...': 'Объясните, что такое...',
        'Übersetze den Satz...': 'Переведите предложение...',
        'Gib mir Informationen über...': 'Дайте мне информацию о...',
        'Erstelle eine Einladung für...': 'Создайте приглашение для...',
        'Entschuldige, aber beim Erzeugen meiner Antwort ist etwas fehlgeschlagen. Kannst du es noch einmal versuchen?': 'Извините, но при создании моего ответа что-то пошло не так. Вы можете попробовать еще раз?',
        'Was kann ich für Dich tun, ??????': 'Что я могу для вас сделать?',
        'Albert, 55 Jahre': 'Альберт, 55 лет',
        'Anna, 30 Jahre': 'Анна, 30 лет',
        'Elisabeth, 80 Jahre': 'Елизавета, 80 лет',
        'Hubert, 57 Jahre': 'Хьюберт, 57 лет',
        'Wissenschaftler': 'Ученый',
        'Jonas, 20 Jahre': 'Джон, 20 лет',
        'Karla, 41 Jahre': 'Карла, 41 год',
        'Journalistin': 'Журналист',
        'Lisa, 10 Jahre': 'Лиза, 10 лет',
        'Max, 35 Jahre': 'Максим, 35 лет',
        'Programmierer': 'Программист',
        'Stefan, 35 Jahre': 'Стефан, 35 лет',
        'Agent wählen': 'Выборочный агент',
        'Modell wählen': 'Выборочная модель',
        '?????': 'MrVovchick',
        'Dateien hinzufügen': 'Добавить файлы',
        'Hinzufügen': 'Добавить',
        'Name oder chaynsID': 'Имя или chaynsID',
        'Sidekick™ von Tobit – Unified KI, sicher und DSGVO-konform für den täglichen Einsatz': 'Sidekick™',
        'Nachrichten werden geladen': 'Загрузка сообщений',
        'online': 'онлайн',
        'Bist Du Dir sicher, dass Du Dich abmelden möchtest?': 'Вы уверены, что хотите выйти из аккаунта?',
        'Anderer': 'Другой',
        'Aus Verlauf entfernen': 'Удалить историю чатов',
        'Abbrechen': 'Отменить',
        'Cards': 'Карты',
        'space': 'Облако',
        'Dateien und Ordner hier ablegen': 'Храните здесь файлы и папки',
        'Bist Du Dir sicher, dass Du  zu diesem Chat hinzufügen möchtest?': 'Вы уверены, что хотите добавить в этот чат?',
        'Dieses KI-Modell steht nur Sidekick™ Pro Nutzern zur Verfügung. Möchtest Du Dir Sidekick™ Pro ansehen?': 'Эта модель искусственного интеллекта доступна только пользователям Sidekick™ Pro. Хотите взглянуть на Sidekick™ Pro?',
        'Pro ansehen': 'Посмотреть Про',
        'Bist Du Dir sicher, dass Du DeepSeek R1 zu diesem Chat hinzufügen möchtest?': 'Вы уверены, что хотите добавить DeepSeek R1 в этот чат?',
        'Bist Du Dir sicher, dass Du Claude 3.5 Haiku zu diesem Chat hinzufügen möchtest?': 'Вы уверены, что хотите добавить Claude 3.5 Haiku в этот чат?',
        'Bist Du Dir sicher, dass Du Gemini 2.0 Flash zu diesem Chat hinzufügen möchtest?': 'Вы уверены, что хотите добавить Gemini 2.0 Flash в этот чат?',
        'Bist Du Dir sicher, dass Du Gemini 2.0 Flash-Lite zu diesem Chat hinzufügen möchtest?': 'Вы уверены, что хотите добавить Gemini 2.0 Flash-Lite в этот чат?',
        'Bist Du Dir sicher, dass Du GPT-4.1 Mini zu diesem Chat hinzufügen möchtest?': 'Вы уверены, что хотите добавить GPT-4.1 Mini в этот чат?',
        'Bist Du Dir sicher, dass Du GPT-4.1 Nano zu diesem Chat hinzufügen möchtest?': 'Вы уверены, что хотите добавить GPT-4.1 Nano в этот чат?',
        'Bist Du Dir sicher, dass Du GPT-4o mini zu diesem Chat hinzufügen möchtest?': 'Вы уверены, что хотите добавить GPT-4o mini в этот чат?',
        'Bist Du Dir sicher, dass Du Llama 3.2 90B zu diesem Chat hinzufügen möchtest?': 'Вы уверены, что хотите добавить Llama 3.2 90B в этот чат?',
        'Bist Du Dir sicher, dass Du Llama 4 Scout zu diesem Chat hinzufügen möchtest?': 'Вы уверены, что хотите добавить Llama 4 Scout в этот чат?',
        'Bist Du Dir sicher, dass Du Mistral Small 3 zu diesem Chat hinzufügen möchtest?': 'Вы уверены, что хотите добавить Mistral Small 3 в этот чат?',
        'Bist Du Dir sicher, dass Du Qwen 2.5 14B 1M zu diesem Chat hinzufügen möchtest?': 'Вы уверены, что хотите добавить Qwen 2.5 14B 1M в этот чат?',
        'Bist Du Dir sicher, dass Du Claude 3.5 Sonnet zu diesem Chat hinzufügen möchtest?': 'Вы уверены, что хотите добавить Claude 3.5 Sonnet в этот чат?',
        'Bist Du Dir sicher, dass Du Claude 3.7 Sonnet zu diesem Chat hinzufügen möchtest?': 'Вы уверены, что хотите добавить Claude 3.7 Sonnet в этот чат?',
        'Bist Du Dir sicher, dass Du Gemini 2.0 Flash Thinking zu diesem Chat hinzufügen möchtest?': 'Вы уверены, что хотите добавить Gemini 2.0 Flash Thinking в этот чат?',
        'Bist Du Dir sicher, dass Du Gemini 2.5 Pro zu diesem Chat hinzufügen möchtest?': 'Вы уверены, что хотите добавить Gemini 2.5 Pro в этот чат?',
        'Bist Du Dir sicher, dass Du GPT-4.1 zu diesem Chat hinzufügen möchtest?': 'Вы уверены, что хотите добавить GPT-4.1 в этот чат?',
        'Bist Du Dir sicher, dass Du Llama 3.3 70B diesem Chat hinzufügen möchtest?': 'Вы уверены, что хотите добавить Llama 3.3 70B в этот чат?',
        'Bist Du Dir sicher, dass Du Llama 4 Maverick zu diesem Chat hinzufügen möchtest?': 'Вы уверены, что хотите добавить Llama 4 Maverick в этот чат?',
        'Bist Du Dir sicher, dass Du o1 zu diesem Chat hinzufügen möchtest?': 'Вы уверены, что хотите добавить o1 в этот чат?',
        'Bist Du Dir sicher, dass Du o3 mini zu diesem Chat hinzufügen möchtest?': 'Вы уверены, что хотите добавить o3 mini в этот чат?',
        'Bist Du Dir sicher, dass Du Perplexity zu diesem Chat hinzufügen möchtest?': 'Вы уверены, что хотите добавить Perplexity в этот чат?',
        'Bist Du Dir sicher, dass Du QwQ 32B zu diesem Chat hinzufügen möchtest?': 'Вы уверены, что хотите добавить QwQ 32B в этот чат?',
        '"????? ???????" hat "Sidekick™ DeepSeek R1" hinzugefügt. Teilnehmer können mit @ einbezogen werden.': '«????? ???????» добавил „Sidekick™ DeepSeek R1“. Участники могут быть включены с помощью @.',
        '"????? ???????" hat "Sidekick™ Claude 3.5 Haiku" hinzugefügt. Teilnehmer können mit @ einbezogen werden.': '«????? ???????» добавил «Sidekick™ Claude 3.5 Haiku». Участники могут быть включены с помощью @.',
        '"????? ???????" hat "Sidekick™ Gemini 2.0 Flash" hinzugefügt. Teilnehmer können mit @ einbezogen werden.': '«????? ???????» добавил «Sidekick™ Gemini 2.0 Flash». Участники могут быть включены с помощью @.',
        '"????? ???????" hat "Sidekick™ Gemini 2.0 Flash-Lite" hinzugefügt. Teilnehmer können mit @ einbezogen werden.': '«????? ???????» добавил «Sidekick™ Gemini 2.0 Flash-Lite». Участники могут быть включены с помощью @.',
        '"????? ???????" hat "Sidekick™ GPT-4.1 Mini" hinzugefügt. Teilnehmer können mit @ einbezogen werden.': '«????? ???????» добавил «Sidekick™ GPT-4.1 Mini». Участники могут быть включены с помощью @.',
        '"????? ???????" hat "Sidekick™ GPT-4.1 Nano" hinzugefügt. Teilnehmer können mit @ einbezogen werden.': '«????? ???????» добавил «Sidekick™ GPT-4.1 Nano». Участники могут быть включены с помощью @.',
        '"????? ???????" hat "Sidekick™ GPT-4o mini" hinzugefügt. Teilnehmer können mit @ einbezogen werden.': '«????? ???????» добавил «Sidekick™ GPT-4o mini». Участники могут быть включены с помощью @.',
        '"????? ???????" hat "Sidekick™ Llama 3.2 90B" hinzugefügt. Teilnehmer können mit @ einbezogen werden.': '«????? ???????» добавил «Sidekick™ Llama 3.2 90B». Участники могут быть включены с помощью @.',
        '"????? ???????" hat "Sidekick™ Llama 4 Scout" hinzugefügt. Teilnehmer können mit @ einbezogen werden.': '«????? ???????» добавил «Sidekick™ Llama 4 Scout». Участники могут быть включены с помощью @.',
        '"????? ???????" hat "Sidekick™ Mistral Small 3" hinzugefügt. Teilnehmer können mit @ einbezogen werden.': '«????? ???????» добавил «Sidekick™ Mistral Small 3». Участники могут быть включены с помощью @.',
        '"????? ???????" hat "Sidekick™ Qwen 2.5 14B 1M" hinzugefügt. Teilnehmer können mit @ einbezogen werden.': '«????? ???????» добавил «Sidekick™ Qwen 2.5 14B 1M». Участники могут быть включены с помощью @.',
        '"????? ???????" hat "Sidekick™ Claude 3.5 Sonnet" hinzugefügt. Teilnehmer können mit @ einbezogen werden.': '«????? ???????» добавил «Sidekick™ Claude 3.5 Sonnet». Участники могут быть включены с помощью @.',
        '"????? ???????" hat "Sidekick™ Claude 3.7 Sonnet" hinzugefügt. Teilnehmer können mit @ einbezogen werden.': '«????? ???????» добавил «Sidekick™ Claude 3.7 Sonnet». Участники могут быть включены с помощью @.',
        '"????? ???????" hat "Sidekick™ Gemini 2.0 Flash Thinking" hinzugefügt. Teilnehmer können mit @ einbezogen werden.': '«????? ???????» добавил «Sidekick™ Gemini 2.0 Flash Thinking». Участников можно включить с помощью @.',
        '"????? ???????" hat "Sidekick™ Gemini 2.5 Pro" hinzugefügt. Teilnehmer können mit @ einbezogen werden.': '«????? ???????» добавил «Sidekick™ Gemini 2.5 Pro». Участники могут быть включены с помощью @.',
        '"????? ???????" hat "Sidekick™ GPT-4.1" hinzugefügt. Teilnehmer können mit @ einbezogen werden.': '«????? ???????» добавил «Sidekick™ GPT-4.1». Участники могут быть включены с помощью @.',
        '"????? ???????" hat "Sidekick™ Llama 3.3 70B" hinzugefügt. Teilnehmer können mit @ einbezogen werden.': '«????? ???????» добавил «Sidekick™ Llama 3.3 70B». Участники могут быть включены с помощью @.',
        '"????? ???????" hat "Sidekick™ Llama 4 Maverick" hinzugefügt. Teilnehmer können mit @ einbezogen werden.': '«????? ???????» добавил «Sidekick™ Llama 4 Maverick». Участники могут быть включены с помощью @.',
        '"????? ???????" hat "Sidekick™ o1" hinzugefügt. Teilnehmer können mit @ einbezogen werden.': '«????? ???????» добавил «Sidekick™ o1». Участники могут быть включены с помощью @.',
        '"????? ???????" hat "Sidekick™ o3 mini" hinzugefügt. Teilnehmer können mit @ einbezogen werden.': '«????? ???????» добавил «Sidekick™ o3 mini». Участники могут быть включены с помощью @.',
        '"????? ???????" hat "Sidekick™ Perplexity" hinzugefügt. Teilnehmer können mit @ einbezogen werden.': '«????? ???????» добавил «Sidekick™ Perplexity». Участники могут быть включены с помощью @.',
        '"????? ???????" hat "Sidekick™ QwQ 32B" hinzugefügt. Teilnehmer können mit @ einbezogen werden.': '«????? ???????» добавил «Sidekick™ QwQ 32B». Участники могут быть включены с помощью @.',
        'Upgrade Angebot': 'Предложение по обновлению',
        'Nutze das gesamte Potenzial der generativen KI mit der PRO-Version.': 'Используйте весь потенциал генеративного ИИ с помощью версии PRO.',
        'Voller Zugriff auf alle KI-Modelle': 'Полный доступ ко всем моделям ИИ',
        'Neue PRO-Agents': 'Новые агенты PRO',
        'Bildgenerierung': 'Генерация изображений',
        'Mehr Highspeed-Chats': 'Больше высокоскоростных чатов',
        'Jederzeit kündbar': 'Возможность отмены в любое время',
        '(In Kürze)': '(Скоро будет)',
        'Nur 18,00 EUR mtl.': 'Всего 1680 RUB в месяц',
        'Abonnieren': 'Подписаться',
        'Eigenen Sidekick Server einrichten?': 'Создать свой собственный сервер Sidekick?',


        // Месяцы с числами от 1 до 31 для 2024 и 2025 годов
        ...generateDateTranslations(2024),
        ...generateDateTranslations(2025),

        // Добавьте ВСЕ остальные элементы интерфейса
    };

    // Функция для генерации переводов дат
    function generateDateTranslations(year) {
        const months = [
            { de: 'Januar', ru: 'Января' },
            { de: 'Februar', ru: 'Февраля' },
            { de: 'März', ru: 'Марта' },
            { de: 'April', ru: 'Апреля' },
            { de: 'Mai', ru: 'Мая' },
            { de: 'Juni', ru: 'Июня' },
            { de: 'Juli', ru: 'Июля' },
            { de: 'August', ru: 'Августа' },
            { de: 'September', ru: 'Сентября' },
            { de: 'Oktober', ru: 'Октября' },
            { de: 'November', ru: 'Ноября' },
            { de: 'Dezember', ru: 'Декабря' }
        ];

        const result = {};

        // Добавляем полные названия месяцев
        months.forEach(month => {
            result[`${month.de} ${year}`] = `${month.ru} ${year}`;
        });

        // Добавляем даты с числами от 1 до 31
        months.forEach(month => {
            for (let day = 1; day <= 31; day++) {
                result[`${day}. ${month.de} ${year}`] = `${day}. ${month.ru} ${year}`;
            }
        });

        return result;
    }

    function translateText(node) {
        if (node.nodeType === Node.TEXT_NODE) {
            const text = node.textContent.trim();
            if (translations[text]) {
                node.textContent = translations[text];
            }
        }
        else if (node.nodeType === Node.ELEMENT_NODE) {
            // Атрибуты
            ['title', 'placeholder', 'aria-label'].forEach(attr => {
                if (node.hasAttribute(attr)) {
                    const value = node.getAttribute(attr);
                    if (translations[value]) {
                        node.setAttribute(attr, translations[value]);
                    }
                }
            });

            // Спецкейс для кнопок с составным текстом
            if (node.tagName === 'BUTTON') {
                const childText = Array.from(node.childNodes)
                    .filter(n => n.nodeType === Node.TEXT_NODE)
                    .map(n => n.textContent.trim())
                    .join(' ');

                if (translations[childText]) {
                    node.childNodes.forEach(n => {
                        if (n.nodeType === Node.TEXT_NODE) {
                            n.textContent = translations[childText];
                        }
                    });
                }
            }

            node.childNodes.forEach(translateText);
        }
    }

    const observer = new MutationObserver(mutations => {
        mutations.forEach(mutation => {
            mutation.addedNodes.forEach(node => {
                if (node.nodeType === Node.ELEMENT_NODE) {
                    translateText(node);
                }
            });
        });
    });

    observer.observe(document.body, {
        childList: true,
        subtree: true,
        attributes: true,
        characterData: true
    });

    translateDocument();
    setInterval(translateDocument, 1000); // Для динамических элементов

    function translateDocument() {
        translateText(document.body);

        // Специальные случаи
        document.querySelectorAll('input, textarea').forEach(el => {
            if (el.placeholder && translations[el.placeholder]) {
                el.placeholder = translations[el.placeholder];
            }
        });
    }
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址