🌍 BuxarTranslate Lokalisierung

Datei: localization.html
Zweck: Lokalisierungsanleitung und Hinzufügen neuer Sprachen

🌐 Unterstützte Oberflächensprachen

🇺🇸 Englisch en

Standardsprache, vollständige Unterstützung

🇷🇺 Russisch ru

Vollständige Oberflächenlokalisierung

🇩🇪 Deutsch de

Deutsche Oberflächensprache

🇪🇸 Spanisch es

Spanische Oberflächensprache

🇫🇷 Französisch fr

Französische Oberflächensprache

🇮🇹 Italienisch it

Italienische Oberflächensprache

📁 Lokalisierungsstruktur

Lokalisierung ist nach WebExtensions-Standard im Ordner _locales organisiert:

_locales/ ├── en/ │ └── messages.json # Englische Übersetzungen ├── ru/ │ └── messages.json # Russische Übersetzungen ├── de/ │ └── messages.json # Deutsche Übersetzungen ├── es/ │ └── messages.json # Spanische Übersetzungen ├── it/ │ └── messages.json # Italienische Übersetzungen └── fr/ └── messages.json # Französische Übersetzungen

📝 Übersetzungsdateiformat

Jede messages.json-Datei enthält ein Objekt mit Übersetzungsschlüsseln:

{ "extensionName": { "message": "BuxarTranslate", "description": "Erweiterungsname" }, "extensionDescription": { "message": "Markierten Text in E-Mails mit einem Klick übersetzen", "description": "Erweiterungsbeschreibung" }, "translateTo": { "message": "Übersetzen nach $1", "description": "Kontextmenüeintrag" }, "selectTextRightClick": { "message": "Text markieren → Rechtsklick → Übersetzen", "description": "Popup-Anleitung" } }

🔧 Neue Sprache hinzufügen

1. Sprachordner erstellen

Erstellen Sie einen Ordner mit Sprachcode im Verzeichnis _locales/

mkdir _locales/ja # für Japanische Sprache
2. messages.json-Datei erstellen

Erstellen Sie eine Übersetzungsdatei im neuen Ordner

touch _locales/ja/messages.json
3. Übersetzungen hinzufügen

Kopieren Sie die Struktur aus der englischen Datei und übersetzen Sie alle Werte

{ "extensionName": { "message": "BuxarTranslate", "description": "Erweiterungsname" }, "translateTo": { "message": "Übersetzen nach $1", "description": "Kontextmenüeintrag" } }
4. Sprachscanning aktualisieren

Fügen Sie den Sprachcode zur Funktion scanAvailableLanguages() in popup.js hinzu

// In popup.js Datei const possibleLangs = ['en', 'ru', 'es', 'de', 'fr', 'it', 'ja', 'zh', 'ko']; // Fügen Sie Ihre Sprache zum possibleLangs-Array hinzu
5. Übersetzung testen

Installieren Sie die Erweiterung und testen Sie den Betrieb der neuen Sprache

🔄 Dynamisches Laden von Übersetzungen

System lädt Übersetzungen für die ausgewählte Sprache dynamisch:

// Laden von Übersetzungen für bestimmte Sprache async function loadTranslations(lang) { try { const response = await fetch(`_locales/${lang}/messages.json`); if (response.ok) { return await response.json(); } } catch (error) { console.error(`Error loading translations for ${lang}:`, error); } return null; } // Sprachmanager const LanguageManager = { async init() { const storage = await browser.storage.local.get('userLang'); const userLang = storage.userLang || 'auto'; // Oberflächensprache bestimmen if (userLang === 'auto') { const uiLang = browser.i18n.getUILanguage(); this.currentLang = uiLang.split('-')[0]; } else { this.currentLang = userLang; } // Übersetzungen laden this.translations = await loadTranslations(this.currentLang) || {}; } };

🎯 Wichtige Übersetzungselemente

Verpflichtende Übersetzungsschlüssel:

Platzhalter in Übersetzungen:

// Beispiel der Platzhalterverwendung "translateTo": { "message": "Übersetzen nach $1", "description": "Kontextmenüeintrag" } // Im Code: const menuTitle = browser.i18n.getMessage("translateTo", [targetLangName]);

🔍 Lokalisierungstest

Automatische Erkennung

Stellen Sie userLang: "auto" ein, um automatische Spracherkennung zu testen

Manuelle Auswahl

Verwenden Sie Dropdown in den Einstellungen zum Wechseln zwischen Sprachen

Alle Elemente prüfen

Stellen Sie sicher, dass alle Oberflächenelemente und Nachrichten übersetzt sind

Platzhalter testen

Prüfen Sie korrekte Ersetzung von $1, $2 usw. in Übersetzungen

⚠️ Häufige Probleme

Fehlende Schlüssel

Lösung: Stellen Sie sicher, dass alle Schlüssel aus der englischen Version in der Übersetzung vorhanden sind

Falsche Platzhalter

Lösung: Prüfen Sie die Übereinstimmung der Anzahl von $1, $2 in Übersetzung und Code

Dateicodierung

Lösung: Speichern Sie JSON-Dateien in UTF-8-Codierung

Syntaxfehler

Lösung: Prüfen Sie JSON auf Gültigkeit mit einem JSON-Validator