UNPKG

i18ntk

Version:

i18ntk (i18n Toolkit) - A comprehensive, enterprise-grade internationalization (i18n) management toolkit for JavaScript/TypeScript projects with advanced analysis, validation, and automation features

757 lines (756 loc) 117 kB
{ "meta": { "version": "1.5.3", "consolidated": "2025-08-06T14:36:37.488Z", "sourceFiles": 256 }, "common": { "welcome": "Willkommen", "hello": "Hallo", "goodbye": "Auf Wiedersehen", "yes": "Ja", "no": "Nein", "save": "Speichern", "cancel": "Abbrechen", "delete": "Löschen", "edit": "Bearbeiten", "loading": "Laden...", "offlineTitle": "Offline", "offlineMessage": "Sie sind offline", "tryReconnect": "Erneut verbinden", "logout": "Abmelden", "login": "Anmelden", "amount": "Betrag", "success": "Erfolg", "error": "Fehler", "warning": "Warnung", "info": "Info:", "debug": "Debug", "progress": "Fortschritt:", "remaining": "Verbleibend:", "total": "Gesamt:", "completed": "7. Erfolgreich abgeschlossen!", "missing": "Fehlend", "partial": "Teilweise", "sameAsSource": "Identisch mit Quelle:", "formatMismatch": "Format-Fehlanpassung:", "typeMismatch": "Typ-Fehlanpassung:", "structureMismatch": "Struktur-Fehlanpassung:", "invalidOption": "Ungültige Option", "separator": "==================================================", "initializationFailed": "❌ Initialisierung fehlgeschlagen: {error}", "stackTrace": "Stack-Trace: {stack}", "pressEnterToContinue": "Drücken Sie Enter zum Fortfahren...", "pressEnterToReturn": "Drücken Sie Enter zum Zurückkehren zum Hauptmenü...", "stepCompleted": "Schritt '{stepName}' abgeschlossen.", "stepFailed": "Schritt '{stepName}' fehlgeschlagen.", "runningStep": "Schritt ausführen: {stepName}", "command": "Befehl: {command}", "startingWorkflow": "Workflow wird gestartet...", "workflowCompleted": "Workflow abgeschlossen.", "checkReports": "Überprüfen Sie die Berichte für Details.", "errorExecutingCommand": "Fehler beim Ausführen des Befehls: {error}", "genericError": "❌ Fehler: {{error}}", "errorGeneratingStatusSummary": "Fehler beim Erstellen der Statuszusammenfassung: {error}", "errorRunningDebugTool": "Fehler beim Ausführen des Debug-Tools '{displayName}': {error}", "errorReadingDebugLogs": "Fehler beim Lesen der Debug-Protokolle: {error}", "errorAnalyzingLogFile": "Fehler beim Analysieren der Protokolldatei: {error}", "errorAnalyzingTranslationKeys": "Fehler beim Analysieren der Übersetzungsschlüssel: {error}", "errorAnalyzingTranslationCompleteness": "Fehler beim Analysieren der Übersetzungsvollständigkeit: {error}", "errorAnalyzingTranslationFormat": "Fehler beim Analysieren des Übersetzungsformats: {error}", "errorAnalyzingTranslationType": "Fehler beim Analysieren des Übersetzungstyps: {error}", "errorAnalyzingTranslationStructure": "Fehler beim Analysieren der Übersetzungsstruktur: {error}", "errorAnalyzingTranslationFormatMismatch": "Fehler beim Analysieren der Übersetzungsformatabweichung: {error}", "errorAnalyzingTranslationTypeMismatch": "Fehler beim Analysieren der Übersetzungstypabweichung: {error}", "errorAnalyzingTranslationStructureMismatch": "Fehler beim Analysieren der Übersetzungsstrukturabweichung: {error}", "errorAnalyzingTranslationSameAsSource": "Fehler beim Analysieren der Übersetzung, die mit der Quelle identisch ist: {error}", "title": "Status", "nextStep1": "1. Nutzungsanalyse prüfen:", "nextStep2": "2. Übersetzungen validieren:", "nextStep3": "3. Vollständigkeit analysieren:", "nextStep4": "4. Fehlende Übersetzungen vervollständigen:", "nextStep5": "5. Zusammenfassungsbericht erstellen:", "nextStep6": "6. Übersetzungen überprüfen und finalisieren:", "generating": "Zusammenfassungsbericht wird erstellt...", "review": "Übersetzungen werden überprüft...", "finalizing": "Übersetzungen werden finalisiert...", "finalized": "Erfolgreich finalisiert!", "errors": "Fehler:", "warnings": "Warnungen:", "completedKeys": "Abgeschlossene Schlüssel:", "missingKeys": "Fehlende Schlüssel:", "partialKeys": "Teilweise Schlüssel:" }, "analyze": { "help_message": "\nI18n Übersetzungs-Analysator\n\nVerwendung: node i18ntk-analyze.js [Optionen]\n\nOptionen:\n --source-dir <dir> Quellverzeichnis zum Scannen (Standard: ./src)\n --i18n-dir <dir> I18n-Verzeichnis (Standard: ./src/locales)\n --output-report Detaillierten Bericht erstellen\n --output-dir <dir> Ausgabeverzeichnis für Berichte (Standard: ./reports)\n --help Diese Hilfe anzeigen\n\nBeispiele:\n node i18ntk-analyze.js --output-report\n node i18ntk-analyze.js --source-dir=./app --i18n-dir=./locales\n node i18ntk-analyze.js --output-dir=./analysis --output-report\n", "source_directory": "📁 Quellverzeichnis: {sourceDir}", "i18n_directory": "🌐 I18n-Verzeichnis: {i18nDir}", "loading_translation_files": "📋 Übersetzungsdateien werden geladen...", "sourceDirectoryLabel": "📁 Quellverzeichnis: {{sourceDir}}", "sourceLanguageLabel": "🌍 Quellsprache: {{sourceLanguage}}", "strictModeLabel": "⚙️ Strenger Modus: {{mode}}\n", "found_translation_files_count": "✅ {count} Übersetzungsdateien gefunden", "analyzing_translations": "🔍 Übersetzungen werden analysiert...", "analysis_completed_successfully": "🎉 Analyse erfolgreich abgeschlossen!", "analysis_results": "📊 ANALYSENERGEBNISSE", "language_analysis_stats": " {language}: {translatedKeys}/{totalKeys} ({percentage}% übersetzt)", "sample_missing_keys": "\nBeispiel fehlender Schlüssel:", "missing_key": "- {key}", "and_more_missing": "...und {count} weitere.", "sample_unused_keys": "\nBeispiel ungenutzter Schlüssel:", "unused_key": "- {key}", "and_more_unused": "...und {count} weitere.", "recommendations": "\n📋 EMPFEHLUNGEN", "add_missing_translations": "💡 Fehlende Übersetzungen hinzufügen, um die Abdeckung zu verbessern.", "remove_unused_translations": "💡 Ungenutzte Übersetzungen entfernen, um Ihr Projekt sauber zu halten.", "next_steps": "\n📋 NÄCHSTE SCHRITTE", "review_analysis_results": "1. Überprüfen Sie die Analyseergebnisse in der Konsole oder im generierten Bericht.", "run_with_output_report": "2. Mit --output-report ausführen für detaillierten Bericht.", "add_or_remove_translations": "3. Fehlende Übersetzungen hinzufügen oder ungenutzte entfernen.", "rerun_analysis": "4. Analyse erneut ausführen, um Verbesserungen zu überprüfen.", "analysis_summary": "📊 ANALYSE-ZUSAMMENFASSUNG", "source_files_scanned": "Gescannte Quelldateien: {fileCount}", "translation_files_checked": "Überprüfte Übersetzungsdateien: {translationFileCount}", "total_keys": "Schlüssel gesamt: {totalKeys}", "translated_keys": "Übersetzte Schlüssel: {translatedKeys}", "missing_keys": "Fehlende Schlüssel: {missingKeys}", "unused_keys": "Ungenutzte Schlüssel: {unusedKeys}", "translation_coverage": "Übersetzungsabdeckung: {coverage}%", "analysis_passed_for_language": "✅ Analyse bestanden für {language}", "analysis_failed_for_language": "❌ Analyse fehlgeschlagen für {language} ({missingKeys} fehlend, {unusedKeys} ungenutzt)", "starting": "🔍 Übersetzungsanalyse wird gestartet...", "foundLanguages": "📋 {count} Sprachen zur Analyse gefunden: {languages}", "analyzing": "🔄 Analysiere {language}...", "reportTitle": "📊 ÜBERSETZUNGS-ANALYSEBERICHT", "generated": "Erstellt: {timestamp}", "status": "Status: {translated}/{total} Schlüssel ({percentage}% übersetzt)", "filesAnalyzed": "Analysierte Dateien: {analyzed}/{total}", "keysNeedingTranslation": "Zu übersetzende Schlüssel: {count}", "fileBreakdown": "📋 DATEI-ÜBERSICHT", "error": "Fehler", "completed": "✅ Analyse abgeschlossen für {language}", "progress": "📊 Gesamtfortschritt: {translated}/{total} Sprachen verarbeitet", "reportSaved": " Bericht gespeichert: {reportPath}", "summary": "📊 ANALYSE-ZUSAMMENFASSUNG", "finished": "✅ Analyse erfolgreich abgeschlossen!", "statusFileMissing": "❌ Übersetzungsdatei fehlt", "sourceKeys": "📊 Quellschlüssel: {count}", "translation": "📊 Übersetzung: {translated}/{total} ({percentage}%)", "structure": "🗂️ Struktur: {status}", "consistent": "Konsistent", "inconsistent": "Inkonsistent", "missingKeys": "Fehlende Schlüssel: {count}", "extraKeys": "Zusätzliche Schlüssel: {count}", "issues": "⚠️ Gefundene Probleme: {count}", "issueType": { "not_translated": "Nicht übersetzt: {count}", "empty_value": "Leere Werte: {count}", "partial_translation": "Teilweise Übersetzungen: {count}", "format_mismatch": "Format stimmt nicht überein: {count}", "type_mismatch": "Typ stimmt nicht überein: {count}", "structure_mismatch": "Struktur stimmt nicht überein: {count}", "same_as_source": "Identisch mit Quelle: {count}" }, "keysToTranslate": "📋 ZU ÜBERSETZENDE SCHLÜSSEL", "key": "Schlüssel", "english": "Englisch", "needsTranslation": "MÜSSEN ÜBERSETZT WERDEN", "andMoreKeys": "...und {count} weitere Schlüssel.", "noLanguages": "⚠️ Keine Zielsprachen gefunden.", "languageStats": "{language}: {percentage}% vollständig ({translated}/{total} Schlüssel)", "invalidReportFilePath": "Ungültiger Bericht-Dateipfad", "failedToWriteReportFile": "Bericht-Datei konnte nicht sicher geschrieben werden" }, "complete": { "configLoadedSuccessfully": "Konfiguration erfolgreich geladen", "configLoadingFailed": "Laden der Konfiguration fehlgeschlagen", "title": "🌍 I18N-ÜBERSETZUNGSVERVOLLSTÄNDIGUNG", "separator": "============================================================", "sourceDir": "📁 Quellverzeichnis: {sourceDir}", "sourceLanguage": "🌐 Ausgangssprache: {sourceLanguage}", "dryRunMode": "🧪 Testmodus - keine Änderungen werden vorgenommen", "languages": "🌍 Verfügbare Sprachen: {languages}", "addingMissingKeys": "➕ Fehlende Schlüssel zu Übersetzungsdateien hinzufügen...", "processing": "🔄 Verarbeite {language}...", "addedKeys": "✅ {count} fehlende Schlüssel hinzugefügt", "noChangesNeeded": "✅ Keine Änderungen für {language} erforderlich", "summaryTitle": "📊 VERVOLLSTÄNDIGUNGSZUSAMMENFASSUNG", "totalChanges": "📝 Gesamtänderungen: {totalChanges}", "languagesProcessed": "🌍 Verarbeitete Sprachen: {languagesProcessed}", "missingKeysAdded": "➕ Hinzugefügte fehlende Schlüssel: {missingKeysAdded}", "nextStepsTitle": "📋 NÄCHSTE SCHRITTE", "nextStep1": "1. Nutzungsanalyse ausführen:", "nextStep2": " node i18ntk-usage.js --output-report", "nextStep3": "2. Übersetzungen validieren:", "nextStep4": " node i18ntk-validate.js", "nextStep5": "3. Muster analysieren:", "nextStep6": " node i18ntk-analyze.js", "allKeysAvailable": "🎉 Alle Übersetzungsschlüssel sind jetzt verfügbar!", "runWithoutDryRun": "💡 Ohne --dry-run ausführen, um Änderungen anzuwenden", "deletingOldReport": "🗑️ Alter Bericht wird gelöscht...", "generatingFreshAnalysis": "📊 Frische Nutzungsanalyse wird erstellt...", "couldNotGenerate": "❌ Nutzungsanalyse konnte nicht erstellt werden", "reportNotFound": "📋 Nutzungsbericht nicht gefunden. Verwende gemeinsame Schlüssel...", "foundMissingKeys": "📋 {count} fehlende Schlüssel aus Nutzungsanalyse gefunden", "couldNotParse": "❌ Nutzungsbericht konnte nicht analysiert werden. Verwende Standard-Schlüssel...", "errorDuringCompletion": "❌ Fehler während der Vervollständigung: {error}", "fatalError": "❌ Schwerwiegender Fehler: {error}", "configurationValidationFailed": "Konfigurationsvalidierung fehlgeschlagen: erforderliche Felder fehlen" }, "sizing": { "separator": "================================================================================", "lineSeparator": "--------------------------------------------------------------------------------", "analysisStats": "{{stats}}", "sourceDirectoryLabel": "📁 Quellverzeichnis: {{sourceDir}}", "sourceLanguageLabel": "🌍 Quellsprache: {{sourceLanguage}}", "strictModeLabel": "⚙️ Strenger Modus: {{mode}}", "invalidSourceDirectoryError": "Ungültiger Quellverzeichnispfad: {{sourceDir}}", "sourceDirectoryNotFoundError": "Quellverzeichnis nicht gefunden: {{sourceDir}}", "invalidOutputDirectoryError": "Ungültiger Ausgabeverzeichnispfad: {{outputDir}}", "invalidReportFileError": "Ungültiger Berichtdateipfad", "problematic_keys": "Problematische Schlüssel:", "problematicKeysLabel": "Problematische Schlüssel: {problematicKeys}", "long_translations": "Lange Übersetzungen: {{longTranslations}}", "failedToSaveReportError": "Bericht konnte nicht sicher gespeichert werden", "invalidCsvFileError": "Ungültige CSV-Dateipfad", "failedToSaveCsvError": "CSV-Bericht konnte nicht sicher gespeichert werden", "fatalError": "❌ Größenanalyse fehlgeschlagen: {{error}}", "starting_i18n_sizing_analysis": "Starte i18n Größenanalyse...", "source_directory": "Quellverzeichnis: {{sourceDir}}", "found_languages": "Gefundene Sprachen: {{languages}}", "analyzing_file_sizes": "Analysiere Dateigrößen...", "analyzing_translation_content": "Analysiere Übersetzungsinhalt...", "generating_size_comparisons": "Generiere Größenvergleiche...", "no_languages_found_for_comparison": "Keine Sprachen für Vergleich gefunden", "sizing_analysis_results": "I18n Größenanalyse Ergebnisse", "file_sizes_title": "Dateigrößen", "file_sizes_header": "Sprache Größe(KB) Zeilen Zeichen", "file_size_row": "{{lang}} {{sizeKB}} {{lines}} {{characters}}", "language_statistics_title": "Sprachstatistiken", "language_stats_header": "Sprache Schlüssel Zeichen Ø Länge Max Länge Leer Lang", "language_stats_row": "{{lang}} {{totalKeys}} {{totalCharacters}} {{averageKeyLength}} {{maxKeyLength}} {{emptyKeys}} {{longKeys}}", "size_variations_title": "Größenvariationen", "size_variations_header": "Sprache Zeichen Diff % Diff Problematisch", "size_variation_row": "{{lang}} {{characterDifference}} {{percentageDifference}}% {{problematic}}", "problematic_yes": "Ja", "problematic_no": "Nein", "recommendations_title": "Empfehlungen", "recommendation_item": "Empfehlung: {{recommendation}}", "problematic_key_detail": " {{index}}. Schlüssel: '{{key}}' - Variationen: {{variations}}", "generating_detailed_report": "Generiere detaillierten Bericht...", "keysHaveSignificantSizeVariations": "Schlüssel haben signifikante Größenvariationen", "longTranslationsDetected": "${lang} hat ${data.longKeys} Übersetzungen länger als 100 Zeichen - in Betracht ziehen, sie aufzuteilen", "report_saved_to": "Bericht gespeichert in: {{reportPath}}", "considerReviewingTranslations": "Überprüfung der ${lang} Übersetzungen in Betracht ziehen - sie sind ${data.percentageDifference}% länger als die Grundlage", "csv_report_saved_to": "CSV-Bericht gespeichert in: {{csvPath}}", "no_translation_files_found": "Keine Übersetzungsdateien gefunden", "analysis_completed": "Analyse abgeschlossen in {{duration}}ms", "analysis_failed": "Analyse fehlgeschlagen: {{errorMessage}}", "failed_to_parse_language_error": "Fehler beim Parsen der {{language}} Übersetzungen: {{errorMessage}}", "recommendations": { "keys_have_significant_size_variations": "Schlüssel haben signifikante Größenvariationen", "consider_reviewing_translations": "Überprüfung der {{lang}} Übersetzungen in Betracht ziehen - sie sind {{percentageDifference}}% {{comparison}} als die Grundlage", "long_translations_detected": "{{lang}} hat {{longKeys}} Übersetzungen länger als {{threshold}} Zeichen - in Betracht ziehen, sie aufzuteilen" }, "hardcodedTexts": { "keysHaveSignificantSizeVariations": "Schlüssel haben signifikante Größenvariationen", "considerReviewingTranslations": "Überprüfung der {{lang}} Übersetzungen in Betracht ziehen - sie sind {{percentageDifference}}% {{comparison}} als die Grundlage", "longTranslationsDetected": "{{lang}} hat {{longKeys}} Übersetzungen länger als {{threshold}} Zeichen - in Betracht ziehen, sie aufzuteilen" } }, "usage": { "help_message": "\nI18n-Nutzungsanalysator\n\nVerwendung: node i18ntk-usage.js [Optionen]\n\nOptionen:\n --source-dir <dir> Quellverzeichnis zum Scannen (Standard: ./src)\n --i18n-dir <dir> I18n-Verzeichnis (Standard: ./src/locales)\n --output-report Detaillierten Bericht erstellen\n --output-dir <dir> Ausgabeverzeichnis für Berichte (Standard: ./reports)\n --help Diese Hilfe anzeigen\n\nBeispiele:\n node i18ntk-usage.js --output-report\n node i18ntk-usage.js --source-dir=./app --i18n-dir=./locales\n node i18ntk-usage.js --output-dir=./analysis --output-report\n", "source_directory_thissourcedir": "📁 Quellverzeichnis: {sourceDir}", "translationCompletenessTitle": "🌍 Übersetzungsvollständigkeit:", "i18n_directory_thisi18ndir": "🌐 I18n-Verzeichnis: {i18nDir}", "failed_to_parse_filename_error": "⚠️ Fehler beim Parsen von {fileName}: {errorMessage}", "analyzing_source_files": "🔍 Quelldateien werden analysiert...", "found_files_in_source": "📂 {numFiles} Dateien im Quellverzeichnis gefunden", "found_thisusedkeyssize_unique_": "🎯 {usedKeysSize} eindeutige verwendete Schlüssel gefunden", "total_key_usages_totalkeysfoun": "📊 Gesamtschlüsselverwendungen: {totalKeysFound}", "loading_available_translation_": "📋 Verfügbare Übersetzungsschlüssel werden geladen...", "found_thisavailablekeyssize_av": "✅ {availableKeysSize} verfügbare Schlüssel gefunden", "foundTranslationFiles": "✅ {count} Übersetzungsdateien gefunden", "pressEnterToReturnToMenu": "📝 Drücken Sie Enter, um zum Hauptmenü zurückzugehen...", "notTranslatedKeysTotal": "⚠️ Nicht übersetzte Schlüssel: {total}", "noSourceFilesFound": "⚠️ Keine Quelldateien im Quellverzeichnis gefunden.", "reviewNotTranslatedKeys": "💡 Nicht übersetzte Schlüssel überprüfen", "analysisCompletedSuccessfully": "🎉 Analyse erfolgreich abgeschlossen!", "detectedSourceDirectory": "Erkanntes Quellverzeichnis: {{sourceDir}}", "detectedI18nDirectory": "Erkanntes I18n-Verzeichnis: {{i18nDir}}", "fileInfo": " 📄 {namespace}: {keys} Schlüssel", "failedToAnalyzeUsage": "❌ Nutzungsanalyse fehlgeschlagen: {error}", "failedToAnalyzeFile": "❌ Dateianalysem fehlgeschlagen: {error}", "analyzerInitialized": "Analysator initialisiert", "analyzerInitFailed": "Analysator-Initialisierung fehlgeschlagen: {error}", "argsParsed": "Argumente geparst", "argsParseFailed": "Argument-Parsing fehlgeschlagen: {error}", "translationDiscoveryError": "Übersetzungserkennung fehlgeschlagen: {error}", "fileTraversalError": "Dateidurchlauf fehlgeschlagen: {error}", "usageAnalysisFailed": "Nutzungsanalyse fehlgeschlagen: {error}", "translationFileParseError": "Übersetzungsdatei-Parse-Fehler: {error}", "translationKeysLoadError": "Übersetzungsschlüssel-Ladefehler: {error}", "languageCompletenessStats": "{language}: {translated}/{total} ({completeness}% übersetzt)", "missingKeysCount": "Fehlende Schlüssel: {count}", "analyzingTranslationCompleteness": "Analysiere Übersetzungsvollständigkeit...", "unusedKeysCount": "Ungenutzte Schlüssel: {count}", "usedKeysCount": "Verwendete Schlüssel: {count}", "availableKeysCount": "Verfügbare Schlüssel: {count}", "analysisResults": "Analyseergebnisse:", "checkUsage": { "title": "🔍 I18N-NUTZUNGSANALYSE", "message": "Analyse der i18n-Schlüsselverwendung im gesamten Projekt.", "help_message": "\nI18n-Nutzungsanalysator\n\nVerwendung: node i18ntk-usage.js [Optionen]\n\nOptionen:\n --source-dir <dir> Quellverzeichnis zum Scannen (Standard: ./src)\n --i18n-dir <dir> I18n-Verzeichnis (Standard: ./src/locales)\n --output-report Detaillierten Bericht erstellen\n --output-dir <dir> Ausgabeverzeichnis für Berichte (Standard: ./reports)\n --help Diese Hilfe anzeigen\n\nBeispiele:\n node i18ntk-usage.js --output-report\n node i18ntk-usage.js --source-dir=./app --i18n-dir=./locales\n node i18ntk-usage.js --output-dir=./analysis --output-report\n", "source_directory_thissourcedir": "📁 Quellverzeichnis: {sourceDir}", "i18n_directory_thisi18ndir": "🌐 I18n-Verzeichnis: {i18nDir}", "loading_available_translation_": "📋 Verfügbare Übersetzungsschlüssel werden geladen...", "found_thisavailablekeyssize_av": "✅ {availableKeysSize} verfügbare Schlüssel gefunden", "analyzing_source_files": "🔍 Quelldateien werden analysiert...", "found_files_in_source": "📂 {numFiles} Dateien im Quellverzeichnis gefunden", "found_thisusedkeyssize_unique_": "🎯 {usedKeysSize} eindeutige verwendete Schlüssel gefunden", "total_key_usages_totalkeysfoun": "📊 Gesamtschlüsselverwendungen: {totalKeysFound}", "translation_completeness_title": "📊 ÜBERSETZUNGSVOLLSTÄNDIGKEIT", "language_completeness_stats": " {language}: {translated}/{total} ({completeness}% übersetzt)", "n_sample_unused_keys": "\nBeispiel für ungenutzte Schlüssel:", "key": "- {key}", "and_unusedkeyslength_5_more": "...und {count} weitere.", "n_recommendations": "\n📋 EMPFEHLUNGEN", "consider_removing_unused_trans": "💡 Erwägen Sie das Entfernen ungenutzter Übersetzungen, um Ihr Projekt sauber zu halten.", "n_next_steps": "\n📋 NÄCHSTE SCHRITTE", "1_review_the_analysis_results": "1. Analysenergebnisse in der Konsole oder im generierten Bericht überprüfen.", "2_run_with_outputreport_for_de": "2. Mit --output-report für detaillierten Bericht ausführen.", "3_remove_unused_keys_or_add_mi": "3. Ungenutzte Schlüssel entfernen oder fehlende Schlüssel zum Quellcode hinzufügen.", "4_rerun_analysis_to_verify_imp": "4. Analyse erneut ausführen, um Verbesserungen zu überprüfen.", "usage_analysis_results": "📊 NUTZUNGSANALYSERGEBNISSE", "source_files_scanned_thisfileu": "Gescannte Quelldateien: {fileUsageSize}", "available_translation_keys_thi": "Verfügbare Übersetzungsschlüssel: {availableKeysSize}", "used_translation_keys_thisused": "Verwendete Übersetzungsschlüssel: {usedKeysSize}", "dynamic_keys_detected_dynamick": "Dynamische Schlüssel erkannt: {dynamicKeysLength}", "unused_keys_unusedkeyslength": "Ungenutzte Schlüssel: {unusedKeysLength}", "missing_keys_missingkeyslength": "Fehlende Schlüssel: {missingKeysLength}", "noSourceFilesFound": "Keine Quelldateien gefunden, die analysiert werden sollen.", "processedFiles": "Verarbeitet {processedFiles} von {totalFiles} Dateien.", "i18nDirectoryNotFound": "I18n-Verzeichnis nicht gefunden: {i18nDir}", "noTranslationLanguagesFound": "Keine Übersetzungssprachen gefunden.", "failedToAnalyzeFile": "Analyse der Datei {filePath} fehlgeschlagen: {error}", "failedToAnalyzeLanguage": "Analyse der Sprache {language} fehlgeschlagen: {error}", "translationCompletenessAnalysisFailed": "Analyse der Übersetzungsvollständigkeit fehlgeschlagen: {error}", "n": "" }, "complete": { "configLoadedSuccessfully": "Konfiguration erfolgreich geladen", "configLoadingFailed": "Konfiguration konnte nicht geladen werden", "title": "🌍 I18NÜBERSetzungsvollständigkeit", "separator": "============================================================", "sourceDir": "📁 Quellverzeichnis: {sourceDir}", "sourceLanguage": "🌐 Quellsprache: {sourceLanguage}", "dryRunMode": "🧪 Testmodus - es werden keine Änderungen vorgenommen", "languages": "🌍 Verfügbare Sprachen: {languages}", "addingMissingKeys": "➕ Fehlende Schlüssel werden zu Übersetzungsdateien hinzugefügt...", "processing": "🔄 Verarbeite {language}...", "addedKeys": "✅ {count} fehlende Schlüssel hinzugefügt", "noChangesNeeded": "✅ Keine Änderungen für {language} erforderlich", "summaryTitle": "📊 ABSCHLUSSZUSAMMENFASSUNG", "totalChanges": "📝 Gesamtänderungen: {totalChanges}", "languagesProcessed": "🌍 Verarbeitete Sprachen: {languagesProcessed}", "missingKeysAdded": "➕ Fehlende Schlüssel hinzugefügt: {missingKeysAdded}", "nextStepsTitle": "📋 NÄCHSTE SCHRITTE", "nextStep1": "1. Nutzungsanalyse ausführen:", "nextStep2": " node i18ntk-usage.js --output-report", "nextStep3": "2. Übersetzungen validieren:", "nextStep4": " node i18ntk-validate.js", "nextStep5": "3. Muster analysieren:", "nextStep6": " node i18ntk-analyze.js", "allKeysAvailable": "🎉 Alle Übersetzungsschlüssel sind jetzt verfügbar!", "runWithoutDryRun": "💡 Ohne --dry-run ausführen, um Änderungen anzuwenden", "deletingOldReport": "🗑️ Alter Bericht wird gelöscht...", "generatingFreshAnalysis": "📊 Neue Nutzungsanalyse wird erstellt...", "couldNotGenerate": "❌ Nutzungsanalyse konnte nicht erstellt werden", "reportNotFound": "📋 Nutzungsbericht nicht gefunden. Verwende gemeinsame Schlüssel...", "foundMissingKeys": "📋 {count} fehlende Schlüssel aus Nutzungsanalyse gefunden", "couldNotParse": "❌ Nutzungsbericht konnte nicht geparst werden. Verwende gemeinsame Schlüssel..." } }, "validate": { "help_message": "\nI18n-Übersetzungs-Validator\n\nVerwendung: node i18ntk-validate.js [Optionen]\n\nOptionen:\n --source-dir <dir> Quellverzeichnis zum Scannen (Standard: ./src)\n --i18n-dir <dir> I18n-Verzeichnis (Standard: ./src/locales)\n --output-report Detaillierten Bericht erzeugen\n --output-dir <dir> Ausgabeordner für Berichte (Standard: ./reports)\n --help Diese Hilfe anzeigen\n\nBeispiele:\n node i18ntk-validate.js --output-report\n node i18ntk-validate.js --source-dir=./app --i18n-dir=./locales\n node i18ntk-validate.js --output-dir=./analysis --output-report\n", "title": "🔍 I18n-Übersetzungs-Validator", "message": "Validierungsprozess wird gestartet...", "sourceDirectory": "📁 Quellverzeichnis: {dir}", "sourceLanguage": "🌍 Quellsprache: {sourceLanguage}", "strictMode": "⚙️ Strikter Modus: {mode}", "noTargetLanguages": "⚠️ Keine Zielsprache zum Validieren gefunden", "validatingLanguages": "🌍 Validiere Sprachen: {langs}", "validatingLanguage": "🔍 Validiere Sprache: {lang}", "filesCount": "📄 Dateien: {count}", "keysCount": "🔑 Schlüssel: {count}", "missingFilesCount": "📁 Fehlende Dateien: {count}", "syntaxErrorsCount": "❌ Syntaxfehler: {count}", "translationPercentage": "🎯 Übersetzung: {percentage}% ({translated}/{total} Schlüssel)", "validationSummary": "📊 VALIDIERUNGSZUSAMMENFASSUNG", "validation_failed": "❌ Validierung fehlgeschlagen: {error}", "totalErrors": "❌ Gesamtfehler: {count}", "totalWarnings": "⚠️ Gesamtwarnungen: {count}", "errorsSection": "❌ FEHLER", "warningsSection": "⚠️ WARNUNGEN", "recommendationsSection": "💡 EMPFEHLUNGEN", "fixErrorsFirst": "1. Behebe zuerst alle Fehler", "resolveMissingFilesAndSyntaxErrors": "1. Fehlende Dateien und Syntaxfehler beheben", "fixStructuralInconsistencies": "2. Strukturelle Inkonsistenzen beheben", "completeMissingTranslations": "3. Fehlende Übersetzungen vervollständigen", "rerunValidation": "4. Validierung erneut ausführen, um Korrekturen zu prüfen", "addressWarnings": "Warnungen bearbeiten, um Qualität zu verbessern", "reviewWarnings": "Warnungen überprüfen und gegebenenfalls beheben", "considerRunningWithStrict": "2. Erwäge, mit dem Flag --strict für strengere Validierung auszuführen", "allValidationsPassed": "🎉 Alle Validierungen erfolgreich bestanden!", "considerRunningUsageAnalysis": "Erwäge eine Nutzungsanalyse: node i18ntk-usage.js", "deletedOldReport": "🗑️ Alten Validierungsbericht gelöscht", "sourceDir": "📁 Quellverzeichnis: {sourceDir}", "i18nDir": "🌐 I18n-Verzeichnis: {i18nDir}", "loadingTranslationFiles": "📋 Lade Übersetzungsdateien...", "foundTranslationFilesCount": "✅ {count} Übersetzungsdateien gefunden", "analyzingTranslations": "🔍 Analysiere Übersetzungen...", "validationCompletedSuccessfully": "🎉 Validierung erfolgreich abgeschlossen!", "validationErrorsFound": "⚠️ Validierungsfehler gefunden: {count}", "validationWarningsFound": "⚠️ Validierungswarnungen gefunden: {count}", "validationPassed": "✅ Validierung erfolgreich bestanden, keine Fehler", "validationFailed": "Validierung fehlgeschlagen: {error}", "startingValidationProcess": "🔍 Starte Validierungsprozess...", "validationProcessCompletedSuccessfully": "✅ Validierungsprozess erfolgreich abgeschlossen", "stackTrace": "Stack-Trace: {{stack}}", "authenticationFailed": "❌ Authentifizierung fehlgeschlagen. Zugriff verweigert.", "fatalValidationError": "❌ Schwerwiegender Validierungsfehler: {{error}}", "configAccess": "Greife auf Konfiguration zur Validierung zu", "configValidated": "Konfiguration erfolgreich validiert", "configError": "Konfigurationsfehler: {error}", "validatorInit": "Initialisiere I18n-Validator", "validatorInitialized": "I18n-Validator erfolgreich initialisiert", "validatorInitError": "Initialisierungsfehler des Validators: {error}", "argsParsing": "Lese Kommandozeilenargumente", "argsParsed": "Kommandozeilenargumente erfolgreich geparst", "argsParseError": "Fehler beim Parsen der Argumente: {error}", "languagesScan": "Suche verfügbare Sprachen", "languagesFound": "Gefundene Sprachen: {count}", "languagesScanError": "Fehler bei der Sprachsuche: {error}", "filesScan": "{count} Dateien in {language} gefunden", "filesScanError": "Fehler beim Dateiscannen: {error}", "jsonValidated": "JSON-Syntax validiert: {filePath}", "jsonValidationError": "JSON-Validierungsfehler: {error}", "languageValidation": "Validiere Sprache: {language}", "languageValidationError": "Fehler bei der Sprachvalidierung: {error}", "fileDeleted": "Datei gelöscht", "runStarted": "Starte Validierungslauf", "runCompleted": "Validierungslauf erfolgreich abgeschlossen", "runError": "Validierungslauf fehlgeschlagen: {error}", "scriptExecution": "Skriptausführung", "validationCompleted": "Validierung abgeschlossen", "validationError": "Validierungsfehler: {error}", "separator": "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━", "languageHeader": "🌐 Sprache: {language}", "validationResults": "📊 Validierungsergebnisse", "noErrors": "✅ Keine Fehler gefunden", "noWarnings": "✅ Keine Warnungen gefunden", "summaryHeader": "📋 GESAMTÜBERSICHT", "progressIndicator": "⏳ Bearbeitung...", "completedIndicator": "✅ Abgeschlossen", "errorIndicator": "❌ Fehler", "warningIndicator": "⚠️ Warnung", "infoIndicator": "ℹ️ Info", "sourceDirNotConfigured": "Quellverzeichnis nicht konfiguriert", "sourceLanguageNotConfigured": "Quellsprache nicht konfiguriert", "translationFunctionNotInitialized": "Übersetzungsfunktion nicht richtig initialisiert", "sourceLanguageDirectoryNotFound": "Quellsprache-Verzeichnis nicht gefunden", "specifiedLanguageNotFound": "Angegebene Sprache nicht gefunden", "noJsonFilesFound": "Keine JSON-Dateien im Quellverzeichnis gefunden: {sourceDir}", "i18nDirectoryNotFound": "I18n-Verzeichnis nicht gefunden: {i18nDir}", "invalidDirectoryPaths": "Ungültige Verzeichnispfade erkannt", "invalidSampleFilePath": "Ungültiger Beispiel-Dateipfad", "failedToCreateSampleTranslationFile": "Erstellen der Beispieldatei fehlgeschlagen", "invalidFilePathDetected": "Ungültiger Dateipfad erkannt", "failedToWriteFile": "Schreiben der Datei fehlgeschlagen: {filePath}" }, "adminCli": { "setupPinProtectionTitle": "\n🔐 Einrichtung des Admin-PIN-Schutzes", "setupPinProtectionDescription": "Dies erfordert einen 4-6-stelligen PIN für administrative Operationen.", "enablePinProtectionPrompt": "Möchten Sie den Admin-PIN-Schutz aktivieren?", "setupCancelled": "Einrichtung des Admin-PIN-Schutzes abgebrochen.", "enterPinPrompt": "Geben Sie einen 4-6-stelligen PIN ein: ", "pinFormatError": "❌ PIN muss 4-6 Ziffern haben. Bitte erneut versuchen.", "confirmPinPrompt": "PIN bestätigen: ", "pinMismatchError": "❌ PINs stimmen nicht überein. Bitte erneut versuchen.", "pinProtectionEnabledSuccess": "✅ Admin-PIN-Schutz erfolgreich aktiviert!", "pinRecoveryWarning": "⚠️ Merken Sie sich Ihren PIN – er kann nicht wiederhergestellt werden, wenn er verloren geht.", "setupPinProtectionFailed": "❌ Einrichtung des Admin-PIN-Schutzes fehlgeschlagen.", "errorSettingUpPin": "❌ Fehler bei der Einrichtung des Admin-PINs: {message}", "authRequiredForOperation": "\n🔐 Admin-Authentifizierung erforderlich für: {operation}", "invalidPinFormat": "❌ Ungültiges PIN-Format. PIN muss 4-6 Ziffern haben.", "authenticationSuccess": "✅ Authentifizierung erfolgreich!", "invalidPinAttemptsRemaining": "❌ Ungültiger PIN. {remaining} Versuche verbleiben.", "authenticationFailedAccessDenied": "❌ Authentifizierung fehlgeschlagen. Zugriff verweigert.", "authenticationError": "❌ Authentifizierungsfehler: {message}", "pinProtectionNotEnabled": "Admin-PIN-Schutz ist derzeit nicht aktiviert.", "disablingPinProtectionTitle": "\n🔓 Deaktivierung des Admin-PIN-Schutzes", "confirmDisablePinProtection": "Sind Sie sicher, dass Sie den Admin-PIN-Schutz deaktivieren möchten?", "operationCancelled": "Vorgang abgebrochen.", "pinProtectionDisabledSuccess": "✅ Admin-PIN-Schutz deaktiviert.", "disablePinProtectionFailed": "❌ Deaktivierung des Admin-PIN-Schutzes fehlgeschlagen.", "errorDisablingPinProtection": "❌ Fehler bei der Deaktivierung des Admin-Schutzes: {message}", "adminProtectionStatusTitle": "\n🔐 Status des Admin-Schutzes", "statusEnabled": "Status: ✅ AKTIVIERT", "protectionDetails": "Schutz: 4-6-stelliger PIN für Admin-Operationen erforderlich", "lockoutDetails": "Sperre: 3 fehlgeschlagene Versuche = 15 Minuten Sperrung", "statusDisabled": "Status: ❌ DEAKTIVIERT", "noAuthRequired": "Schutz: Keine Authentifizierung erforderlich", "unprotectedRisk": "Risiko: Administrative Operationen sind ungeschützt", "errorCheckingAdminStatus": "❌ Fehler beim Überprüfen des Admin-Status: {message}", "authRequired": "🔐 Admin-Authentifizierung erforderlich.", "invalidPin": "❌ Ungültiger PIN.", "authSuccess": "✅ Authentifizierung erfolgreich!", "adminPinSetupCli": "admin_pin_setup_cli", "adminAuthFailedCli": "admin_auth_failed_cli", "adminAuthDisabledCli": "admin_auth_disabled_cli", "protectedAccess": "Geschützter Zugriff: Admin-Authentifizierung für sensible Operationen erforderlich.", "enterPin": "Geben Sie den Admin-PIN ein: ", "accessGranted": "Zugriff gewährt." }, "adminPin": { "setup_title": "🔐 Admin-PIN-Einrichtung", "setup_separator": "============================================================", "setup_description": "Erstellen Sie einen 4–6-stelligen PIN für den Admin-Zugriff auf sensible Einstellungen.", "required_for_title": "Dieser PIN wird benötigt für:", "required_for_1": " • Sicherheits­einstellungen ändern", "required_for_2": " • Erweiterte Konfigurationen ändern", "required_for_3": " • Zugriff auf Debug-Tools", "required_for_4": " • Einstellungen zurücksetzen", "setup_note": "💡 Hinweis: Beim Tippen sehen Sie Sternchen (*) – dies sind nur Maskierungszeichen.", "setup_digits_only": " Nur Ziffern 0–9 sind als PIN erlaubt.", "invalid_pin_length": "❌ Ungültiger PIN. Muss 4–6 Ziffern lang sein (nur 0–9).", "invalid_pin_example": " Beispiel: 1234 oder 567890", "pins_do_not_match": "❌ PINs stimmen nicht überein.", "setup_success": "✅ Admin-PIN wurde erfolgreich eingerichtet!", "setup_warning": "⚠️ Bewahren Sie diesen PIN sicher auf. Er kann nicht wiederhergestellt werden.", "setup_error": "❌ Fehler beim Einrichten des PIN:", "session_expired": "\n⏰ Admin-Sitzung ist wegen Inaktivität abgelaufen.", "no_pin_set_setting_up": "⚠️ Kein Admin-PIN gesetzt. Einrichtung wird gestartet...", "no_pin_configured_access_denied": "⚠️ Kein Admin-PIN konfiguriert. Zugriff verweigert.", "use_admin_settings_to_set_pin": "💡 Verwenden Sie die Admin-Einstellungen, um einen PIN einzurichten.", "locked_out": "🔒 Admin-Zugriff gesperrt wegen zu vieler Fehlversuche.", "wait_before_retry": "Bitte warten Sie 5 Minuten, bevor Sie es erneut versuchen.", "access_granted": "✅ Admin-Zugriff gewährt.", "incorrect_pin": "❌ Falscher PIN. {attempts} Versuche verbleiben.", "verify_pin_error": "❌ Fehler beim Überprüfen des PIN:", "already_configured": "✅ Admin-PIN ist bereits eingerichtet.", "optional_setup_title": "\n🔐 Admin-PIN-Einrichtung (Optional)", "optional_setup_description": "Admin-PIN-Schutz bietet Sicherheit für sensible Vorgänge wie:", "setup_prompt": "Möchten Sie einen Admin-PIN einrichten? (j/N): ", "skipping_setup": "⏭️ Admin-PIN-Einrichtung übersprungen. Sie können es später in den Einstellungen machen.", "setup_prompt_error": "❌ Fehler beim PIN-Einrichtungsdialog:", "protectedAccess": "Geschützter Zugriff: Admin-Authentifizierung für sensible Vorgänge erforderlich.", "enterPin": "Admin-PIN eingeben: ", "accessGranted": "Zugriff gewährt.", "invalidPin": "❌ Ungültiger PIN. Bitte erneut versuchen.", "weak_pin_warning": "⚠️ WARNUNG: Dieser PIN scheint schwach oder weit verbreitet zu sein.", "weak_pin_suggestion": "💡 Verwenden Sie besser einen stärkeren PIN mit verschiedenen Ziffern.", "use_anyway_prompt": "Geben Sie „yes“ ein, um ihn trotzdem zu verwenden, oder drücken Sie Enter für einen anderen PIN: ", "enter_new_pin": "Neuen Admin-PIN eingeben (4–6 Ziffern): ", "confirm_pin": "Admin-PIN bestätigen: ", "not_set": "Nicht gesetzt", "pin_display_mask": "####" }, "autorun": { "missingRequiredFile": "Erforderliche Datei fehlt: {file}", "runInitializationFirst": "Bitte führen Sie zuerst die Initialisierung aus.", "initializationCheckPassed": "Initialisierungsprüfung erfolgreich.", "runningStep": "Führe Schritt aus: {stepName}", "commandLabel": "Befehl: {command}", "stepRunning": "Schritt '{stepName}' wird ausgeführt...", "stepCompletedWithTime": "Schritt '{stepName}' abgeschlossen in {duration}ms.", "stepCompleted": "Schritt '{stepName}' abgeschlossen.", "stepFailed": "Schritt '{stepName}' fehlgeschlagen.", "errorLabel": "Fehler: {error}", "stepFailedWithError": "Schritt '{stepName}' fehlgeschlagen mit Fehler: {error}", "requiredStepFailed": "Erforderlicher Schritt fehlgeschlagen. Workflow wird gestoppt.", "optionalStepFailed": "Optionaler Schritt fehlgeschlagen. Workflow wird fortgesetzt.", "startingAutoRunWorkflow": "Starte Auto-Run-Workflow...", "workflowIncludesSteps": "Workflow umfasst {count} Schritte:", "stepRequired": "(Erforderlich)", "stepOptional": "(Optional)", "startingExecution": "Starte Ausführung...", "workflowStopped": "Workflow gestoppt.", "workflowCompleted": "Workflow abgeschlossen.", "pressEnterToContinue": "Drücken Sie Enter, um fortzufahren...", "runningSelectedSteps": "Ausgewählte Schritte werden ausgeführt...", "invalidStepNumber": "Ungültige Schritt-Nummer: {stepNum}", "executionReport": "Ausführungsbericht:", "successfulSteps": "Erfolgreiche Schritte: {count}", "failedSteps": "Fehlgeschlagene Schritte: {count}", "requiredFailedSteps": "Fehlgeschlagene erforderliche Schritte: {count}", "stepDetails": "Schrittdetails:", "errorDetails": "Fehler: {error}", "reportSavedTo": "Bericht gespeichert unter: {path}", "overallStatusSuccess": "ERFOLGREICH", "overallStatusFailed": "FEHLGESCHLAGEN", "overallStatus": "Gesamtstatus: {status}", "customSettingsConfiguration": "Benutzerdefinierte Einstellungen konfigurieren", "pressEnterForDefaults": "Drücken Sie Enter, um Standardeinstellungen zu verwenden.", "sourceDirPrompt": "Quellverzeichnis eingeben (Standard: {default}): ", "sourceLangPrompt": "Quellsprache eingeben (Standard: {default}): ", "targetLangsPrompt": "Zielsprachen eingeben (kommagetrennt, Standard: {default}): ", "translationMarkerPrompt": "Übersetzungsmarker eingeben (Standard: {default}): ", "outputDirPrompt": "Ausgabeverzeichnis für Berichte eingeben (Standard: {default}): ", "settingsUpdatedSuccessfully": "Einstellungen erfolgreich aktualisiert!", "errorConfiguringSettings": "Fehler bei der Konfiguration der Einstellungen: {error}", "autoRunScriptTitle": "Auto-Run-Skript", "usageTitle": "Verwendung:", "runAllSteps": "node i18ntk-autorun.js --all - Alle Schritte aus i18ntk-config.json ausführen", "configureSettingsFirst": "node i18ntk-autorun.js --config - Einstellungen für Workflow konfigurieren", "runSpecificSteps": "node i18ntk-autorun.js --steps <step_numbers> - Bestimmte Schritte ausführen (z. B. --steps 1,3,5)", "showHelp": "node i18ntk-autorun.js --help - Diese Hilfe anzeigen", "availableSteps": "Verfügbare Schritte:", "examplesTitle": "Beispiele:", "configExample": "node i18ntk-autorun.js --config", "stepsExample1": "node i18ntk-autorun.js --steps 1,2,3", "stepsExample2": "node i18ntk-autorun.js --all", "configurationComplete": "Konfiguration abgeschlossen.", "runAutoRunCommand": "Jetzt können Sie den Auto-Run-Befehl ausführen.", "configurationFailed": "Konfiguration fehlgeschlagen: {error}", "noValidStepNumbers": "Keine gültigen Schritt-Nummern angegeben.", "autoRunFailed": "Auto-Run fehlgeschlagen: {error}", "stepInitializeProject": "Projekt initialisieren", "stepAnalyzeTranslations": "Übersetzungen analysieren", "stepValidateTranslations": "Übersetzungen validieren", "stepCheckUsage": "Verwendung prüfen", "stepCompleteTranslations": "Übersetzungen vervollständigen", "stepAnalyzeSizing": "Größenanalyse durchführen", "stepGenerateSummary": "Zusammenfassungsbericht wird erstellt...", "stepCompletedIcon": "✅", "stepCompletedWithIcon": "✅ Schritt '{stepName}' abgeschlossen.", "stepRunningWithNumber": "[{stepNumber}/{totalSteps}] Schritt '{stepName}' wird ausgeführt...", "stepFailedIcon": "❌", "translationLoadWarning": "Warnung: Konnte Übersetzungen für {lang} nicht laden", "configReadError": "Fehler beim Lesen von {file}", "separator": "==================================================" }, "debug": { "title": "🔧 Debug-Werkzeuge", "separator": "============================================================", "mainDebuggerSystemDiagnostics": "1. Systemdiagnose", "_consoleTranslationsCheck": "// 2. Konsolenübersetzungen prüfen", "_exportMissingKeys": "// 3. Fehlende Übersetzungsschlüssel exportieren", "_replaceHardcodedConsole": "// 4. Hartcodierte Konsolentexte ersetzen", "_consoleKeyChecker": "// 5. Konsolen-Schlüsselprüfer", "debugLogs": "2. Debug-Protokolle", "backToMainMenu": "0. Zurück zum Hauptmenü", "selectOption": "Wähle ein Debug-Werkzeug: ", "runningDebugTool": "Führe {displayName} aus...", "debugToolNotFound": "❌ Debug-Werkzeug nicht gefunden: {toolName}", "errorRunningDebugTool": "Fehler beim Ausführen des Debug-Werkzeugs '{displayName}': {error}", "recentDebugLogs": "📄 Letzte Debug-Protokolle", "noDebugLogsFound": "❌ Keine Debug-Protokolle gefunden.", "debugLogsDirectoryNotFound": "❌ Verzeichnis für Debug-Protokolle nicht gefunden.", "selectLogPrompt": "Wähle eine Protokolldatei (1–{count}): ", "invalidChoiceSelectRange": "Ungültige Auswahl. Bitte wähle aus dem verfügbaren Bereich.", "contentOf": "📄 Inhalt von {filename}:", "pressEnterToContinue": "Drücke Enter, um fortzufahren..." }, "detect_language_mismatches": { "tool_title": "🔍 Tool zur Erkennung von Sprachinkonsistenzen", "separator": "=====================================\n", "analyzing_file": "📄 Analysiere {language}.json...", "error_analyzing_file": "❌ Fehler beim Analysieren von {filename}: {errorMessage}", "results_title": "📊 ERGEBNISSE DER SPRACHINKONSISTENZ-ERKENNUNG", "results_separator": "========================================\n", "summary_title": "📋 ZUSAMMENFASSUNG:", "total_files_analyzed": " Gesamt analysierte Dateien: {totalFiles}", "files_with_mismatches": " Dateien mit Inkonsistenzen: {filesWithMismatches}", "total_mismatches_found": " Gesamt gefundene Inkonsistenzen: {totalMismatches}\n", "no_mismatches_found": "✅ Keine Sprachinkonsistenzen gefunden! Alle Übersetzungen scheinen korrekt zu sein.\n", "detailed_results_title": "🔍 DETAILLIERTE ERGEBNISSE:\n", "file_mismatch_header": "📄 {filename} ({language})", "mismatches_count": " {count} Inkonsistenz(en) gefunden:\n", "mismatch_details": " {index}. Schlüssel: {key}", "mismatch_value": " Wert: \"{value}\"", "mismatch_issue": " Problem: {description}", "recommendations_title": "💡 EMPFEHLUNGEN:\n", "recommendation_1": "1. Überprüfe und übersetze alle mit [TRANSLATE] markierten Einträge", "recommendation_2": "2. Ersetze Sprachpräfixe (z. B. [DE], [FR]) durch echte Übersetzungen", "recommendation_3": "3. Übersetze englische Texte in die jeweilige Zielsprache", "recommendation_4": "4. Verwende muttersprachliche Entsprechungen für benutzernahe Texte", "recommendation_5": "5. Starte das Tool nach Korrekturen erneut, um Fixes zu verifizieren\n", "detailed_report_saved": "📄 Detaillierter Bericht gespeichert unter: {reportPath}\n", "error_saving_report": "❌ Fehler beim Speichern des Berichts: {errorMessage}\n", "auto_fix_mode": "🔧 Auto-Fix-Modus {dryRun}", "auto_fix_separator": "=====================================\n", "fixed_file": "✅ {filename} wurde korrigiert", "auto_fix_summary_title": "\n📊 Auto-Fix Zusammenfassung:", "total_fixes_applied": " Gesamt durchgeführte Fixes: {count}", "preview_fixes_title": "\n🔍 Vorschau der Fixes:", "fix_details": " {file}: {key}\n Alt: \"{old}\"\n Neu: \"{new}\"\n", "more_fixes": " ... und {count} weitere Fixes\n", "run_with_apply_fixes": "💡 Mit --apply ausführen, um diese Fixes anzuwenden\n", "error_general": "❌ Fehler:", "mainDebuggerSystemDiagnostics": "Haupt-Debugger / Systemdiagnose", "exportMissingKeys": "Fehlende Schlüssel exportieren", "replaceHardcodedConsole": "Hartcodierte Konsole ersetzen", "consoleKeyChecker": "Konsolen-Schlüsselprüfer", "debugLogs": "Debug-Protokolle", "backToMainMenu": "Zurück zum Hauptmenü", "invalidChoiceSelectRange": "❌ Ungültige Auswahl. Bitte eine Nummer im angezeigten Bereich wählen.", "runningDebugTool": "Führe Debug-Tool aus: {displayName}", "debugToolNotFound": "Debug-Tool '{toolName}' nicht gefunden.", "recentDebugLogs": "Letzte Debug-Protokolle", "noDebugLogsFound": "Keine Debug-Protokolle gefunden.", "logEntry": "Protokolleintrag: {timestamp} – {message}", "debugLogsDirectoryNotFound": "Verzeichnis für Debug-Protokolle nicht gefunden." }, "help": { "title": "📊 I18N VERWALTUNGSHILFE\n\n", "usage": "Verwendung: node i18ntk-manage.js [Optionen]\n", "interactiveMode": "\n💡 Verwenden: node i18ntk-manage.js --command=<command> für direkte Ausführung\n", "showHelp": "\n📖 Verwenden: node i18ntk-manage.js --help für verfügbare Befehle\n", "availableCommands": "\n📖 Verfügbare Befehle:\n", "initProject": "🚀 Neue Sprachen initialisieren", "analyzeTranslations": "🔍 Übersetzungen analysieren", "validateTranslations": "✅ Übersetzungen validieren", "checkUsage": "📊 Schlüsselverwendung prüfen", "initCommand": " init - Neue Sprachen initialisieren", "analyzeCommand": " analyze - Übersetzungen analysieren", "validateCommand": " validate - Übersetzungen validieren", "usageCommand": " usage - Schlüsselverwendung prüfen", "sizingCommand": " sizing - Größenanalyse durchführen", "completeCommand": " complete - Übersetzungen vervollständigen (100%)", "summaryCommand": " summary - Projektstatus anzeigen", "debugCommand": " debug - Übersetzungsfehler debuggen", "menu": { "title": "\n🌐 I18N VERWALTUNGSMENÜ\n", "description": "Interaktives Menü zur Verwaltung der Internationalisierung\n", "exit": "\n🚪 Beenden" }, "commands": { "init": "\n init - Neue Sprachen initialisieren", "analyze": " analyze - Übersetzungen analysieren", "validate": " validate - Übersetzungen validieren", "usage": " usage - Schlüsselverwendung prüfen", "sizing": " sizing - Größenanalyse", "complete": " complete - Übersetzungen vervollständigen", "summary": " summary - Projektstatus anzeigen", "debug": " debug - Übersetzungsfehler debuggen" }, "options": { "sourceDir": "\n --source-dir <dir> Quellverzeichnis zur Analyse", "output": " --output <file> Ausgabedatei für den Bericht", "verbose": " --verbose, -v Ausführliche Informationen anzeigen", "keepReports": " --keep-reports Bestehende Berichte behalten", "deleteReports": " --delete-reports Bestehende Berichte löschen", "help": " --help, -h Diese Hilfe anzeigen" }, "examples": { "title": "\nBeispiele:\n", "example1": " node i18ntk-manage.js", "example2": " node i18ntk-manage.js --source-dir ./locales", "example3": " node i18ntk-manage.js --output summary-report.txt", "example4": " node i18ntk-manage.js --verbose", "example5": " node i18ntk-manage.js --source-dir ./locales --output report.json" }, "features": { "initProject": "🚀 Neue Sprachen initialisieren", "analyzeTranslations": "🔍 Übersetzungen analysieren",