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);
})();