NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name SuperETKA Elsa Translator + Scrollbar fix // @namespace https://superetka.com/ // @version 1.2 // @description Translated UI (DE/EN), fixes a lot of drunken RU/IT translation. // @author ChatGPT // @match https://superetka.com/elsa/* // @grant none // @license MIT // ==/UserScript== (function () { "use strict"; /* ------------------------------------------------ * 0. Layout‑Fix * ---------------------------------------------- */ document.documentElement.style.overflow = "visible"; document.body.style.overflow = "visible"; /* ------------------------------------------------ * 1. Settings (localStorage) * ---------------------------------------------- */ const LANG_KEY = "superetka_elsa_lang"; // "de" | "en" const ENABLE_KEY = "superetka_elsa_enable"; // "1" | "0" const lang = localStorage.getItem(LANG_KEY) || "de"; const enabled = localStorage.getItem(ENABLE_KEY) !== "0"; // default = true /* ------------------------------------------------ * 2. Übersetzungstabelle * ---------------------------------------------- */ const T = { /* ---------- Main Screen ---------- */ "Привет мой друг!": { de: "Hallo mein Freund!", en: "Hello my friend!" }, "Все данные тут БЕСПЛАТНЫЕ!": { de: "Alle Daten hier sind KOSTENLOS!", en: "All data here is FREE!" }, "Для получения доступа к пробивке VIN перейдите по ": { de: "Um Zugriff auf die VIN-Abfrage zu erhalten, gehen Sie zu ", en: "To get access to VIN lookup, go to " }, "ссылке": { de: "dem Link", en: "the link" }, /* ---------- Toolbar / Buttons ---------- */ "Schema elettrico": { de: "Stromlaufplan", en: "Wiring diagram" }, "Manuale di riparazione": { de: "Reparaturanleitung", en: "Repair manual" }, "Кузовной ремонт": { de: "Karosseriereparatur", en: "Body repair" }, "Инспекционный сервис и уход": { de: "Inspektionsservice & Pflege", en: "Inspection & maintenance", }, "Оффлайн-справочник по технике сервиса(HST)": { de: "Offline‑Servicehandbuch (HST)", en: "Offline service handbook (HST)", }, "Нормы времени(APOS)": { de: "Arbeitszeiten (APOS)", en: "Time norms (APOS)" }, "Каталог запчастей(ETKA)": { de: "Teilekatalog (ETKA)", en: "Parts catalog (ETKA)", }, "Дополнительные инструменты": { de: "Zusatzwerkzeuge", en: "Additional tools" }, /* ---------- Header ---------- */ "Электронная справочная система по сервису": { de: "Elektronisches Service‑Nachschlagesystem", en: "Electronic service reference system", }, /* ---------- Link‑Titles ---------- */ Teilekatalog: { de: "Teilekatalog", en: "Parts catalog" }, /* ---------- LK‑Bereich ---------- */ "My account": { de: "Mein Konto", en: "My account" }, "My vins": { de: "Meine VINs", en: "My VINs" }, "Аккаунт:": { de: "Konto:", en: "Account:" }, "Подписка не активна.": { de: "Abo nicht aktiv.", en: "Subscription inactive." }, "Активировать?": { de: "Aktivieren?", en: "Activate?" }, "Выйти из аккаунта": { de: "Abmelden", en: "Logout" }, /* ---------- AI‑LeftTree ---------- */ "Сначала введите VIN": { de: "Bitte zuerst die VIN eingeben", en: "Enter VIN first", }, Protocols: { de: "Protokolle", en: "Protocols" }, History: { de: "Historie", en: "History" }, "Заправочные объемы": { de: "Füllmengen", en: "Fluid capacities" }, /* ---------- Modals ---------- */ "Идентификация автомобиля": { de: "Fahrzeug‑Identifikation", en: "Vehicle identification", }, "Выберите модуль": { de: "Modul wählen", en: "Choose module" }, "Cerca in base al contenuto dei documenti": { de: "Dokumente inhaltlich durchsuchen", en: "Search by document content", }, "История": { de: "Verlauf", en: "History" }, "Очистится после перезагрузки страницы": { de: "Wird nach Neuladen der Seite gelöscht", en: "Clears after page reload", }, "PDF service": { de: "PDF‑Service", en: "PDF service" }, "Расшифровка VIN/ Протоколы диагностики / История обслуживания": { de: "VIN‑Entschlüsselung / Diagnoseprotokolle / Serviceverlauf", en: "VIN decoding / Diagnostic protocols / Service history" }, /* ---------- Modal Zusatzwerkzeuge ---------- */ "База данных прошивок": { de: "Firmware‑Datenbank", en: "ECU firmware database", }, "База данных VIN (бесплатно)": { de: "VIN‑Datenbank (kostenlos)", en: "VIN database (free)", }, "TPI database": { de: "TPI‑Datenbank", en: "TPI database" }, /* ---------- Eingabelabels ---------- */ "Marca": { de: "Marke", en: "Make" }, "Nome": { de: "Name", en: "Name" }, "Modello": { de: "Modell", en: "Model" }, "Anno modello": { de: "Modelljahr", en: "Model year" }, "numero": { de: "Nummer", en: "Number" }, "motore": { de: "Motor", en: "Engine" }, "Checkpoint": { de: "Prüfpunkt", en: "Checkpoint" }, "Visualizzazione": { de: "Ansicht", en: "View" }, "Numero VIN": { de: "VIN‑Nummer", en: "VIN number" }, /* ---------- Buttons ---------- */ Find: { de: "Suchen", en: "Find" }, OK: { de: "OK", en: "OK" }, "Сброс": { de: "Zurücksetzen", en: "Reset" }, /* ---------- Tabs ---------- */ "Инструкции по поддержанию в исправном состоянии": { de: "Wartungsanleitungen", en: "Maintenance instructions", }, "Инструкции по ремонту": { de: "Reparaturanleitungen", en: "Repair instructions", }, SSP: { de: "SSP", en: "SSP" }, "Сводка TPI": { de: "TPI‑Zusammenfassung", en: "TPI summary" }, "Текстовая информация": { de: "Textinformationen", en: "Text information" }, "Для данного авто": { de: "Für dieses Fahrzeug", en: "For this vehicle" }, /* ---------- Footer Hinweis ---------- */ "Все данные взяты с сайта superetka.com/elsa и они полностью бесплатны": { de: "Alle Daten stammen von superetka.com/elsa und sind völlig kostenlos", en: "All data taken from superetka.com/elsa and completely free", }, /* ---------- States & Meldungen ---------- */ "Для данного VIN отсутствуют протоколы": { de: "Für diese VIN liegen keine Protokolle vor", en: "No protocols for this VIN", }, "Сервис доступен только по платной подписке": { de: "Dienst nur mit kostenpflichtigem Abo verfügbar", en: "Service available by paid subscription only", }, "Это бесплатная опция. Если Вас в ней что-то не устраивает - возврата средств не будет.": { de: "Dies ist eine kostenlose Option. Es gibt keine Rückerstattung, wenn sie Ihnen nicht gefällt.", en: "This is a free option. No refund if you dislike it.", }, "Закрыто на техническое обслуживание": { de: "Wartungsarbeiten – geschlossen", en: "Closed for maintenance", }, "Показать авто до 2000 года (NecrophileMode)": { de: "Fahrzeuge vor 2000 anzeigen (Necrophile‑Modus)", en: "Show cars before 2000 (Necrophile Mode)", }, /* ---------- Neue KI‑Texte ---------- */ "Авто из РФ до мая 2023": { de: "Fahrzeuge aus RU bis Mai 2023", en: "Cars from RU until May 2023", }, "Вины из Китая и из США не работают.": { de: "VINs aus China und den USA funktionieren nicht.", en: "VINs from China and USA do not work.", }, "Есть Audi,VW,Skoda": { de: "Vorhanden: Audi, VW, Skoda", en: "Available: Audi, VW, Skoda", }, "Нет Seat, Bentley, Lamborghini": { de: "Kein Seat, Bentley, Lamborghini", en: "No Seat, Bentley, Lamborghini", }, "Если в данный момент все обработчики заняты, вин обработается позже.": { de: "Wenn gerade alle Worker beschäftigt sind, wird die VIN später verarbeitet.", en: "If all processors are busy, the VIN will be processed later.", }, "Поддерживаются только относительно свежие авто.": { de: "Unterstützt werden nur relativ moderne Fahrzeuge.", en: "Only relatively recent cars are supported.", }, "Привет. Это экспериментальный функционал. По некоторым опциям могут быть дубли, не нужно мне писать об этом. Если нет нужной информации, об этом тоже не нужно писать. Особенно ночью =)": { de: "Hallo. Dies ist eine experimentelle Funktion. Manche Optionen können doppelt erscheinen – bitte nicht deswegen schreiben. Fehlt eine Info, auch nicht schreiben. Vor allem nicht nachts =)", en: "Hi. This is experimental. Some options may duplicate; no need to write me. If info is missing, don't write either. Especially not at night =)", }, "Масло моторное: Долить (после доливки, при необходимости долить до отметки макс.), стандартное": { de: "Motoröl: Auffüllen (nach dem Auffüllen ggf. bis Max‑Marke), Standard", en: "Engine oil: top up (after topping up, if necessary to max mark), standard", }, "Объем:": { de: "Menge (Liter):", en: "Volume (liters):" }, "Допуск:": { de: "Freigabe:", en: "Spec:" }, "На данный момент информация доступна только для Audi и VW до 2017 года. Не нужно мне писать с этим вопросом.": { de: "Zurzeit sind Informationen nur für Audi und VW bis 2017 verfügbar. Bitte schreiben Sie mir dazu keine Nachrichten.", en: "At the moment, information is available only for Audi and VW up to 2017. Please do not message me about this." }, /* ---------- Car Infos ---------- */ // ==== Grunddaten ==== // "Bargain. designation": { de: "Ausstattungsbezeichnung", en: "Bargain designation" }, "Engine code": { de: "Motorkennbuchstabe", en: "Engine code" }, "At KP": { de: "Getriebe", en: "At KP" }, "date of manufacture": { de: "Herstellungsdatum", en: "Date of manufacture" }, "Allestimento": { de: "Ausstattung", en: "Trim" }, "Roof color": { de: "Dachfarbe", en: "Roof color" }, "Exterior Paint / Paint Number": { de: "Außenlackierung / Farbnummer", en: "Exterior paint / paint number" }, // ==== PR-Beschreibungen ==== "Barra stabilizzatrice anteriore": { de: "Stabilisator vorne", en: "Front stabilizer bar" }, "Barra stabilizzatrice posteriore": { de: "Stabilisator hinten", en: "Rear stabilizer bar" }, "Versione CO2": { de: "CO2-Version", en: "CO2 version" }, "Differenziazione di montaggio componenti vettura": { de: "Montageunterschiede Fahrzeugkomponenten", en: "Assembly differentiation vehicle components" }, "Sistemi di alimentazione del carburante": { de: "Kraftstoffversorgungssysteme", en: "Fuel supply systems" }, "Differenziazione ciclo di fabbricazione": { de: "Fertigungszyklus-Differenzierung", en: "Manufacturing cycle differentiation" }, "Etichetta adesiva (specifica cliente senza prom.)": { de: "Aufkleber (Kundenspezifisch, ohne Promotion)", en: "Adhesive label (customer specific, no promotion)" }, "Serie di scritte": { de: "Beschriftungsserie", en: "Series of inscriptions" }, "terminale di scarico": { de: "Auspuffendrohr", en: "Exhaust tailpipe" }, "Blocchetto di accensione/sistema di bloccaggio/bloccaggio elettrico del piantone dello sterzo": { de: "Zündschloss/Lenksäulenverriegelung", en: "Ignition lock/steering column locking" }, "zerbini": { de: "Fußmatten", en: "Floor mats" }, "Istruzioni per l'uso": { de: "Betriebsanleitung", en: "Owner's manual" }, "Zone climatiche": { de: "Klimazonen", en: "Climatic zones" }, "Categoria di peso asse posteriore": { de: "Hinterachs-Gewichtsklasse", en: "Rear axle weight category" }, "Sistemi frenanti": { de: "Bremssysteme", en: "Brake systems" }, "Differenziazione categorie di vetture gruppi propulsori/componenti piattaforma": { de: "Fahrzeugkategorie-Differenzierung (Antrieb/Plattform)", en: "Vehicle category differentiation (drive/platform components)" }, "Dispositivo di traino": { de: "Anhängerkupplung", en: "Trailer hitch" }, "Filtro ai carboni attivi/filtro antiparticolato benzina": { de: "Aktivkohlefilter/Benzinpartikelfilter", en: "Activated carbon filter/gasoline particulate filter" }, "Targhette di identificazione": { de: "Identifikationsschild", en: "Identification label" }, "Ruota di scorta/kit per forature": { de: "Reserverad/Pannenset", en: "Spare wheel/tire repair kit" }, "Ammortizzatori telaio posteriori": { de: "Hintere Stoßdämpfer", en: "Rear shock absorbers" }, "Versione freni posteriori": { de: "Hintere Bremsversion", en: "Rear brake version" }, "Sterzo": { de: "Lenkung", en: "Steering" }, "Copriruote": { de: "Radabdeckung", en: "Wheel covers" }, "Bulloni ruota con chiusura": { de: "Radschrauben mit Sicherung", en: "Wheel bolts with lock" }, "Contrappesi per volanti": { de: "Lenkradausgleichsgewichte", en: "Steering wheel counterweights" }, "Attrezzi di bordo e cric": { de: "Bordwerkzeug und Wagenheber", en: "Onboard tools and jack" }, "Protezione inferiore del gruppo motore": { de: "Unterfahrschutz Motor", en: "Engine underbody protection" }, "Cassetta di pronto soccorso/triangolo di emergenza": { de: "Erste-Hilfe-Kasten/Warndreieck", en: "First aid kit/emergency triangle" }, "Parti applicate per motore (supporto propulsore)": { de: "Motoranbauteile (Motorträger)", en: "Engine attachments (engine support)" }, "Frigobox": { de: "Kühlfach", en: "Cool box" }, "Modalità di trazione": { de: "Antriebsart", en: "Drive mode" }, "Quantitä di rifornimento carburante": { de: "Kraftstoffbefüllmenge", en: "Fuel refilling quantity" }, "Versione freni anteriori": { de: "Vordere Bremsversion", en: "Front brake version" }, "Equipaggiamento per il trasporto": { de: "Transportausstattung", en: "Transport equipment" }, "Interventi insonorizzanti esterni": { de: "Außengeräuschdämmung", en: "External sound insulation" }, "Volanti": { de: "Lenkräder", en: "Steering wheels" }, "Impiego per (tipo di) carburante senza piombo": { de: "Verwendung für bleifreies Kraftstoff", en: "Use for unleaded fuel" }, "Paraurti": { de: "Stoßfänger", en: "Bumper" }, "Etichette/targhette speciali": { de: "Spezialetiketten/-schilder", en: "Special labels/plates" }, "Trattamento serbatoio carburante": { de: "Kraftstofftankbehandlung", en: "Fuel tank treatment" }, "Heavy-duty/sports version": { de: "Verstärkte/Sportversion", en: "Heavy-duty/sports version" }, "Aspirazione dell'aria esterna per l'abitacolo (con filtro antiparticolato)": { de: "Außenluftansaugung Innenraum (mit Staubfilter)", en: "Outside air intake for cabin (with particulate filter)" }, "Serratura coperchio/ sportello del serbatoio": { de: "Tankdeckel-/Tankklappenschloss", en: "Fuel cap/door lock" }, "Sistema di fissagio supplementare per i seggiolini dei bambini": { de: "Zusätzliche Kindersitzbefestigung", en: "Supplementary child seat restraint system" }, "Parete divisoria": { de: "Trennwand", en: "Partition wall" }, "Console centrale": { de: "Mittelkonsole", en: "Center console" }, "Apertura nel tetto/capote": { de: "Dachöffnung/Cabrioverdeck", en: "Roof opening/convertible top" }, "Ancoraggio anteriore per seggiolini per bambini": { de: "Vorderer Kindersitzanker", en: "Front child seat anchor" }, "Fondo vano di carico posteriore": { de: "Boden Kofferraum hinten", en: "Rear luggage compartment floor" }, "Appoggiatesta": { de: "Kopfstützen", en: "Headrests" }, "Regolazione sedile": { de: "Sitzeinstellung", en: "Seat adjustment" }, "Rivestimento porte e pannelli laterali": { de: "Türverkleidung/Seitenverkleidung", en: "Door and side panel trim" }, "Sportelli/scomparti nel bagagliaio": { de: "Fächer/Abteile im Kofferraum", en: "Compartments in the trunk" }, "Sedili posteriori": { de: "Rücksitzbank", en: "Rear seats" }, "Poggiatesta posteriori": { de: "Kopfstützen hinten", en: "Rear headrests" }, "Sistemi di ritenuta anteriori": { de: "Vordere Rückhaltesysteme", en: "Front restraint systems" }, "Porte posteriori/portellone": { de: "Hintertüren/Heckklappe", en: "Rear doors/tailgate" }, "Mancorrenti/portacarichi sul tetto": { de: "Dachreling/Dachträger", en: "Roof rails/roof racks" }, "Copertura vano bagagli": { de: "Gepäckraumabdeckung", en: "Luggage compartment cover" }, "Misure di insonorizzazione rumorosità interna": { de: "Maßnahmen zur Geräuschdämmung innen", en: "Interior noise insulation measures" }, "Dispositivo di carico passante/sacca portasci": { de: "Durchladevorrichtung/Skisack", en: "Pass-through loading device/ski bag" }, "Avvolgibile parasole lunotto post./cristalli lat.": { de: "Rollo Sonnenblende Heckscheibe/Seitenscheiben", en: "Rear window/lateral glass sunshade roller" }, "Cinture di sicurezza posteriori laterali": { de: "Hintere äußere Sicherheitsgurte", en: "Rear outer seat belts" }, "riscaldamento del sedile": { de: "Sitzheizung", en: "Seat heating" }, "Listello paracolpi laterale": { de: "Seiten-Schutzleiste", en: "Side protective strip" }, "Ventilazione sedile/funzione massaggio": { de: "Sitzbelüftung/Massagefunktion", en: "Seat ventilation/massage function" }, "Meccanismo della serratura portellone/cofano posteriore": { de: "Heckklappenschließmechanismus", en: "Tailgate/boot lock mechanism" }, "Parabrezza": { de: "Windschutzscheibe", en: "Windshield" }, "Serratura porta e sportelli": { de: "Tür-/Klappenschloss", en: "Door and lid lock" }, "Cristalli laterali e posteriori": { de: "Seitenscheiben und Heckscheibe", en: "Side and rear windows" }, "Specchietto retrovisore interno di sicurezza": { de: "Innenspiegel mit Sicherheitsfunktion", en: "Interior safety rearview mirror" }, "Elementi di comando (volanti/piantoni sterzo)": { de: "Bedienelemente (Lenkrad/Lenksäule)", en: "Control elements (steering wheels/columns)" }, "Portabevande": { de: "Getränkehalter", en: "Cup holder" }, "Braccioli per sedili anteriori": { de: "Vordere Armlehnen", en: "Front seat armrests" }, "Airbag": { de: "Airbag", en: "Airbag" }, "Regolazione sedile passeggero anteriore dalla parte posteriore dell'abitacolo": { de: "Beifahrersitzverstellung vom Fond", en: "Front passenger seat adjustment from rear" }, "Airbag laterale": { de: "Seitenairbag", en: "Side airbag" }, "Vani portaoggetti laterali e nelle porte posteriori": { de: "Seitliche/Hecktür-Staufächer", en: "Side/rear door storage compartments" }, "Cassetto portaoggetti": { de: "Handschuhfach", en: "Glove compartment" }, "Modanature": { de: "Zierleisten", en: "Mouldings" }, "Rivestimento vano bagagli": { de: "Kofferraumauskleidung", en: "Luggage compartment trim" }, "Frequenza portante per telecomando": { de: "Trägerfrequenz für Fernbedienung", en: "Carrier frequency for remote control" }, "Spoiler posteriore": { de: "Heckspoiler", en: "Rear spoiler" }, "Trattam.protett. vernice/protezione trasporto": { de: "Lackschutz/Transport-Schutz", en: "Paint/transport protection" }, "Spoiler anteriore": { de: "Frontspoiler", en: "Front spoiler" }, "Inserti": { de: "Dekoreinlagen", en: "Decorative inserts" }, "Specchietto retrovisore esterno destro": { de: "Rechter Außenspiegel", en: "Right exterior mirror" }, "Specchietto retrovisore esterno sinistro": { de: "Linker Außenspiegel", en: "Left exterior mirror" }, "alette parasole": { de: "Sonnenblenden", en: "Sun visors" }, "Estintore": { de: "Feuerlöscher", en: "Fire extinguisher" }, "Poggiabraccia centrale": { de: "Zentrale Armlehne", en: "Center armrest" }, "Coperture supplementari laterali della carrozzeria": { de: "Zusätzliche seitliche Karosserieabdeckungen", en: "Additional side body covers" }, "Componenti con superficie particolare": { de: "Komponenten mit besonderer Oberfläche", en: "Components with special surface" }, "Griglia del radiatore": { de: "Kühlergrill", en: "Radiator grille" }, "Impianto aria esterna/diffusore": { de: "Außenluftanlage/Diffusor", en: "External air system/diffuser" }, "Corda elastica ragno 8 ganci/rete/tasca fermacarico": { de: "Spannseil mit 8 Haken/Ladetasche/Netz", en: "Elastic cord with 8 hooks/load net/pocket" }, "paraspruzzi": { de: "Schmutzfänger", en: "Mud flaps" }, "Impugnatura leva freno a mano": { de: "Handbremshebelgriff", en: "Handbrake lever grip" }, "Pomello/impugnatura della leva cambio": { de: "Schalthebelknauf/-griff", en: "Gear lever knob/handle" }, "Rivestimento/manicotto della leva cambio": { de: "Schalthebelverkleidung/-manschette", en: "Gear lever boot/cover" }, "Rivestimento del fondo vano bagagli": { de: "Kofferraum-Bodenverkleidung", en: "Trunk floor covering" }, "Luce interna nel vano piedi": { de: "Fußraumbeleuchtung", en: "Footwell lighting" }, "Regolazione specchietto retrovisore esterno": { de: "Außenspiegelverstellung", en: "External mirror adjustment" }, "Dispositivo di segnalazione/limitazione di velocitä": { de: "Geschwindigkeitswarn-/begrenzungssystem", en: "Speed warning/limiting device" }, "Cambia CD/lettore CD": { de: "CD-Wechsler/CD-Player", en: "CD changer/CD player" }, "Sistema antifurto": { de: "Diebstahlsicherung", en: "Anti-theft system" }, "Presa": { de: "Steckdose", en: "Socket" }, "Impianto accumulatore calore/riscaldamento suppl.": { de: "Wärmespeicher-/Zusatzheizungssystem", en: "Heat accumulator/auxiliary heating system" }, "Controllo pressione pneumatici": { de: "Reifendruckkontrolle", en: "Tire pressure monitoring" }, "Sistema Stop-Start/dispositivo di recupero": { de: "Start-Stopp-System/Energierückgewinnung", en: "Stop-start system/regeneration device" }, "Listelli sottoporta": { de: "Schwellerleisten", en: "Sill trims" }, "Norma sui gas di scarico": { de: "Abgasnorm", en: "Exhaust emission standard" }, "Ripiano portaoggetti": { de: "Ablagefach", en: "Storage shelf" }, "Supporti lombari negli schienali": { de: "Lendenstützen in den Sitzlehnen", en: "Lumbar supports in seatbacks" }, "Classe di gruppi piattaforme": { de: "Plattformgruppenklasse", en: "Platform group class" }, "CD Rom/DVD/scheda SD": { de: "CD-ROM/DVD/SD-Karte", en: "CD-ROM/DVD/SD card" }, "Luci laterali": { de: "Seitenleuchten", en: "Side lights" }, "Dispositivo di navigazione": { de: "Navigationsgerät", en: "Navigation device" }, "Sistema di ausilio al parcheggio": { de: "Einparkhilfe", en: "Parking assistance system" }, "Assistente di cambio corsia/assistente di mantenimento corsia": { de: "Spurwechsel-/Spurhalteassistent", en: "Lane change/lane keeping assistant" }, "Radio": { de: "Radio", en: "Radio" }, "Fari principali": { de: "Hauptscheinwerfer", en: "Main headlights" }, "Seconda batteria/montaggio batteria": { de: "Zweitbatterie/Batterieeinbau", en: "Second battery/battery mounting" }, "Alternatori": { de: "Lichtmaschinen", en: "Alternators" }, "Circuito luce di marcia": { de: "Fahrlichtschaltung", en: "Driving light circuit" }, "Impianto tergilavalunotto": { de: "Heckwisch-/Waschanlage", en: "Rear wiper/washer system" }, "Funzionamento intermittente tergicristalli/sensore luci e pioggia": { de: "Intervallscheibenwischer/Licht-/Regensensor", en: "Intermittent wipers/light and rain sensor" }, "Regolazione della profonditä dei fari": { de: "Scheinwerferhöhenverstellung", en: "Headlight range adjustment" }, "Chiave per sistema di chiusura": { de: "Schlüssel für Schließsystem", en: "Key for locking system" }, "Installazione altoparlanti": { de: "Lautsprecherinstallation", en: "Speaker installation" }, "Luci SBBR": { de: "SBBR-Leuchten", en: "SBBR lights" }, "Regolatore di velocitä": { de: "Geschwindigkeitsregler", en: "Speed regulator" }, "Fendinebbia posteriori": { de: "Hecknebelscheinwerfer", en: "Rear fog lights" }, "accendisigari": { de: "Zigarettenanzünder", en: "Cigarette lighter" }, "Indicatore di livello liquido di lavaggio": { de: "Waschwasserstandsanzeige", en: "Washer fluid level indicator" }, "Fendinebbia/fari supplementari": { de: "Nebelscheinwerfer/Zusatzscheinwerfer", en: "Fog lights/auxiliary lights" }, "Lavafari": { de: "Scheinwerferreinigungsanlage", en: "Headlight washer system" }, "Avvisatori acustici": { de: "Signalhörner", en: "Acoustic warning devices" }, "Raffreddamento motore": { de: "Motorkühlung", en: "Engine cooling" }, "Antenne": { de: "Antennen", en: "Antennas" }, "Impianto di riscaldamento e climatizzazione": { de: "Heizungs- und Klimaanlage", en: "Heating and air conditioning system" }, "Illuminazione vano bagagli": { de: "Kofferraumbeleuchtung", en: "Luggage compartment lighting" }, "Luce interna cabina": { de: "Innenraumbeleuchtung", en: "Cabin interior lighting" }, "Indicatore per errori di funzionamento": { de: "Betriebsfehleranzeige", en: "Fault indicator" }, "Versione fumatori/non fumatori": { de: "Raucher-/Nichtraucherversion", en: "Smoker/non-smoker version" }, "riscaldamento autonomo": { de: "Standheizung", en: "Auxiliary heater" }, "Controllo cintura di sicurezza": { de: "Sicherheitsgurtkontrolle", en: "Seat belt control" }, "Indicatore multifunzioni/computer di bordo": { de: "Multifunktionsanzeige/Bordcomputer", en: "Multifunction display/on-board computer" }, "Ugelli lavavetro riscaldabili": { de: "Beheizte Waschwasserdüsen", en: "Heated washer jets" }, "Spie supplementari": { de: "Zusatzleuchten", en: "Additional warning lights" }, "Indicatore di usura delle pastiglie dei freni": { de: "Bremsbelagverschleißanzeige", en: "Brake pad wear indicator" }, "Multimedia, collegamento per videoregistratore/DVD/notebook": { de: "Multimedia-Anschluss für Videorekorder/DVD/Notebook", en: "Multimedia connection for VCR/DVD/notebook" }, "Indicatore temperatura esterna": { de: "Außentemperaturanzeige", en: "Outside temperature indicator" }, "Tensione di esercizio": { de: "Betriebsspannung", en: "Operating voltage" }, "Telefono/sistema telematico": { de: "Telefon/Telematiksystem", en: "Telephone/telematic system" }, "Livelli di equipaggiamento": { de: "Ausstattungsniveaus", en: "Equipment levels" }, "Paesi con omologazione del tipo/paesi con requisiti speciali": { de: "Länder mit Typgenehmigung/Sonderanforderungen", en: "Countries with type approval/special requirements" }, "Kit di componenti secondo le norme nazionali di costruzione": { de: "Teilesatz nach nationalen Bauvorschriften", en: "Component kit according to national building regulations" }, "Supplementi al certificato di idoneitä tecnica generale": { de: "Zusatz zur Allgemeinen Betriebserlaubnis", en: "Addendum to general technical certificate" }, "Ruote": { de: "Räder", en: "Wheels" }, "Specifiche del motore": { de: "Motorspezifikationen", en: "Engine specifications" }, "Versioni promozionali": { de: "Sonderaktionen-Versionen", en: "Promotional versions" }, "Estensione garanzia": { de: "Garantieverlängerung", en: "Warranty extension" }, "Ricognitore di stanchezza": { de: "Müdigkeitserkennung", en: "Fatigue detection" }, "Specifiche vettura": { de: "Fahrzeugspezifikationen", en: "Vehicle specifications" }, "Verniciatura": { de: "Lackierung", en: "Paintwork" }, "Ammortizzatori telaio anteriori": { de: "Vordere Stoßdämpfer", en: "Front shock absorbers" }, "Specifiche del cambio": { de: "Getriebespezifikationen", en: "Transmission specifications" }, "Spray per riparazione pneumatici": { de: "Reifensprühdosen", en: "Tire repair spray" }, "Pneumatici 215/45 R16 86V": { de: "Reifen 215/45 R16 86V", en: "Tires 215/45 R16 86V" }, "Batterie": { de: "Batterien", en: "Batteries" }, "Forme di carrozzerie": { de: "Karosserieformen", en: "Body shapes" }, "Sistemi con videocamera/sensori ambientali": { de: "Kamerasysteme/Umgebungssensoren", en: "Camera/environmental sensor systems" }, "Categoria di peso asse anteriore": { de: "Vorderachs-Gewichtsklasse", en: "Front axle weight category" }, "Disposizione sterzo": { de: "Lenkanordnung", en: "Steering arrangement" }, "Rivestimento sedili": { de: "Sitzbezüge", en: "Seat upholstery" }, "Adattatore (per dispositivo di traino)": { de: "Adapter (für Anhängerkupplung)", en: "Adapter (for trailer hitch)" }, "Supporto base": { de: "Grundträger", en: "Base support" }, "Sedili anteriori": { de: "Vordersitze", en: "Front seats" }, "Pacchetto Portaoggetti": { de: "Ablagepaket", en: "Storage package" }, "Prolungamento intervallo di manutenzione": { de: "Wartungsintervallverlängerung", en: "Extended service interval" }, "Indicatore delle scadenze di manutenzione": { de: "Wartungsterminanzeige", en: "Maintenance deadline indicator" }, "Pacchetto Cromo": { de: "Chrompaket", en: "Chrome package" }, "Cassetti sotto i sedili anteriori": { de: "Fächer unter den Vordersitzen", en: "Drawers under front seats" }, "Ricezione tv/ricezione radio digitale": { de: "TV-/Digitalradioempfang", en: "TV/radio digital reception" }, "Codice di controllo (nessuna famiglia PR)": { de: "Kontrollcode (keine PR-Familie)", en: "Control code (no PR family)" }, "Motore base": { de: "Basismotor", en: "Base engine" }, "Inserti strumenti": { de: "Instrumenteneinsätze", en: "Instrument inserts" }, "Interfaccia elettrica per uso esterno": { de: "Elektrische Schnittstelle für externe Nutzung", en: "Electrical interface for external use" }, "Ausilio per la partenza in salita": { de: "Berganfahrhilfe", en: "Hill-start assist" }, "Pedaliera": { de: "Pedalerie", en: "Pedal assembly" }, "Protezione dei pedoni": { de: "Fußgängerschutz", en: "Pedestrian protection" } }; /* ------------------------------------------------ * 3. Übersetzungs‑Engine (nur wenn enabled) * ---------------------------------------------- */ const keysByLength = Object.keys(T).sort((a, b) => b.length - a.length); function translateTextNode(node) { const txt = node.nodeValue; if (!txt || !txt.trim()) return; const exact = txt.trim(); if (T[exact]) { node.nodeValue = txt.replace(exact, T[exact][lang]); return; } for (const k of keysByLength) { // Trimmed Pattern for Robustness const pattern = new RegExp(k.trim().replace(/[.*+?^${}()|[\]\\]/g, '\\$&'), "g"); node.nodeValue = node.nodeValue.replace(pattern, T[k][lang]); } } function translateAttributes(el) { ["title", "placeholder", "aria-label"].forEach((attr) => { const v = el.getAttribute(attr); if (v && T[v]) el.setAttribute(attr, T[v][lang]); }); } function translate(root = document) { root.querySelectorAll("[title],[placeholder],[aria-label]").forEach(translateAttributes); const walker = document.createTreeWalker(root.body || root, NodeFilter.SHOW_TEXT, null); let n; while ((n = walker.nextNode())) translateTextNode(n); } if (enabled) { translate(); new MutationObserver((ml) => { ml.forEach((m) => m.addedNodes.forEach((n) => n.nodeType === 1 && translate(n))); }).observe(document.body, { childList: true, subtree: true }); } /* ------------------------------------------------ * 4. Control‑Panel (Sprache + Ein/Aus) * ---------------------------------------------- */ const panel = document.createElement("div"); panel.style.cssText = "position:fixed;bottom:14px;right:14px;z-index:999999;font:12px/1 sans-serif;" + "background:#fff;border:1px solid #888;border-radius:4px;padding:4px 6px;box-shadow:0 0 4px rgba(0,0,0,.3);"; panel.innerHTML = ` <button data-cmd="de" ${lang === "de" && enabled ? "disabled" : ""}>DE</button> <button data-cmd="en" ${lang === "en" && enabled ? "disabled" : ""}>EN</button> <button data-cmd="off" ${!enabled ? "disabled" : ""}>OFF</button>`; panel.addEventListener("click", (e) => { if (e.target.tagName !== "BUTTON") return; const cmd = e.target.getAttribute("data-cmd"); if (cmd === "off") { localStorage.setItem(ENABLE_KEY, "0"); } else { localStorage.setItem(ENABLE_KEY, "1"); localStorage.setItem(LANG_KEY, cmd); } location.reload(); }); document.body.appendChild(panel); })();