i18ntk 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +401 -0
- package/LICENSE +21 -0
- package/README.md +507 -0
- package/dev/README.md +37 -0
- package/dev/debug/README.md +30 -0
- package/dev/debug/complete-console-translations.js +295 -0
- package/dev/debug/console-key-checker.js +408 -0
- package/dev/debug/console-translations.js +335 -0
- package/dev/debug/debugger.js +408 -0
- package/dev/debug/export-missing-keys.js +432 -0
- package/dev/debug/final-normalize.js +236 -0
- package/dev/debug/find-extra-keys.js +68 -0
- package/dev/debug/normalize-locales.js +153 -0
- package/dev/debug/refactor-locales.js +240 -0
- package/dev/debug/reorder-locales.js +85 -0
- package/dev/debug/replace-hardcoded-console.js +378 -0
- package/docs/INSTALLATION.md +449 -0
- package/docs/README.md +222 -0
- package/docs/TODO_ROADMAP.md +279 -0
- package/docs/api/API_REFERENCE.md +377 -0
- package/docs/api/COMPONENTS.md +492 -0
- package/docs/api/CONFIGURATION.md +651 -0
- package/docs/api/NPM_PUBLISHING_GUIDE.md +434 -0
- package/docs/debug/DEBUG_README.md +30 -0
- package/docs/debug/DEBUG_TOOLS.md +494 -0
- package/docs/development/AGENTS.md +351 -0
- package/docs/development/DEVELOPMENT_RULES.md +165 -0
- package/docs/development/DEV_README.md +37 -0
- package/docs/release-notes/RELEASE_NOTES_v1.0.0.md +173 -0
- package/docs/release-notes/RELEASE_NOTES_v1.6.0.md +141 -0
- package/docs/release-notes/RELEASE_NOTES_v1.6.1.md +185 -0
- package/docs/release-notes/RELEASE_NOTES_v1.6.3.md +199 -0
- package/docs/reports/ANALYSIS_README.md +17 -0
- package/docs/reports/CONSOLE_MISMATCH_BUG_REPORT_v1.5.0.md +181 -0
- package/docs/reports/SIZING_README.md +18 -0
- package/docs/reports/SUMMARY_README.md +18 -0
- package/docs/reports/TRANSLATION_BUG_REPORT_v1.5.0.md +129 -0
- package/docs/reports/USAGE_README.md +18 -0
- package/docs/reports/VALIDATION_README.md +18 -0
- package/locales/de/auth.json +3 -0
- package/locales/de/common.json +16 -0
- package/locales/de/pagination.json +6 -0
- package/locales/en/auth.json +3 -0
- package/locales/en/common.json +16 -0
- package/locales/en/pagination.json +6 -0
- package/locales/es/auth.json +3 -0
- package/locales/es/common.json +16 -0
- package/locales/es/pagination.json +6 -0
- package/locales/fr/auth.json +3 -0
- package/locales/fr/common.json +16 -0
- package/locales/fr/pagination.json +6 -0
- package/locales/ru/auth.json +3 -0
- package/locales/ru/common.json +16 -0
- package/locales/ru/pagination.json +6 -0
- package/main/i18ntk-analyze.js +625 -0
- package/main/i18ntk-autorun.js +461 -0
- package/main/i18ntk-complete.js +494 -0
- package/main/i18ntk-init.js +686 -0
- package/main/i18ntk-manage.js +848 -0
- package/main/i18ntk-sizing.js +557 -0
- package/main/i18ntk-summary.js +671 -0
- package/main/i18ntk-usage.js +1282 -0
- package/main/i18ntk-validate.js +762 -0
- package/main/ui-i18n.js +332 -0
- package/package.json +152 -0
- package/scripts/fix-missing-translation-keys.js +214 -0
- package/scripts/verify-package.js +168 -0
- package/ui-locales/de.json +637 -0
- package/ui-locales/en.json +688 -0
- package/ui-locales/es.json +637 -0
- package/ui-locales/fr.json +637 -0
- package/ui-locales/ja.json +637 -0
- package/ui-locales/ru.json +637 -0
- package/ui-locales/zh.json +637 -0
- package/utils/admin-auth.js +317 -0
- package/utils/admin-cli.js +353 -0
- package/utils/admin-pin.js +409 -0
- package/utils/detect-language-mismatches.js +454 -0
- package/utils/i18n-helper.js +128 -0
- package/utils/maintain-language-purity.js +433 -0
- package/utils/native-translations.js +478 -0
- package/utils/security.js +384 -0
- package/utils/test-complete-system.js +356 -0
- package/utils/test-console-i18n.js +402 -0
- package/utils/translate-mismatches.js +571 -0
- package/utils/validate-language-purity.js +531 -0
|
@@ -0,0 +1,637 @@
|
|
|
1
|
+
{
|
|
2
|
+
"language": {
|
|
3
|
+
"title": "🌍 Sprachwahl",
|
|
4
|
+
"separator": "============================================================",
|
|
5
|
+
"current": "Aktuelle Sprache: {language}",
|
|
6
|
+
"available": "Verfügbare Sprachen:",
|
|
7
|
+
"prompt": "Sprache auswählen (0 zum Abbrechen): ",
|
|
8
|
+
"cancelled": "Sprachauswahl abgebrochen.",
|
|
9
|
+
"changed": "Sprache geändert zu: {language}",
|
|
10
|
+
"invalid": "Ungültige Auswahl. Bitte erneut versuchen.",
|
|
11
|
+
"changeTitle": "🌍 UI-Sprache ändern",
|
|
12
|
+
"invalidSelection": "❌ Ungültige Auswahl. Bitte erneut versuchen."
|
|
13
|
+
},
|
|
14
|
+
"menu": {
|
|
15
|
+
"title": "🌐 I18N VERWALTUNGSMENÜ",
|
|
16
|
+
"separator": "============================================================",
|
|
17
|
+
"options": {
|
|
18
|
+
"init": "🚀 Neue Sprachen initialisieren",
|
|
19
|
+
"analyze": "🔍 Übersetzungen analysieren",
|
|
20
|
+
"validate": "✅ Übersetzungen validieren",
|
|
21
|
+
"usage": "📊 Schlüsselverwendung prüfen",
|
|
22
|
+
"complete": "🎯 Übersetzungen vervollständigen (100% Abdeckung)",
|
|
23
|
+
"sizing": "📏 Größenanalyse",
|
|
24
|
+
"workflow": "🔄 Gesamten Workflow ausführen",
|
|
25
|
+
"status": "📋 Projektstatus anzeigen",
|
|
26
|
+
"delete": "🗑️ Alle Berichte löschen",
|
|
27
|
+
"language": "🌍 UI-Sprache ändern",
|
|
28
|
+
"settings": "⚙️ Einstellungen verwalten",
|
|
29
|
+
"debug": "🔧 Fehlerbehebungs-Werkzeuge",
|
|
30
|
+
"help": "❓ Hilfe",
|
|
31
|
+
"exit": "🚪 Beenden"
|
|
32
|
+
},
|
|
33
|
+
"goodbye": "👋 Auf Wiedersehen!",
|
|
34
|
+
"invalidChoice": "❌ Ungültige Auswahl. Bitte 0-13 wählen.",
|
|
35
|
+
"returning": "🔄 Zurück zum Hauptmenü...",
|
|
36
|
+
"invalidOption": "❌ Ungültige Option. Bitte erneut versuchen."
|
|
37
|
+
},
|
|
38
|
+
"init": {
|
|
39
|
+
"warnings": {
|
|
40
|
+
"noPackageJson": "⚠️ Kein package.json im aktuellen Verzeichnis gefunden"
|
|
41
|
+
},
|
|
42
|
+
"suggestions": {
|
|
43
|
+
"noFramework": "💡 Kein i18n-Framework erkannt. Installation empfohlen:",
|
|
44
|
+
"installFramework": "💡 Framework installieren: npm install react-i18next"
|
|
45
|
+
},
|
|
46
|
+
"frameworks": {
|
|
47
|
+
"react": " - React: react-i18next",
|
|
48
|
+
"vue": " - Vue: vue-i18n",
|
|
49
|
+
"i18next": " - i18next: i18next",
|
|
50
|
+
"nuxt": " - Nuxt: @nuxtjs/i18n",
|
|
51
|
+
"svelte": " - Svelte: svelte-i18n"
|
|
52
|
+
},
|
|
53
|
+
"errors": {
|
|
54
|
+
"packageJsonRead": "❌ Fehler beim Lesen von package.json",
|
|
55
|
+
"noFramework": "❌ Kein unterstütztes i18n-Framework gefunden"
|
|
56
|
+
},
|
|
57
|
+
"creatingSourceDirectory": "📁 Erstelle Quellverzeichnis: {{dir}}",
|
|
58
|
+
"creatingSourceLanguageDirectory": "📁 Erstelle Quellsprachenverzeichnis: {{dir}}",
|
|
59
|
+
"createdSampleTranslationFile": "📄 Beispiel-Übersetzungsdatei erstellt: {{file}}",
|
|
60
|
+
"adminPinSeparator": "==================================================",
|
|
61
|
+
"adminPinDescription1": "Admin-PIN-Schutz bietet Sicherheit für sensible Operationen wie:",
|
|
62
|
+
"adminPinDescription2": "• Löschen von Übersetzungsdateien",
|
|
63
|
+
"adminPinDescription3": "• Ändern der Projektkonfiguration",
|
|
64
|
+
"adminPinDescription4": "• Ausführen administrativer Befehle",
|
|
65
|
+
"settingUpAdminPin": "📝 Admin-PIN wird eingerichtet...",
|
|
66
|
+
"pinMustBe4To8Digits": "❌ PIN muss nur 4-8 Ziffern enthalten. Bitte erneut versuchen.",
|
|
67
|
+
"pinsDoNotMatch": "❌ PINs stimmen nicht überein. Bitte erneut versuchen.",
|
|
68
|
+
"adminPinSetupSuccess": "✅ Admin-PIN wurde erfolgreich eingerichtet!",
|
|
69
|
+
"adminProtectionEnabled": "🔒 Admin-Schutz ist jetzt für sensible Operationen aktiviert.",
|
|
70
|
+
"errorSettingUpAdminPin": "❌ Fehler beim Einrichten der Admin-PIN: {error}",
|
|
71
|
+
"continuingWithoutAdminPin": "⚠️ Fortfahren ohne Admin-PIN-Schutz.",
|
|
72
|
+
"skippingAdminPinSetup": "⏭️ Admin-PIN-Einrichtung übersprungen. Sie können sie später in den Einstellungen einrichten.",
|
|
73
|
+
"adminPinSetupOptional": "🔐 ADMIN-PIN-EINRICHTUNG (OPTIONAL)",
|
|
74
|
+
"adminPinSetupPrompt": "Möchten Sie eine Admin-PIN einrichten? (j/N): ",
|
|
75
|
+
"enterAdminPin": "Admin-PIN eingeben (4-8 Ziffern): ",
|
|
76
|
+
"confirmAdminPin": "Admin-PIN bestätigen: ",
|
|
77
|
+
"languageSelectionTitle": "🌍 I18N SPRACHAUSWAHL",
|
|
78
|
+
"defaultLanguages": "📋 Standardsprachen: {languages}",
|
|
79
|
+
"enterLanguageCodes": "Sprachcodes eingeben (kommagetrennt) oder Enter für Standardwerte drücken: ",
|
|
80
|
+
"warningInvalidLanguageCodes": "⚠️ Warnung: Ungültige Sprachcodes ignoriert: {languages}",
|
|
81
|
+
"initializationTitle": "🚀 I18N INITIALISIERUNG",
|
|
82
|
+
"sourceDirectoryLabel": "📁 Quellverzeichnis: {dir}",
|
|
83
|
+
"sourceLanguageLabel": "🔤 Quellsprache: {language}",
|
|
84
|
+
"initializingProject": "🚀 I18n-Projekt wird initialisiert...",
|
|
85
|
+
"warningProceedingWithoutFramework": "⚠️ Warnung: Fortfahren ohne ordnungsgemäßes i18n-Framework.",
|
|
86
|
+
"translationFilesCreatedWarning": "🔧 Übersetzungsdateien werden erstellt, funktionieren aber möglicherweise nicht ohne ordnungsgemäße i18n-Einrichtung.",
|
|
87
|
+
"noTargetLanguagesSpecified": "❌ Keine Zielsprachen angegeben. Beenden.",
|
|
88
|
+
"targetLanguages": "🎯 Zielsprachen: {languages}",
|
|
89
|
+
"foundSourceFiles": "📄 {count} Quelldateien gefunden: {files}",
|
|
90
|
+
"processingLanguage": "🔄 Verarbeite {language} ({name})...",
|
|
91
|
+
"fileProcessingResult": " ✅ {file}: {translated}/{total} ({percentage}%)",
|
|
92
|
+
"overallProgress": " 📊 Gesamt: {translated}/{total} ({percentage}%)",
|
|
93
|
+
"initializationSummaryTitle": "📊 INITIALISIERUNGSZUSAMMENFASSUNG",
|
|
94
|
+
"languageSummary": "{icon} {name} ({code}): {percentage}% vollständig",
|
|
95
|
+
"languageFiles": " 📄 Dateien: {count}",
|
|
96
|
+
"languageKeys": " 🔤 Schlüssel: {translated}/{total}",
|
|
97
|
+
"languageMissing": " ⚠️ Fehlend: {count}",
|
|
98
|
+
"initializationCompletedSuccessfully": "🎉 Initialisierung erfolgreich abgeschlossen!",
|
|
99
|
+
"nextStepsTitle": "📋 Nächste Schritte:",
|
|
100
|
+
"nextStep1": "1. Ausführen: npm run i18n:analyze",
|
|
101
|
+
"nextStep2": "2. Fehlende Werte in Sprachdateien übersetzen",
|
|
102
|
+
"nextStep3": "3. Ausführen: npm run i18n:validate",
|
|
103
|
+
"detectedI18nFrameworks": "✅ I18n-Framework(s) erkannt: {{frameworks}}",
|
|
104
|
+
"continueWithoutI18nPrompt": "🤔 Ohne i18n-Framework fortfahren? (j/N): ",
|
|
105
|
+
"initializationFailed": "❌ Initialisierung fehlgeschlagen: {{error}}"
|
|
106
|
+
},
|
|
107
|
+
"workflow": {
|
|
108
|
+
"starting": "🚀 Workflow wird gestartet...",
|
|
109
|
+
"completed": "✅ Workflow erfolgreich abgeschlossen!",
|
|
110
|
+
"checkReports": "📋 Berichte für Details prüfen",
|
|
111
|
+
"exitingCompleted": "📝 Workflow abgeschlossen. Beenden..."
|
|
112
|
+
},
|
|
113
|
+
"operations": {
|
|
114
|
+
"completed": "✅ Vorgang erfolgreich abgeschlossen!",
|
|
115
|
+
"cancelled": "❌ Vorgang abgebrochen.",
|
|
116
|
+
"init": {
|
|
117
|
+
"title": "🚀 Neue Sprache initialisieren"
|
|
118
|
+
},
|
|
119
|
+
"analyze": {
|
|
120
|
+
"title": "🔍 Übersetzungen analysieren"
|
|
121
|
+
},
|
|
122
|
+
"validate": {
|
|
123
|
+
"title": "✅ Übersetzungen validieren"
|
|
124
|
+
},
|
|
125
|
+
"settings": {
|
|
126
|
+
"title": "⚙️ Einstellungen verwalten",
|
|
127
|
+
"separator": "============================================================"
|
|
128
|
+
},
|
|
129
|
+
"complete": {
|
|
130
|
+
"deletingOldReport": "🗑️ Lösche alten Nutzungsbericht für frische Analyse",
|
|
131
|
+
"generatingFreshAnalysis": "🔄 Erzeuge neue Nutzungsanalyse...",
|
|
132
|
+
"couldNotGenerate": "⚠️ Nutzungsanalyse konnte nicht erzeugt werden. Verwende häufig fehlende Schlüssel.",
|
|
133
|
+
"reportNotFound": "⚠️ Nutzungsbericht nicht gefunden. Erzeuge neue Analyse...",
|
|
134
|
+
"foundMissingKeys": "🔍 {count} fehlende Schlüssel in der Nutzungsanalyse gefunden",
|
|
135
|
+
"couldNotParse": "⚠️ Nutzungsbericht konnte nicht gelesen werden. Verwende häufig fehlende Schlüssel.",
|
|
136
|
+
"title": "🎯 Übersetzungen vervollständigen",
|
|
137
|
+
"separator": "============================================================",
|
|
138
|
+
"sourceDir": "📁 Quellverzeichnis: {sourceDir}",
|
|
139
|
+
"sourceLanguage": "🔤 Ausgangssprache: {sourceLanguage}",
|
|
140
|
+
"dryRunMode": "🧪 Trockenlauf-Modus - Keine Dateien werden geändert",
|
|
141
|
+
"languages": "🎯 Zielsprachen: {languages}",
|
|
142
|
+
"addingMissingKeys": "➕ Fehlende Schlüssel zu Übersetzungsdateien hinzufügen...",
|
|
143
|
+
"processing": "🔄 Verarbeite {language}...",
|
|
144
|
+
"addedKeys": "✅ {count} Schlüssel hinzugefügt",
|
|
145
|
+
"changeDetails": "📝 {file}: {key}",
|
|
146
|
+
"noChangesNeeded": "✅ Für {language} sind keine Änderungen nötig",
|
|
147
|
+
"summaryTitle": "📊 Zusammenfassung der Vervollständigung",
|
|
148
|
+
"totalChanges": "📝 Gesamtänderungen: {totalChanges}",
|
|
149
|
+
"languagesProcessed": "🌐 Verarbeitete Sprachen: {languagesProcessed}",
|
|
150
|
+
"missingKeysAdded": "➕ Fehlende Schlüssel hinzugefügt: {missingKeysAdded}",
|
|
151
|
+
"nextStepsTitle": "📋 NÄCHSTE SCHRITTE",
|
|
152
|
+
"nextStep1": "1. Nutzungsanalyse durchführen:",
|
|
153
|
+
"nextStep2": "2. Übersetzungen validieren:",
|
|
154
|
+
"nextStep3": "3. Vollständigkeit analysieren:",
|
|
155
|
+
"allKeysAvailable": "🎉 Alle Übersetzungsschlüssel sind jetzt verfügbar!",
|
|
156
|
+
"runWithoutDryRun": "💡 Ohne --dry-run ausführen, um Änderungen anzuwenden"
|
|
157
|
+
}
|
|
158
|
+
},
|
|
159
|
+
"admin": {
|
|
160
|
+
"authRequired": "🔐 Administrator-Authentifizierung erforderlich",
|
|
161
|
+
"invalidPin": "❌ Ungültige PIN. Zugriff verweigert.",
|
|
162
|
+
"authSuccess": "✅ Authentifizierung erfolgreich"
|
|
163
|
+
},
|
|
164
|
+
"status": {
|
|
165
|
+
"generating": "\n📊 Statusübersicht wird erstellt...",
|
|
166
|
+
"completed": "✅ Statusübersicht erfolgreich erstellt!",
|
|
167
|
+
"exitingCompleted": "\n📝 Statusübersicht abgeschlossen. Beenden...",
|
|
168
|
+
"i18nSetup": "🌐 Internationalisierung eingerichtet"
|
|
169
|
+
},
|
|
170
|
+
"common": {
|
|
171
|
+
"errorExiting": "\n📝 Fehler aufgetreten. Beenden...",
|
|
172
|
+
"welcome": "👋 Willkommen zum Internationalisierungs-Management-Toolkit!",
|
|
173
|
+
"success": "✅ Vorgang erfolgreich abgeschlossen!",
|
|
174
|
+
"error": "❌ Ein Fehler ist aufgetreten!"
|
|
175
|
+
},
|
|
176
|
+
"delete": {
|
|
177
|
+
"options": {
|
|
178
|
+
"title": "🗑️ Löschoptionen",
|
|
179
|
+
"all": "1. Alle Berichte löschen",
|
|
180
|
+
"keepLast3": "2. Die letzten 3 Berichte behalten",
|
|
181
|
+
"cancel": "0. Abbrechen"
|
|
182
|
+
},
|
|
183
|
+
"noFiles": "📂 Keine Dateien zum Löschen gefunden."
|
|
184
|
+
},
|
|
185
|
+
"checkUsage": {
|
|
186
|
+
"help_message": "\nInternationalisierungs-Nutzungsanalysator\n\nVerwendung: node i18ntk-usage.js [Optionen]\n\nOptionen:\n --source-dir <dir> Quellverzeichnis zum Scannen (Standard: ./src)\n --i18n-dir <dir> Internationalisierungs-Verzeichnis (Standard: ./src/locales)\n --output-report Detaillierten Bericht erzeugen\n --output-dir <dir> Ausgabeverzeichnis für Berichte (Standard: ./reports)\n --help 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",
|
|
187
|
+
"source_directory_thissourcedir": "📁 Quellverzeichnis: {sourceDir}",
|
|
188
|
+
"i18n_directory_thisi18ndir": "🌐 Internationalisierungs-Verzeichnis: {i18nDir}",
|
|
189
|
+
"failed_to_parse_filename_error": "⚠️ Fehler beim Parsen von {fileName}: {errorMessage}",
|
|
190
|
+
"analyzing_source_files": "🔍 Quell-Dateien werden analysiert...",
|
|
191
|
+
"found_files_in_source": "📂 {numFiles} Dateien im Quellverzeichnis gefunden",
|
|
192
|
+
"found_thisusedkeyssize_unique_": "🎯 {usedKeysSize} eindeutige verwendete Schlüssel gefunden",
|
|
193
|
+
"total_key_usages_totalkeysfoun": "📊 Gesamtanzahl der Schlüsselnutzungen: {totalKeysFound}",
|
|
194
|
+
"loading_available_translation_": "📋 Lade verfügbare Übersetzungsschlüssel...",
|
|
195
|
+
"found_thisavailablekeyssize_av": "✅ {availableKeysSize} verfügbare Schlüssel gefunden",
|
|
196
|
+
"title": "🔍 INTERNATIONALISIERUNGS-NUTZUNGSANALYSE",
|
|
197
|
+
"message": "Starte Nutzungsanalyse...",
|
|
198
|
+
"n": "\n",
|
|
199
|
+
"usage_analysis_results": "📊 NUTZUNGSANALYSE-ERGEBNISSE",
|
|
200
|
+
"source_files_scanned_thisfileu": "📄 Quell-Dateien gescannt: {fileUsageSize}",
|
|
201
|
+
"available_translation_keys_thi": "🔤 Verfügbare Übersetzungsschlüssel: {availableKeysSize}",
|
|
202
|
+
"used_translation_keys_thisused": "🎯 Verwendete Übersetzungsschlüssel: {usedKeysSize}",
|
|
203
|
+
"dynamic_keys_detected_dynamick": "🔄 Dynamische Schlüssel erkannt: {dynamicKeysLength}",
|
|
204
|
+
"unused_keys_unusedkeyslength": "❌ Unbenutzte Schlüssel: {unusedKeysLength}",
|
|
205
|
+
"missing_keys_missingkeyslength": "⚠️ Fehlende Schlüssel: {missingKeysLength}",
|
|
206
|
+
"translation_completeness_title": "🌍 Übersetzungs-Vollständigkeit:",
|
|
207
|
+
"language_completeness_stats": " {language}: {completeness}% vollständig ({translated}/{total})",
|
|
208
|
+
"n_sample_unused_keys": "\n📋 Beispiel für ungenutzte Schlüssel:",
|
|
209
|
+
"key": "❌ {key}",
|
|
210
|
+
"and_unusedkeyslength_5_more": "... und {count} weitere",
|
|
211
|
+
"n_sample_missing_keys": "\n📋 Beispiel für fehlende Schlüssel:",
|
|
212
|
+
"and_missingkeyslength_5_more": "... und {count} weitere fehlende Schlüssel",
|
|
213
|
+
"n_generating_detailed_report": "\n📄 Detaillierten Bericht erzeugen...",
|
|
214
|
+
"report_saved_reportpath": "📄 Bericht gespeichert: {reportPath}",
|
|
215
|
+
"n_recommendations": "\n💡 Empfehlungen:",
|
|
216
|
+
"consider_removing_unused_trans": "🗑️ Überlege, ungenutzte Übersetzungsschlüssel zu entfernen",
|
|
217
|
+
"add_missing_translation_keys_t": "⚠️ Fehlende Übersetzungsschlüssel hinzufügen, um Laufzeitfehler zu vermeiden",
|
|
218
|
+
"review_dynamic_keys_manually_t": "🔄 Dynamische Schlüssel manuell prüfen, um alle Varianten sicherzustellen",
|
|
219
|
+
"all_translation_keys_are_prope": "🎉 Alle Übersetzungsschlüssel werden korrekt verwendet!",
|
|
220
|
+
"n_next_steps": "\n📋 Nächste Schritte:",
|
|
221
|
+
"1_review_the_analysis_results": "1. Analysenergebnisse überprüfen",
|
|
222
|
+
"2_check_the_detailed_report_fo": "2. Detaillierten Bericht für spezifische Dateien und Schlüssel prüfen",
|
|
223
|
+
"2_run_with_outputreport_for_de": "2. Mit --output-report für detaillierten Bericht ausführen",
|
|
224
|
+
"3_remove_unused_keys_or_add_mi": "3. Ungenutzte Schlüssel entfernen oder fehlende hinzufügen",
|
|
225
|
+
"4_rerun_analysis_to_verify_imp": "4. Analyse erneut ausführen, um Verbesserungen zu bestätigen",
|
|
226
|
+
"usage_analysis_failed": "❌ Nutzungsanalyse fehlgeschlagen:"
|
|
227
|
+
},
|
|
228
|
+
"validateTranslations": {
|
|
229
|
+
"help_message": "\nInternationalisierungs-Übersetzungsprüfer\n\nVerwendung: node i18ntk-validate.js [Optionen]\n\nOptionen:\n --language <lang> Bestimmte Sprache validieren (Standard: alle)\n --source-dir <dir> Quellverzeichnis (Standard: ./src/locales)\n --strict Strikter Modus (Warnungen werden zu Fehlern)\n --help Hilfe anzeigen\n\nAdmin-Befehle:\n --setup-admin Admin-PIN-Schutz einrichten\n --disable-admin Admin-PIN-Schutz deaktivieren\n --admin-status Admin-Schutzstatus anzeigen\n\nBeispiele:\n node i18ntk-validate.js\n node i18ntk-validate.js --language=de\n node i18ntk-validate.js --source-dir=./locales --strict\n node i18ntk-validate.js --setup-admin\n",
|
|
230
|
+
"title": "🔍 INTERNATIONALISIERUNGS-ÜBERSETZUNGSVALIDIERUNG",
|
|
231
|
+
"message": "=",
|
|
232
|
+
"deletedOldReport": "🗑️ Alten Validierungsbericht gelöscht",
|
|
233
|
+
"sourceDirectory": "📁 Quellverzeichnis: {{dir}}",
|
|
234
|
+
"source_language_thisconfigsour": "🔤 Ausgangssprache: {{sourceLanguage}}",
|
|
235
|
+
"strictMode": "⚙️ Strikter Modus: {{mode}}",
|
|
236
|
+
"noTargetLanguages": "❌ Keine Zielsprachen gefunden.",
|
|
237
|
+
"validatingLanguages": "🎯 Validierung der Sprachen: {{langs}}",
|
|
238
|
+
"validatingLanguage": "\n🔄 Validierung von {{lang}}...",
|
|
239
|
+
"filesCount": " 📄 Dateien: {count}",
|
|
240
|
+
"keysCount": " 🔤 Schlüssel: {count}",
|
|
241
|
+
"missingFilesCount": " ❌ Fehlende Dateien: {count}",
|
|
242
|
+
"syntaxErrorsCount": " 🐛 Syntaxfehler: {count}",
|
|
243
|
+
"translationPercentage": " 📊 Übersetzung: {{percentage}}% ({{translated}}/{{total}})",
|
|
244
|
+
"n_validation_summary": "\n📊 VALIDIERUNGSZUSAMMENFASSUNG",
|
|
245
|
+
"total_errors": "❌ Gesamtfehler: {count}",
|
|
246
|
+
"total_warnings": "⚠️ Gesamtwarnungen: {count}",
|
|
247
|
+
"n_errors": "\n❌ FEHLER:",
|
|
248
|
+
"n_warnings": "\n⚠️ WARNUNGEN:",
|
|
249
|
+
"n_recommendations": "\n📋 EMPFEHLUNGEN",
|
|
250
|
+
"fix_errors_first": "🔧 Fehler zuerst beheben:",
|
|
251
|
+
"1_resolve_missing_files_and_sy": "1. Fehlende Dateien und Syntaxfehler beheben",
|
|
252
|
+
"2_fix_structural_inconsistenci": "2. Strukturelle Inkonsistenzen beheben",
|
|
253
|
+
"3_complete_missing_translation": "3. Fehlende Übersetzungen vervollständigen",
|
|
254
|
+
"4_rerun_validation": "4. Validierung erneut ausführen",
|
|
255
|
+
"address_warnings": "⚠️ Warnungen beachten:",
|
|
256
|
+
"review_warnings": "1. Warnungen oben prüfen",
|
|
257
|
+
"2_consider_running_with_strict": "2. Striktere Validierung mit --strict in Betracht ziehen",
|
|
258
|
+
"all_validations_passed": "🎉 Alle Validierungen bestanden!",
|
|
259
|
+
"consider_running_usage_analysi": "💡 Nutze Nutzungsanalyse, um unbenutzte Schlüssel zu finden",
|
|
260
|
+
"validation_failed": "❌ Validierung fehlgeschlagen:",
|
|
261
|
+
"invalidEmailFormat": "Ungültiges E-Mail-Format"
|
|
262
|
+
},
|
|
263
|
+
"analyzeTranslations": {
|
|
264
|
+
"generated": "Erstellt: {timestamp}",
|
|
265
|
+
"status": "Status: {translated}/{total} übersetzt ({percentage}%)",
|
|
266
|
+
"filesAnalyzed": "Analysierte Dateien: {analyzed}/{total}",
|
|
267
|
+
"keysNeedingTranslation": "Schlüssel, die Übersetzung benötigen: {count}",
|
|
268
|
+
"fileBreakdown": "DATEI-AUFSCHLÜSSELUNG:",
|
|
269
|
+
"statusFileMissing": "Status: Datei fehlt",
|
|
270
|
+
"sourceKeys": "Quellschlüssel: {count}",
|
|
271
|
+
"translation": "Übersetzung: {translated}/{total} ({percentage}%)",
|
|
272
|
+
"structure": "Struktur: {status}",
|
|
273
|
+
"consistent": "Konsistent",
|
|
274
|
+
"inconsistent": "Inkonsistent",
|
|
275
|
+
"missingKeys": "Fehlende Schlüssel: {count}",
|
|
276
|
+
"extraKeys": "Zusätzliche Schlüssel: {count}",
|
|
277
|
+
"issues": "Probleme: {count}",
|
|
278
|
+
"issueType": {
|
|
279
|
+
"not_translated": "Nicht übersetzt: {count}",
|
|
280
|
+
"empty_value": "Leerer Wert: {count}",
|
|
281
|
+
"partial_translation": "Teilweise übersetzt: {count}",
|
|
282
|
+
"same_as_source": "Gleich wie Quelle: {count}"
|
|
283
|
+
},
|
|
284
|
+
"key": "Schlüssel",
|
|
285
|
+
"english": "Englisch",
|
|
286
|
+
"needsTranslation": "BENÖTIGT ÜBERSETZUNG",
|
|
287
|
+
"andMoreKeys": "... und {count} weitere Schlüssel",
|
|
288
|
+
"problematic_no": "Keine Größenprobleme erkannt",
|
|
289
|
+
"problematic_yes": "Potenzielle Größenprobleme erkannt",
|
|
290
|
+
"keysToTranslate": "ZU ÜBERSETZENDE SCHLÜSSEL",
|
|
291
|
+
"summary": "\n📊 ANALYSE-ZUSAMMENFASSUNG",
|
|
292
|
+
"help_message": "\nInternationalisierungs-Übersetzungs-Analyzer\n\nVerwendung: node i18ntk-analyze.js [Optionen]\n\nOptionen:\n --language <lang> Bestimmte Sprache analysieren (Standard: alle)\n --source-dir <dir> Quellverzeichnis (Standard: ./src/locales)\n --output-reports Detaillierte Berichte erzeugen\n --output-dir <dir> Ausgabeverzeichnis für Berichte (Standard: ./reports)\n --help Hilfe anzeigen\n\nBeispiele:\n node i18ntk-analyze.js --output-reports\n node i18ntk-analyze.js --language=de --output-reports\n node i18ntk-analyze.js --source-dir=./locales --output-dir=./analysis\n",
|
|
293
|
+
"starting": "🔍 Starte Übersetzungsanalyse...",
|
|
294
|
+
"noLanguages": "⚠️ Keine Zielsprachen gefunden.",
|
|
295
|
+
"foundLanguages": "📋 {count} Sprachen zur Analyse gefunden: {{languages}}",
|
|
296
|
+
"referenceLanguageFiles": "Referenzsprachdateien: {files}",
|
|
297
|
+
"analyzingLanguage": "Analysiere Sprache: {language}",
|
|
298
|
+
"analyzing": "\n🔄 Analysiere {{language}}...",
|
|
299
|
+
"completed": "✅ Analyse für {{language}} abgeschlossen",
|
|
300
|
+
"progress": " Fortschritt: {{percentage}}% ({{translatedKeys}}/{{totalKeys}} Schlüssel)",
|
|
301
|
+
"reportSaved": " Bericht gespeichert: {{reportPath}}",
|
|
302
|
+
"finished": "\n✅ Analyse erfolgreich abgeschlossen!",
|
|
303
|
+
"error": "❌ Analyse fehlgeschlagen",
|
|
304
|
+
"reportTitle": "ÜBERSETZUNGSANALYSEBERICHT FÜR {language}"
|
|
305
|
+
},
|
|
306
|
+
"completeTranslations": {
|
|
307
|
+
"warning_could_not_parse_filepa": "⚠️ Datei konnte nicht geparst werden: {filePath}"
|
|
308
|
+
},
|
|
309
|
+
"sizing": {
|
|
310
|
+
"analyzing_file_sizes": "Dateigrößen werden analysiert...",
|
|
311
|
+
"analyzing_translation_content": "Übersetzungsinhalte werden analysiert...",
|
|
312
|
+
"failed_to_parse_language_error": "{{language}} konnte nicht geparst werden: {{errorMessage}}",
|
|
313
|
+
"generating_size_comparisons": "Erzeuge Größenvergleiche...",
|
|
314
|
+
"no_languages_found_for_comparison": "Keine Sprachen für Vergleich gefunden",
|
|
315
|
+
"sizing_analysis_results": "\n📊 Größenanalyse-Ergebnisse",
|
|
316
|
+
"file_sizes_title": "📁 Dateigrößen",
|
|
317
|
+
"file_sizes_header": "Sprache\t\tGröße (KB)\t\tZeilen\t\tZeichen",
|
|
318
|
+
"file_size_row": "{{lang}}\t\t{{sizeKB}} KB\t\t{{lines}} Zeilen\t\t{{characters}} Zeichen",
|
|
319
|
+
"language_statistics_title": "📈 Sprachstatistik",
|
|
320
|
+
"language_stats_header": "Sprache\t\tSchlüssel\t\tGesamtzeichen\t\tDurchschnittlänge\t\tMaximallänge\t\tLeere Schlüssel",
|
|
321
|
+
"language_stats_row": "{{lang}}\t\t{{totalKeys}} Schlüssel\t\t{{totalCharacters}} Zeichen\t\t{{averageKeyLength}} Durchschnitt\t\t{{maxKeyLength}} Max\t\t{{emptyKeys}} Leer",
|
|
322
|
+
"size_variations_title": "⚖️ Größenabweichungen",
|
|
323
|
+
"size_variations_header": "Sprache\t\tZeichendifferenz\t\tProzent\t\tProblematisch",
|
|
324
|
+
"size_variation_row": "{{lang}}\t\t{{characterDifference}}\t\t{{percentageDifference}}%\t\t{{problematic}}",
|
|
325
|
+
"recommendations_title": "💡 Empfehlungen",
|
|
326
|
+
"recommendation_item": "{{index}}. {{recommendation}}",
|
|
327
|
+
"generating_detailed_report": "\n📄 Erzeuge detaillierten Größenbericht...",
|
|
328
|
+
"report_saved_to": "Bericht gespeichert unter: {{reportPath}}",
|
|
329
|
+
"csv_report_saved_to": "CSV-Bericht gespeichert unter: {{csvPath}}",
|
|
330
|
+
"starting_i18n_sizing_analysis": "🔍 Starte Internationalisierungs-Größenanalyse...",
|
|
331
|
+
"source_directory": "Quellverzeichnis: {{sourceDir}}",
|
|
332
|
+
"no_translation_files_found": "❌ Keine Übersetzungsdateien gefunden",
|
|
333
|
+
"found_languages": "Gefundene Sprachen: {{languages}}",
|
|
334
|
+
"analysis_completed": "✅ Analyse in {{duration}} ms abgeschlossen",
|
|
335
|
+
"analysis_failed": "❌ Größenanalyse fehlgeschlagen: {{errorMessage}}",
|
|
336
|
+
"problematic_no": "Keine Größenprobleme erkannt",
|
|
337
|
+
"problematic_yes": "Potenzielle Größenprobleme erkannt"
|
|
338
|
+
},
|
|
339
|
+
"summary": {
|
|
340
|
+
"i18nSummaryReportGenerator": "🔧 I18N ZUSAMMENFASSUNGSBERICHT-GENERATOR",
|
|
341
|
+
"keysInFiles": " 📝 {keys} Schlüssel in {files} Dateien",
|
|
342
|
+
"checkingInconsistentKeys": "🔍 Überprüfung inkonsistenter Schlüssel zwischen Sprachen...",
|
|
343
|
+
"noIssuesFound": "Keine Probleme gefunden – Ihre i18n-Konfiguration sieht großartig aus!",
|
|
344
|
+
"allFilesConsistent": "Alle Übersetzungsdateien sind über alle Sprachen hinweg konsistent.",
|
|
345
|
+
"recommendations": "Empfehlungen",
|
|
346
|
+
"nextSteps": "Nächste Schritte",
|
|
347
|
+
"nextStep1": "Überprüfen Sie den Zusammenfassungsbericht auf Inkonsistenzen oder fehlende Schlüssel.",
|
|
348
|
+
"nextStep2": "Beheben Sie alle im Bericht hervorgehobenen Probleme.",
|
|
349
|
+
"nextStep3": "Validieren Sie Übersetzungen auf Sprachreinheit und Vollständigkeit.",
|
|
350
|
+
"nextStep4": "Führen Sie den Zusammenfassungsbericht nach Änderungen erneut aus.",
|
|
351
|
+
"inconsistentKeys": "Inkonsistente Schlüssel gefunden:",
|
|
352
|
+
"missingKeys": " Fehlende Schlüssel: {keys}{more}",
|
|
353
|
+
"extraKeys": " Zusätzliche Schlüssel: {keys}{more}",
|
|
354
|
+
"createMissingFiles": "Fehlende Dateien für alle Sprachen erstellen.",
|
|
355
|
+
"addContentToEmptyFiles": "Inhalt zu leeren Übersetzungsdateien hinzufügen.",
|
|
356
|
+
"fixMalformedFiles": "Fehlerhafte Übersetzungsdateien beheben.",
|
|
357
|
+
"removeDuplicateKeys": "Doppelte Schlüssel aus Übersetzungsdateien entfernen.",
|
|
358
|
+
"synchronizeKeys": "Schlüssel über alle Sprachen hinweg synchronisieren.",
|
|
359
|
+
"splitLargeFiles": "Große Übersetzungsdateien zur besseren Wartbarkeit aufteilen.",
|
|
360
|
+
"addMoreLanguages": "Fügen Sie Ihrem Projekt weitere Sprachen hinzu.",
|
|
361
|
+
"reportSaved": "📄 Zusammenfassungsbericht gespeichert: {reportPath}",
|
|
362
|
+
"reportSaveFailed": "❌ Zusammenfassungsbericht konnte nicht gespeichert werden: {reportPath}",
|
|
363
|
+
"reportTitle": "INTERNATIONALISIERUNGS-ZUSAMMENFASSUNGSBERICHT",
|
|
364
|
+
"generated": "Erstellt: {timestamp}",
|
|
365
|
+
"sourceDirectory": "Quellverzeichnis: {dir}",
|
|
366
|
+
"analyzingFolder": "Analysiere Ordner: {folder}",
|
|
367
|
+
"foundLanguages": "📋 Gefundene Sprachen: {languages}",
|
|
368
|
+
"referenceLanguageFiles": "Referenzsprachdateien: {files}",
|
|
369
|
+
"analyzingLanguage": "Analysiere Sprache: {language}",
|
|
370
|
+
"overview": "ÜBERSICHT",
|
|
371
|
+
"languagesCount": "🌍 Sprachen: {count}",
|
|
372
|
+
"totalFiles": "📁 Gesamtdateien: {count}",
|
|
373
|
+
"totalKeys": "🔤 Gesamtschlüssel: {count}",
|
|
374
|
+
"avgKeysPerLanguage": "📊 Durchschnittliche Schlüssel pro Sprache: {count}",
|
|
375
|
+
"languagesBreakdown": "SPRACHENAUFSCHLÜSSELUNG",
|
|
376
|
+
"languageBreakdown": "📍 {language}: {files} Dateien, {keys} Schlüssel",
|
|
377
|
+
"fileStructure": "DATEISTRUKTUR",
|
|
378
|
+
"fileKeys": "📄 {file}: {keys} Schlüssel",
|
|
379
|
+
"missingInLanguages": " ⚠️ Fehlt in: {languages}",
|
|
380
|
+
"noIssuesConsole": "✅ Keine Probleme gefunden – Ihre i18n-Konfiguration sieht großartig aus! (Konsole)",
|
|
381
|
+
"couldNotReadFile": "⚠️ Datei konnte nicht gelesen werden: {filePath}",
|
|
382
|
+
"couldNotParseJSFile": "⚠️ JS/TS-Datei konnte nicht geparst werden: {filePath}",
|
|
383
|
+
"errorReadingFile": "⚠️ Fehler beim Lesen der Datei {filePath}: {error}",
|
|
384
|
+
"noLanguageDirectoriesFound": "❌ Keine Sprachverzeichnisse gefunden!",
|
|
385
|
+
"issuesFound": "🚨 PROBLEME GEFUNDEN",
|
|
386
|
+
"missingFiles": "❌ Fehlende Dateien:",
|
|
387
|
+
"emptyFiles": "📭 Leere Dateien:",
|
|
388
|
+
"malformedFiles": "💥 Fehlerhafte Dateien:",
|
|
389
|
+
"duplicateKeys": "🔄 Doppelte Schlüssel:",
|
|
390
|
+
"couldNotFindI18nDirectory": "❌ I18n-Verzeichnis nicht gefunden. Bitte mit --source-dir angeben",
|
|
391
|
+
"sourceDirectoryDoesNotExist": "❌ Quellverzeichnis existiert nicht: {sourceDir}",
|
|
392
|
+
"generatingSummaryReport": "📄 Zusammenfassungsbericht wird erstellt...",
|
|
393
|
+
"cleaningUpReportFiles": "🗑️ Berichtsdateien werden bereinigt...",
|
|
394
|
+
"couldNotDelete": "⚠️ {file} konnte nicht gelöscht werden: {error}",
|
|
395
|
+
"noOldReportFilesToDelete": "📄 Keine alten Berichtsdateien zum Löschen.",
|
|
396
|
+
"errorCleaningUpReports": "⚠️ Fehler beim Bereinigen der Berichte: {error}",
|
|
397
|
+
"reportFilesPreserved": "📁 Berichtsdateien wie angefordert erhalten.",
|
|
398
|
+
"analysisComplete": "📊 ANALYSE ABGESCHLOSSEN",
|
|
399
|
+
"analyzedLanguages": "✅ {count} Sprachen analysiert",
|
|
400
|
+
"processedFiles": "✅ {count} Dateien verarbeitet",
|
|
401
|
+
"foundTranslationKeys": "✅ {count} Übersetzungsschlüssel gefunden",
|
|
402
|
+
"errorDuringAnalysis": "❌ Fehler während der Analyse: {error}",
|
|
403
|
+
"deletedOldReportFiles": "✅ {count} alte Berichtsdateien gelöscht.",
|
|
404
|
+
"helpTitle": "🔧 I18N ZUSAMMENFASSUNGSBERICHT-GENERATOR",
|
|
405
|
+
"helpDescription": "Analysiert i18n-Ordnerstruktur und erstellt umfassende Berichte",
|
|
406
|
+
"helpUsage": "Verwendung: i18ntk summary [Optionen]",
|
|
407
|
+
"helpOptions": "Optionen:",
|
|
408
|
+
"helpSourceDir": " -s, --source-dir <pfad> Pfad zum i18n-Locales-Verzeichnis",
|
|
409
|
+
"helpOutput": " -o, --output <datei> Ausgabedatei für den Bericht",
|
|
410
|
+
"helpVerbose": " -v, --verbose Detaillierte Ausgabe anzeigen",
|
|
411
|
+
"helpKeepReports": " --keep-reports Alle vorhandenen Berichtsdateien behalten",
|
|
412
|
+
"helpDeleteReports": " --delete-reports Alte Berichtsdateien nach Erstellung löschen",
|
|
413
|
+
"helpHelp": " -h, --help Diese Hilfemeldung anzeigen",
|
|
414
|
+
"helpExamples": "Beispiele:",
|
|
415
|
+
"helpExample1": " i18ntk summary",
|
|
416
|
+
"helpExample2": " i18ntk summary --source-dir ./src/i18n/locales",
|
|
417
|
+
"helpExample3": " i18ntk summary --output summary.txt --verbose",
|
|
418
|
+
"helpExample4": " i18ntk summary --output summary.txt --delete-reports",
|
|
419
|
+
"helpExample5": " i18ntk summary --keep-reports",
|
|
420
|
+
"usageReportTitle": "I18N NUTZUNGSANALYSEBERICHT - Version 1.4.3",
|
|
421
|
+
"usageReportGenerated": "Erstellt: {timestamp}",
|
|
422
|
+
"usageReportSourceDir": "Quellverzeichnis: {sourceDir}",
|
|
423
|
+
"usageReportI18nDir": "I18n-Verzeichnis: {i18nDir}",
|
|
424
|
+
"usageReportSummary": "ZUSAMMENFASSUNG",
|
|
425
|
+
"usageReportSourceFilesScanned": "📄 Gescannte Quelldateien: {count}",
|
|
426
|
+
"usageReportTranslationFilesFound": "📄 Gefundene Übersetzungsdateien: {count}",
|
|
427
|
+
"usageReportAvailableKeys": "🔤 Verfügbare Übersetzungsschlüssel: {count}",
|
|
428
|
+
"usageReportUsedKeys": "🎯 Verwendete Übersetzungsschlüssel: {count}",
|
|
429
|
+
"usageReportDynamicKeys": "🔄 Erkannte dynamische Schlüssel: {count}",
|
|
430
|
+
"usageReportUnusedKeys": "❌ Unbenutzte Schlüssel: {count}",
|
|
431
|
+
"usageReportMissingKeys": "⚠️ Fehlende Schlüssel: {count}",
|
|
432
|
+
"usageReportNotTranslatedKeys": "🔄 NICHT_ÜBERSETZTE Schlüssel: {count}",
|
|
433
|
+
"usageReportTranslationCompleteness": "ÜBERSETZUNGSVOLLSTÄNDIGKEIT",
|
|
434
|
+
"usageReportLanguageCompleteness": "🌍 {language}: {completeness}% vollständig ({translated}/{total})",
|
|
435
|
+
"usageReportNotTranslatedInLanguage": " 🔄 NICHT_ÜBERSETZT: {count} Schlüssel",
|
|
436
|
+
"usageReportTranslationFilesDiscovered": "ENTDECKTE ÜBERSETZUNGSDATEIEN",
|
|
437
|
+
"usageReportFileInfo": "📄 {relativePath} ({namespace}, {type})",
|
|
438
|
+
"usageReportUnusedKeysSection": "UNBENUTZTE ÜBERSETZUNGSSCHLÜSSEL",
|
|
439
|
+
"usageReportUnusedKeysDescription": "Diese Schlüssel existieren in Übersetzungsdateien, werden aber nicht im Quellcode verwendet:",
|
|
440
|
+
"usageReportMoreUnusedKeys": "... und {count} weitere unbenutzte Schlüssel",
|
|
441
|
+
"usageReportMissingKeysSection": "FEHLENDE ÜBERSETZUNGSSCHLÜSSEL",
|
|
442
|
+
"usageReportMissingKeysDescription": "Diese Schlüssel werden im Quellcode verwendet, fehlen aber in den Übersetzungsdateien:",
|
|
443
|
+
"usageReportUsedIn": "📄 Verwendet in: {filePath}",
|
|
444
|
+
"usageReportMoreFiles": "... und {count} weitere Dateien",
|
|
445
|
+
"usageReportDynamicKeysSection": "DYNAMISCHE ÜBERSETZUNGSSCHLÜSSEL",
|
|
446
|
+
"usageReportDynamicKeysDescription": "Diese Schlüssel verwenden dynamische Muster und benötigen manuelle Überprüfung:",
|
|
447
|
+
"usageReportFileUsageBreakdown": "DATEINUTZUNGSAUFSCHLÜSSELUNG",
|
|
448
|
+
"usageReportFileUsage": "📄 {filePath} ({count} Schlüssel)",
|
|
449
|
+
"usageReportMoreFileUsage": "... und {count} weitere Dateien",
|
|
450
|
+
"usageReportSaved": "📄 Bericht gespeichert unter: {filepath}",
|
|
451
|
+
"usageReportSaveFailed": "❌ Bericht konnte nicht gespeichert werden: {error}",
|
|
452
|
+
"analysisCompletedSuccessfully": "✅ Analyse erfolgreich abgeschlossen",
|
|
453
|
+
"analysisFailed": "❌ Analyse fehlgeschlagen: {error}",
|
|
454
|
+
"analysisFailedError": "❌ Analyse fehlgeschlagen",
|
|
455
|
+
"usageReportUnusedTranslationKeys": "UNBENUTZTE ÜBERSETZUNGSSCHLÜSSEL",
|
|
456
|
+
"usageReportUnusedKey": "❌ {key}",
|
|
457
|
+
"usageReportMissingTranslationKeys": "FEHLENDE ÜBERSETZUNGSSCHLÜSSEL",
|
|
458
|
+
"usageReportMissingKey": "⚠️ {key}",
|
|
459
|
+
"usageReportDynamicTranslationKeys": "DYNAMISCHE ÜBERSETZUNGSSCHLÜSSEL",
|
|
460
|
+
"usageReportDynamicKey": "🔄 {key}",
|
|
461
|
+
"unusedKeysCount": " ❌ Unbenutzte Schlüssel: {count}",
|
|
462
|
+
"missingKeysCount": " ⚠️ Fehlende Schlüssel: {count}",
|
|
463
|
+
"translationCompletenessTitle": "\n🌍 Übersetzungsvollständigkeit:",
|
|
464
|
+
"languageCompletenessStats": " {language}: {completeness}% vollständig ({translated}/{total})",
|
|
465
|
+
"configuration": "🔧 Konfiguration:",
|
|
466
|
+
"sourceLanguage": " Quellsprache: {sourceLanguage}",
|
|
467
|
+
"supportedExtensions": " Unterstützte Erweiterungen: {extensions}",
|
|
468
|
+
"excludedFiles": " Ausgeschlossene Dateien: {files}",
|
|
469
|
+
"foundIssues": "⚠️ {count} Probleme gefunden, die Aufmerksamkeit benötigen",
|
|
470
|
+
"fatalError": "❌ Schwerwiegender Fehler: {error}",
|
|
471
|
+
"issuesFoundTitle": "PROBLEME GEFUNDEN",
|
|
472
|
+
"missingFilesTitle": "❌ Fehlende Dateien:",
|
|
473
|
+
"emptyFilesTitle": "📭 Leere Dateien:",
|
|
474
|
+
"malformedFilesTitle": "💥 Fehlerhafte Dateien:",
|
|
475
|
+
"duplicateKeysTitle": "🔄 Doppelte Schlüssel:"
|
|
476
|
+
},
|
|
477
|
+
"hardcodedTexts": {
|
|
478
|
+
"securityUnknownCommandArg": "Sicherheit: Unbekanntes Befehlsargument",
|
|
479
|
+
"securityUnknownConfigKey": "Sicherheit: Unbekannter Konfigurationsschlüssel",
|
|
480
|
+
"translationNotFound": "Übersetzung für Schlüssel nicht gefunden",
|
|
481
|
+
"noSourceFilesFound": "Keine Quelldateien zur Analyse gefunden.",
|
|
482
|
+
"usageAnalysisCompleted": "✅ Nutzungsanalyse erfolgreich abgeschlossen",
|
|
483
|
+
"analyzingTranslationCompleteness": "🔍 Analysiere Übersetzungsvollständigkeit...",
|
|
484
|
+
"analysisCompletedSuccessfully": "Analyse erfolgreich abgeschlossen",
|
|
485
|
+
"foundTranslationFiles": "🔍 {count} Übersetzungsdateien gefunden",
|
|
486
|
+
"processedFiles": "📊 {processedFiles}/{totalFiles} Dateien verarbeitet...",
|
|
487
|
+
"i18nDirectoryNotFound": "I18n-Verzeichnis nicht gefunden: {i18nDir}",
|
|
488
|
+
"noTranslationLanguagesFound": "Keine Übersetzungssprachen gefunden.",
|
|
489
|
+
"failedToAnalyzeFile": "Fehler beim Analysieren von {filePath}: {error}",
|
|
490
|
+
"failedToAnalyzeLanguage": "Fehler beim Analysieren der Sprache {language}: {error}",
|
|
491
|
+
"translationCompletenessAnalysisFailed": "Analyse der Übersetzungsvollständigkeit fehlgeschlagen: {error}",
|
|
492
|
+
"invalidChoiceSelectRange": "Ungültige Auswahl. Bitte wählen Sie einen Bereich von {range}.",
|
|
493
|
+
"errorGeneratingStatusSummary": "Fehler beim Generieren der Statusübersicht: {error}",
|
|
494
|
+
"debugToolNotFound": "Debug-Tool nicht gefunden: {tool}",
|
|
495
|
+
"errorRunningDebugTool": "Fehler beim Ausführen des Debug-Tools: {error}",
|
|
496
|
+
"autoDetectedI18nDirectory": "🔍 Automatisch erkanntes i18n-Verzeichnis: {path}",
|
|
497
|
+
"executingCommand": "🔄 Führe Befehl aus: {command}",
|
|
498
|
+
"unknownCommand": "❌ Unbekannter Befehl: {command}",
|
|
499
|
+
"errorExecutingCommand": "❌ Fehler beim Ausführen des Befehls: {error}",
|
|
500
|
+
"mainDebuggerSystemDiagnostics": "🔍 Haupt-Debugger - Systemdiagnose und -analyse",
|
|
501
|
+
"consoleTranslationsCheck": "🌐 Konsolen-Übersetzungen - Überprüfung der Konsolen-Nachrichten-Übersetzungen",
|
|
502
|
+
"exportMissingKeys": "🔑 Fehlende Schlüssel exportieren - Fehlende Übersetzungsschlüssel exportieren",
|
|
503
|
+
"replaceHardcodedConsole": "🔄 Hardcodierte Konsole ersetzen - Hardcodierte Nachrichten konvertieren",
|
|
504
|
+
"consoleKeyChecker": "✅ Konsolen-Schlüssel-Prüfer - Konsolen-Übersetzungsschlüssel validieren",
|
|
505
|
+
"debugLogs": "📝 Debug-Logs - Aktuelle Debug-Logs anzeigen",
|
|
506
|
+
"backToMainMenu": "← Zurück zum Hauptmenü",
|
|
507
|
+
"runningDebugTool": "🔧 Führe {displayName} aus...",
|
|
508
|
+
"recentDebugLogs": "📝 Aktuelle Debug-Logs",
|
|
509
|
+
"noDebugLogsFound": "📭 Keine Debug-Logs gefunden.",
|
|
510
|
+
"debugLogsDirectoryNotFound": "📭 Debug-Logs-Verzeichnis nicht gefunden.",
|
|
511
|
+
"errorReadingDebugLogs": "❌ Fehler beim Lesen der Debug-Logs: {error}",
|
|
512
|
+
"debugLogSelectPrompt": "Log zum Anzeigen auswählen (1-{count}) oder 0 zum Zurückgehen: ",
|
|
513
|
+
"debugLogError": "Fehler beim Lesen der Debug-Logs:",
|
|
514
|
+
"missingRequiredFile": "❌ Fehlende erforderliche Datei/Verzeichnis: {file}",
|
|
515
|
+
"runInitializationFirst": "🔧 Bitte führen Sie zuerst die Initialisierung aus: node i18ntk-init.js",
|
|
516
|
+
"initializationCheckPassed": "✅ Initialisierungsprüfung bestanden",
|
|
517
|
+
"runningStep": "🔄 Führe aus: {stepName}",
|
|
518
|
+
"commandStep": " Befehl: {command}",
|
|
519
|
+
"stepCompleted": "✅ {stepName} abgeschlossen",
|
|
520
|
+
"stepCompletedWithDuration": "✅ {stepName} in {duration}ms abgeschlossen",
|
|
521
|
+
"stepFailed": "❌ {stepName} fehlgeschlagen: {error}",
|
|
522
|
+
"stepFailedWithDetails": "❌ {stepName} fehlgeschlagen:\n Fehler: {error}",
|
|
523
|
+
"requiredStepFailed": "🛑 Erforderlicher Schritt fehlgeschlagen. Ausführung wird gestoppt.",
|
|
524
|
+
"optionalStepFailed": "⚠️ Optionaler Schritt fehlgeschlagen. Wird fortgesetzt...",
|
|
525
|
+
"startingAutoRunWorkflow": "🚀 Starte Auto-Run-Workflow",
|
|
526
|
+
"workflowIncludes": "📋 Workflow umfasst {stepCount} Schritte:",
|
|
527
|
+
"stepListItem": " {index}. {stepName} {required}",
|
|
528
|
+
"startingExecution": "⏱️ Starte Ausführung...",
|
|
529
|
+
"workflowStopped": "🛑 Workflow aufgrund eines fehlgeschlagenen erforderlichen Schritts gestoppt.",
|
|
530
|
+
"workflowCompleted": "🎉 Workflow abgeschlossen!",
|
|
531
|
+
"runningSelectedSteps": "🎯 Führe ausgewählte Schritte aus",
|
|
532
|
+
"invalidStepNumber": "❌ Ungültige Schrittnummer: {stepNum}",
|
|
533
|
+
"executionReport": "📊 AUSFÜHRUNGSBERICHT",
|
|
534
|
+
"successfulSteps": "✅ Erfolgreich: {successful}",
|
|
535
|
+
"failedSteps": "❌ Fehlgeschlagen: {failed}",
|
|
536
|
+
"requiredFailedSteps": "🔴 Erforderlich fehlgeschlagen: {requiredFailed}",
|
|
537
|
+
"stepDetails": "📋 Schrittdetails:",
|
|
538
|
+
"stepResult": " {status} {required} {step}{duration}",
|
|
539
|
+
"stepError": " Fehler: {error}",
|
|
540
|
+
"reportSaved": "💾 Bericht gespeichert unter: {reportPath}",
|
|
541
|
+
"overallStatus": "📊 Gesamtstatus: {status}",
|
|
542
|
+
"customSettingsConfiguration": "🔧 Benutzerdefinierte Einstellungskonfiguration",
|
|
543
|
+
"pressEnterForDefaults": "Drücken Sie Enter für Standardwerte oder geben Sie neue Werte ein:",
|
|
544
|
+
"settingsUpdatedSuccessfully": "✅ Einstellungen erfolgreich aktualisiert!",
|
|
545
|
+
"errorConfiguringSettings": "❌ Fehler beim Konfigurieren der Einstellungen: {error}",
|
|
546
|
+
"autoRunScriptTitle": "🤖 I18N Auto-Run-Skript",
|
|
547
|
+
"usageInstructions": "Verwendung:",
|
|
548
|
+
"runAllSteps": " node auto-run.js # Alle Schritte ausführen",
|
|
549
|
+
"configureFirst": " node auto-run.js --config # Einstellungen zuerst konfigurieren",
|
|
550
|
+
"runSpecificSteps": " node auto-run.js --steps 1,2,3 # Bestimmte Schritte ausführen",
|
|
551
|
+
"showHelp": " node auto-run.js --help # Diese Hilfe anzeigen",
|
|
552
|
+
"availableSteps": "Verfügbare Schritte:",
|
|
553
|
+
"stepListHelp": " {index}. {stepName} {required}",
|
|
554
|
+
"examplesTitle": "Beispiele:",
|
|
555
|
+
"configurationComplete": "🚀 Konfiguration abgeschlossen! Sie können jetzt den Auto-Runner ausführen mit:",
|
|
556
|
+
"runAutoRunner": " node auto-run.js",
|
|
557
|
+
"configurationFailed": "❌ Konfiguration fehlgeschlagen: {error}",
|
|
558
|
+
"noValidStepNumbers": "❌ Keine gültigen Schrittnummern angegeben",
|
|
559
|
+
"autoRunFailed": "❌ Auto-Run fehlgeschlagen: {error}",
|
|
560
|
+
"stepRunning": "🔄 Führe Schritt aus: {stepName}",
|
|
561
|
+
"selectOptionPrompt": "Wählen Sie eine Option (0-13): ",
|
|
562
|
+
"selectDebugToolPrompt": "Debug-Tool auswählen (0-6): ",
|
|
563
|
+
"pressEnterToContinue": "📝 Drücken Sie Enter zum Fortfahren...",
|
|
564
|
+
"selectLogPrompt": "Log zum Anzeigen auswählen (1-{count}) oder 0 zum Zurückgehen: "
|
|
565
|
+
},
|
|
566
|
+
"help": {
|
|
567
|
+
"usage": "\nVerwendung:",
|
|
568
|
+
"interactiveMode": " npm run i18ntk:manage # Interaktiver Modus",
|
|
569
|
+
"initProject": " npm run i18ntk:manage -- --command=init # Projekt initialisieren",
|
|
570
|
+
"analyzeTranslations": " npm run i18ntk:manage -- --command=analyze # Übersetzungen analysieren",
|
|
571
|
+
"validateTranslations": " npm run i18ntk:manage -- --command=validate # Übersetzungen validieren",
|
|
572
|
+
"checkUsage": " npm run i18ntk:manage -- --command=usage # Verwendung prüfen",
|
|
573
|
+
"showHelp": " npm run i18ntk:manage -- --help # Diese Hilfe anzeigen",
|
|
574
|
+
"availableCommands": "\nVerfügbare Befehle:",
|
|
575
|
+
"initCommand": " init - I18n-Struktur initialisieren",
|
|
576
|
+
"analyzeCommand": " analyze - Übersetzungsvollständigkeit analysieren",
|
|
577
|
+
"validateCommand": " validate - Übersetzungsdateien validieren",
|
|
578
|
+
"usageCommand": " usage - Übersetzungsschlüssel-Verwendung prüfen",
|
|
579
|
+
"sizingCommand": " sizing - Größenanalyse durchführen",
|
|
580
|
+
"completeCommand": " complete - Fehlende Übersetzungen vervollständigen",
|
|
581
|
+
"summaryCommand": " summary - Zusammenfassungsbericht erstellen",
|
|
582
|
+
"debugCommand": "debug - Debug-Analyse ausführen"
|
|
583
|
+
},
|
|
584
|
+
"complete": {
|
|
585
|
+
"nextStep1": "1. Nutzungsanalyse prüfen:",
|
|
586
|
+
"nextStep2": "2. Übersetzungen validieren:",
|
|
587
|
+
"nextStep3": "3. Vollständigkeit analysieren:",
|
|
588
|
+
"andMore": "... und {count} weitere"
|
|
589
|
+
},
|
|
590
|
+
"usage": {
|
|
591
|
+
"analysisCompletedSuccessfully": "✅ Nutzungsanalyse erfolgreich abgeschlossen",
|
|
592
|
+
"analysisFailedError": "❌ Nutzungsanalyse fehlgeschlagen:",
|
|
593
|
+
"detectedSourceDirectory": "🔍 Erkanntes Quellverzeichnis:",
|
|
594
|
+
"detectedI18nDirectory": "🔍 Erkanntes i18n-Verzeichnis:",
|
|
595
|
+
"foundTranslationFiles": "🔍 {count} Übersetzungsdateien gefunden",
|
|
596
|
+
"invalidPattern": "Ungültiges Muster:",
|
|
597
|
+
"patternMatchLimitReached": "Muster-Match-Limit erreicht für Datei:",
|
|
598
|
+
"patternExecutionFailed": "Musterausführung fehlgeschlagen für",
|
|
599
|
+
"failedToExtractKeys": "Fehler beim Extrahieren von Schlüsseln aus",
|
|
600
|
+
"failedToProcessFile": "Fehler beim Verarbeiten der Datei",
|
|
601
|
+
"errorReadingI18nDirectory": "Fehler beim Lesen des i18n-Verzeichnisses:",
|
|
602
|
+
"notTranslatedKeysTotal": "🔄 NICHT_ÜBERSETZTE Schlüssel: {total}",
|
|
603
|
+
"reviewNotTranslatedKeys": "🔄 Überprüfen Sie {total} NICHT_ÜBERSETZTE Schlüssel in allen Sprachen",
|
|
604
|
+
"analysisCompletedSuccessfullySimple": "\n✅ Analyse erfolgreich abgeschlossen",
|
|
605
|
+
"analysisFailedResult": "\n❌ Analyse fehlgeschlagen:",
|
|
606
|
+
"analysisFailedGeneral": "\n❌ Analyse fehlgeschlagen:",
|
|
607
|
+
"title": "I18N NUTZUNGSANALYSEBERICHT",
|
|
608
|
+
"generatedAt": "Erstellt am: {timestamp}",
|
|
609
|
+
"sourceDirectory": "Quellverzeichnis: {sourceDir}",
|
|
610
|
+
"i18nDirectory": "I18n-Verzeichnis: {i18nDir}",
|
|
611
|
+
"sourceFilesScanned": "Gescannte Quelldateien: {count}",
|
|
612
|
+
"translationFilesFound": "Gefundene Übersetzungsdateien: {count}",
|
|
613
|
+
"availableKeys": "Verfügbare Übersetzungsschlüssel: {count}",
|
|
614
|
+
"usedKeys": "Verwendete Übersetzungsschlüssel: {count}",
|
|
615
|
+
"dynamicKeys": "Erkannte dynamische Schlüssel: {count}",
|
|
616
|
+
"unusedKeys": "Unbenutzte Übersetzungsschlüssel: {count}",
|
|
617
|
+
"missingKeys": "Fehlende Übersetzungsschlüssel: {count}",
|
|
618
|
+
"notTranslatedKeys": "NICHT_ÜBERSETZTE Schlüssel: {count}",
|
|
619
|
+
"translationCompleteness": "ÜBERSETZUNGSVOLLSTÄNDIGKEIT",
|
|
620
|
+
"translationFilesDiscovered": "ENTDECKTE ÜBERSETZUNGSDATEIEN",
|
|
621
|
+
"unusedKeysSection": "UNBENUTZTE ÜBERSETZUNGSSCHLÜSSEL",
|
|
622
|
+
"unusedKeysDescription": "Diese Schlüssel existieren in Übersetzungsdateien, werden aber nicht im Quellcode verwendet:",
|
|
623
|
+
"missingKeysSection": "FEHLENDE ÜBERSETZUNGSSCHLÜSSEL",
|
|
624
|
+
"missingKeysDescription": "Diese Schlüssel werden im Quellcode verwendet, fehlen aber in den Übersetzungsdateien:",
|
|
625
|
+
"dynamicKeysSection": "DYNAMISCHE ÜBERSETZUNGSSCHLÜSSEL",
|
|
626
|
+
"dynamicKeysDescription": "Diese Schlüssel werden dynamisch generiert und benötigen möglicherweise manuelle Überprüfung:",
|
|
627
|
+
"fileUsageBreakdown": "DATEINUTZUNGSAUFSCHLÜSSELUNG",
|
|
628
|
+
"fileUsageDescription": "Übersetzungsschlüssel-Nutzung nach Quelldatei:",
|
|
629
|
+
"reportSavedTo": "📄 Bericht gespeichert unter: {reportPath}",
|
|
630
|
+
"failedToSaveReport": "❌ Bericht konnte nicht gespeichert werden: {error}",
|
|
631
|
+
"analysisFailed": "❌ Nutzungsanalyse fehlgeschlagen",
|
|
632
|
+
"unusedKeysCount": "❌ Unbenutzte Schlüssel: {count}",
|
|
633
|
+
"missingKeysCount": "⚠️ Fehlende Schlüssel: {count}",
|
|
634
|
+
"translationCompletenessTitle": "🌍 Übersetzungsvollständigkeit:",
|
|
635
|
+
"languageCompletenessStats": " {language}: {completeness}% vollständig ({translated}/{total})"
|
|
636
|
+
}
|
|
637
|
+
}
|