🔧 BuxarTranslate Technische Details

Datei: technical.html
Zweck: Technische Informationen über Architektur, API und interne Struktur

📁 Projektstruktur

buxartranslate/ ├── manifest.json # Erweiterungskonfiguration ├── background.js # Hintergrundskript (Hauptlogik) ├── popup.html # Popup-Oberfläche ├── popup.js # Popup-Logik ├── icons/ # Erweiterungssymbole │ ├── icon-16.png │ ├── icon-32.png │ ├── icon-48.png │ ├── icon-64.png │ └── icon-128.png └── _locales/ # Lokalisierung ├── en/ │ └── messages.json ├── ru/ │ └── messages.json ├── de/ │ └── messages.json ├── es/ │ └── messages.json ├── it/ │ └── messages.json └── fr/ └── messages.json

🔑 Wichtige Dateien

manifest.json

Typ: WebExtension für Thunderbird

API-Version: 78.0+

Berechtigungen: storage, menus, notifications, activeTab

background.js

Zweck: Hauptlogik der Erweiterung

Funktionen: Kontextmenü, Übersetzungs-API, Fensterverwaltung

popup.js

Zweck: Einstellungsoberflächenlogik

Funktionen: Einstellungsverwaltung, Sprachsuche, Lokalisierung

🌐 API und Integrationen

Google Translate API

Spracherkennung: https://translate.googleapis.com/translate_a/single?client=gtx&sl=auto&tl=de&dt=ld&q=...
Textübersetzung: https://translate.googleapis.com/translate_a/single?client=gtx&sl=auto&tl=de&dt=t&q=...
// Übersetzungsfunktion über Google API async function translateWithGoogle(text, sourceLang, targetLang) { const url = `https://translate.googleapis.com/translate_a/single?client=gtx&sl=${sourceLang}&tl=${targetLang}&dt=t&q=${encodeURIComponent(text)}`; const response = await fetch(url); if (!response.ok) { throw new Error(`Google API error: ${response.status}`); } const data = await response.json(); let translatedText = ""; if (data && data[0]) { data[0].forEach(item => { if (item[0]) translatedText += item[0]; }); } return preserveLineBreaks(translatedText || text, text); }

Thunderbird WebExtension API

browser.menus

Kontextmenü-Erstellung und -Verwaltung

browser.menus.create({ id: "translate", title: menuTitle, contexts: ["selection"] });

browser.storage

Einstellungs- und Datenspeicherung

// Einstellungen speichern await browser.storage.local.set(settings); // Einstellungen laden const settings = await browser.storage.local.get(defaultSettings);

browser.notifications

Systembenachrichtigungsanzeige

browser.notifications.create({ type: "basic", iconUrl: "icon.png", title: title, message: message });

browser.windows

Übersetzungsfenster-Verwaltung

const translationWindow = await browser.windows.create({ url: url, type: 'popup', width: 550, height: 600 });

🔄 Nachrichtensystem

Kommunikation zwischen Erweiterungskomponenten:

// Nachrichtenhandler in background.js browser.runtime.onMessage.addListener((request, sender, sendResponse) => { if (request.action === "getTranslation") { browser.storage.local.get("lastTranslation").then(result => { sendResponse(result); }); return true; } if (request.action === "getSettings") { // ... Einstellungsanfragebehandlung } if (request.action === "saveSettings") { // ... Einstellungsspeicherbehandlung } });

💾 Datenspeicherung

// Datenstruktur in localStorage { // Benutzereinstellungen "translateTo": "de", "autoDetectLanguage": true, "windowDisplayTime": 30, "userLang": "auto", // Kürzlich verwendete Sprachen "recentLanguages": ["de", "en", "ru", "es", "fr"], // Übersetzungsverlauf "lastTranslation": { "original": "Hello world", "translated": "Hallo Welt", "sourceLang": "en", "targetLang": "de", "timestamp": 1700000000000, "translator": "google" }, // Geöffnete Übersetzungsfenster-ID "translationWindowId": 12345 }

🔧 Erweiterungsarchitektur

Komponentenstruktur

Datenfluss

  1. Benutzer wählt Text aus → Kontextmenü
  2. Background-Skript erhält Text → erkennt Sprache
  3. Anfrage an Google Translate API → erhält Übersetzung
  4. Speichert Übersetzung → zeigt Benachrichtigung und Fenster
  5. Aktualisiert Popup-Oberfläche mit Übersetzungsverlauf

🛡️ Sicherheit

HTTPS-Verbindungen

Alle Google-API-Anfragen werden über sicheres HTTPS-Protokoll durchgeführt

Lokale Speicherung

Benutzereinstellungen und Daten werden lokal im Browser gespeichert

Minimale Berechtigungen

Erweiterung fordert nur notwendige Berechtigungen für den Betrieb an

Fehlerbehandlung

Umfassendes Fehlerbehandlungs- und Anzeigesystem für Benutzer