i18ntk 3.1.2 → 3.3.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 +94 -23
- package/README.md +29 -23
- package/SECURITY.md +19 -5
- package/main/i18ntk-complete.js +120 -49
- package/main/i18ntk-translate.js +25 -1
- package/main/manage/index.js +0 -2
- package/main/manage/managers/InteractiveMenu.js +4 -0
- package/main/manage/services/FileManagementService.js +14 -11
- package/package.json +5 -3
- package/runtime/enhanced.d.ts +1 -1
- package/runtime/i18ntk.d.ts +2 -11
- package/ui-locales/de.json +1389 -1359
- package/ui-locales/es.json +1503 -1473
- package/ui-locales/fr.json +1626 -1596
- package/ui-locales/ja.json +1595 -1565
- package/ui-locales/ru.json +1638 -1608
- package/ui-locales/zh.json +1613 -1583
- package/utils/admin-auth.js +6 -6
- package/utils/config-manager.js +6 -3
- package/utils/translate/api.js +172 -41
- package/utils/translate/safe-network.js +280 -0
- package/utils/translate/traverse.js +14 -25
package/ui-locales/de.json
CHANGED
|
@@ -1,357 +1,357 @@
|
|
|
1
1
|
{
|
|
2
2
|
"meta": {
|
|
3
3
|
"version": "3.1.2",
|
|
4
|
-
"updated": "2026
|
|
4
|
+
"updated": "07.05.2026"
|
|
5
5
|
},
|
|
6
6
|
"common": {
|
|
7
7
|
"welcome": "Willkommen",
|
|
8
8
|
"hello": "Hallo",
|
|
9
9
|
"goodbye": "Auf Wiedersehen",
|
|
10
10
|
"yes": "Ja",
|
|
11
|
-
"no": "
|
|
11
|
+
"no": "NEIN",
|
|
12
12
|
"save": "Speichern",
|
|
13
|
-
"cancel": "
|
|
13
|
+
"cancel": "Stornieren",
|
|
14
14
|
"delete": "Löschen",
|
|
15
15
|
"edit": "Bearbeiten",
|
|
16
16
|
"loading": "Laden...",
|
|
17
|
-
"offlineTitle": "
|
|
18
|
-
"offlineMessage": "Sie
|
|
19
|
-
"tryReconnect": "
|
|
17
|
+
"offlineTitle": "Du bist offline",
|
|
18
|
+
"offlineMessage": "Bitte überprüfen Sie Ihre Internetverbindung",
|
|
19
|
+
"tryReconnect": "Versuchen Sie, die Verbindung wiederherzustellen",
|
|
20
20
|
"logout": "Abmelden",
|
|
21
|
-
"login": "
|
|
22
|
-
"amount": "
|
|
21
|
+
"login": "Login",
|
|
22
|
+
"amount": "Menge",
|
|
23
23
|
"success": "Erfolg",
|
|
24
24
|
"error": "Fehler",
|
|
25
25
|
"warning": "Warnung",
|
|
26
|
-
"info": "
|
|
27
|
-
"debug": "
|
|
26
|
+
"info": "Info:",
|
|
27
|
+
"debug": "Debuggen",
|
|
28
28
|
"progress": "Fortschritt:",
|
|
29
|
-
"remaining": "
|
|
29
|
+
"remaining": "Übrig:",
|
|
30
30
|
"total": "Gesamt:",
|
|
31
31
|
"completed": "7. Erfolgreich abgeschlossen!",
|
|
32
|
-
"missing": "
|
|
32
|
+
"missing": "Fehlen",
|
|
33
33
|
"partial": "Teilweise",
|
|
34
|
-
"sameAsSource": "
|
|
35
|
-
"formatMismatch": "
|
|
36
|
-
"typeMismatch": "
|
|
37
|
-
"structureMismatch": "
|
|
34
|
+
"sameAsSource": "Gleich wie Quelle:",
|
|
35
|
+
"formatMismatch": "Formatkonflikt:",
|
|
36
|
+
"typeMismatch": "Typkonflikt:",
|
|
37
|
+
"structureMismatch": "Strukturinkongruenz:",
|
|
38
38
|
"invalidOption": "Ungültige Option",
|
|
39
|
-
"separator": "
|
|
39
|
+
"separator": "===============================================",
|
|
40
40
|
"initializationFailed": "❌ Initialisierung fehlgeschlagen: {error}",
|
|
41
|
-
"stackTrace": "
|
|
42
|
-
"pressEnterToContinue": "Drücken Sie
|
|
43
|
-
"pressEnterToReturn": "Drücken Sie
|
|
44
|
-
"stepCompleted": "Schritt '{stepName}'
|
|
41
|
+
"stackTrace": "Stacktrace: {stack}",
|
|
42
|
+
"pressEnterToContinue": "Drücken Sie die Eingabetaste, um fortzufahren...",
|
|
43
|
+
"pressEnterToReturn": "Drücken Sie die Eingabetaste, um zum Hauptmenü zurückzukehren...",
|
|
44
|
+
"stepCompleted": "Schritt '{stepName}' vollendet.",
|
|
45
45
|
"stepFailed": "Schritt '{stepName}' fehlgeschlagen.",
|
|
46
|
-
"runningStep": "
|
|
46
|
+
"runningStep": "Laufschritt: {stepName}",
|
|
47
47
|
"command": "Befehl: {command}",
|
|
48
48
|
"startingWorkflow": "Workflow wird gestartet...",
|
|
49
49
|
"workflowCompleted": "Workflow abgeschlossen.",
|
|
50
|
-
"checkReports": "
|
|
50
|
+
"checkReports": "Weitere Informationen finden Sie in den Berichten.",
|
|
51
51
|
"errorExecutingCommand": "Fehler beim Ausführen des Befehls: {error}",
|
|
52
52
|
"genericError": "❌ Fehler: {error}",
|
|
53
53
|
"errors": {
|
|
54
54
|
"errors": "Fehler:",
|
|
55
55
|
"genericError": "❌ Fehler: {error}",
|
|
56
56
|
"initializationFailed": "❌ Initialisierung fehlgeschlagen: {error}",
|
|
57
|
-
"initializationCancelled": "
|
|
57
|
+
"initializationCancelled": "❌ Initialisierung vom Benutzer abgebrochen.",
|
|
58
58
|
"translationKeyNotFound": "Übersetzungsschlüssel nicht gefunden: {key}",
|
|
59
59
|
"sourceDirectoryNotFound": "Quellverzeichnis nicht gefunden: {directory}",
|
|
60
|
-
"configLoadingFailed": "
|
|
60
|
+
"configLoadingFailed": "Das Laden der Konfiguration ist fehlgeschlagen",
|
|
61
61
|
"invalidSourceDirectory": "Ungültiges Quellverzeichnis: {directory}",
|
|
62
|
-
"securityViolation": "Sicherheitsverletzung
|
|
63
|
-
"authenticationFailed": "Authentifizierung fehlgeschlagen",
|
|
64
|
-
"sourceEqualsI18nWarn": "⚠️
|
|
62
|
+
"securityViolation": "Sicherheitsverletzung festgestellt",
|
|
63
|
+
"authenticationFailed": "Die Authentifizierung ist fehlgeschlagen",
|
|
64
|
+
"sourceEqualsI18nWarn": "⚠️ sourceDir entspricht i18nDir ({sourceDir}). Zurückfallen auf {fallback} zum Scannen von Quellen."
|
|
65
65
|
},
|
|
66
|
-
"errorGeneratingStatusSummary": "Fehler beim
|
|
66
|
+
"errorGeneratingStatusSummary": "Fehler beim Generieren der Statuszusammenfassung: {error}",
|
|
67
67
|
"errorRunningDebugTool": "Fehler beim Ausführen des Debug-Tools '{displayName}': {error}",
|
|
68
68
|
"errorReadingDebugLogs": "Fehler beim Lesen der Debug-Protokolle: {error}",
|
|
69
69
|
"errorAnalyzingLogFile": "Fehler beim Analysieren der Protokolldatei: {error}",
|
|
70
|
-
"errorAnalyzingTranslationKeys": "Fehler
|
|
71
|
-
"errorAnalyzingTranslationCompleteness": "Fehler
|
|
72
|
-
"analyzingTranslationCompleteness": "
|
|
73
|
-
"i18nDirectoryNotFound": "⚠️
|
|
74
|
-
"translationCompletenessAnalysisFailed": "⚠️
|
|
75
|
-
"failedToAnalyzeLanguage": "❌
|
|
70
|
+
"errorAnalyzingTranslationKeys": "Fehler bei der Analyse der Übersetzungsschlüssel: {error}",
|
|
71
|
+
"errorAnalyzingTranslationCompleteness": "Fehler bei der Analyse der Vollständigkeit der Übersetzung: {error}",
|
|
72
|
+
"analyzingTranslationCompleteness": "Analyse der Vollständigkeit der Übersetzung in allen Sprachen ...",
|
|
73
|
+
"i18nDirectoryNotFound": "⚠️ i18n-Verzeichnis nicht gefunden: {i18nDir}",
|
|
74
|
+
"translationCompletenessAnalysisFailed": "⚠️ Die Vollständigkeitsanalyse der Übersetzung ist fehlgeschlagen: {error}",
|
|
75
|
+
"failedToAnalyzeLanguage": "❌ Die Sprache konnte nicht analysiert werden {language}: {error}",
|
|
76
76
|
"errorReadingI18nDirectory": "❌ Fehler beim Lesen des i18n-Verzeichnisses:",
|
|
77
|
-
"languageCompletenessTitle": "📈
|
|
77
|
+
"languageCompletenessTitle": "📈 VOLLSTÄNDIGKEIT DER ÜBERSETZUNG NACH SPRACHE",
|
|
78
78
|
"errorAnalyzingTranslationFormat": "Fehler beim Analysieren des Übersetzungsformats: {error}",
|
|
79
79
|
"errorAnalyzingTranslationType": "Fehler beim Analysieren des Übersetzungstyps: {error}",
|
|
80
|
-
"errorAnalyzingTranslationStructure": "Fehler
|
|
81
|
-
"errorAnalyzingTranslationFormatMismatch": "Fehler
|
|
82
|
-
"errorAnalyzingTranslationTypeMismatch": "Fehler
|
|
83
|
-
"errorAnalyzingTranslationStructureMismatch": "Fehler
|
|
84
|
-
"errorAnalyzingTranslationSameAsSource": "Fehler
|
|
85
|
-
"title": "
|
|
80
|
+
"errorAnalyzingTranslationStructure": "Fehler bei der Analyse der Übersetzungsstruktur: {error}",
|
|
81
|
+
"errorAnalyzingTranslationFormatMismatch": "Fehler bei der Analyse der Nichtübereinstimmung des Übersetzungsformats: {error}",
|
|
82
|
+
"errorAnalyzingTranslationTypeMismatch": "Fehler bei der Analyse der Nichtübereinstimmung des Übersetzungstyps: {error}",
|
|
83
|
+
"errorAnalyzingTranslationStructureMismatch": "Fehler bei der Analyse der Nichtübereinstimmung der Übersetzungsstruktur: {error}",
|
|
84
|
+
"errorAnalyzingTranslationSameAsSource": "Fehler bei der Analyse der mit der Quelle identischen Übersetzung: {error}",
|
|
85
|
+
"title": "Status",
|
|
86
86
|
"nextStep1": "1. Nutzungsanalyse prüfen:",
|
|
87
87
|
"nextStep2": "2. Übersetzungen validieren:",
|
|
88
88
|
"nextStep3": "3. Vollständigkeit analysieren:",
|
|
89
|
-
"nextStep4": "4.
|
|
90
|
-
"nextStep5": "5.
|
|
91
|
-
"nextStep6": "6. Übersetzungen überprüfen und
|
|
92
|
-
"generating": "
|
|
93
|
-
"review": "Übersetzungen
|
|
94
|
-
"finalizing": "
|
|
95
|
-
"finalized": "Erfolgreich
|
|
89
|
+
"nextStep4": "4. Vervollständigen Sie fehlende Übersetzungen:",
|
|
90
|
+
"nextStep5": "5. Zusammenfassenden Bericht erstellen:",
|
|
91
|
+
"nextStep6": "6. Übersetzungen überprüfen und abschließen:",
|
|
92
|
+
"generating": "Zusammenfassender Bericht wird erstellt...",
|
|
93
|
+
"review": "Übersetzungen überprüfen...",
|
|
94
|
+
"finalizing": "Finalisierung der Übersetzungen...",
|
|
95
|
+
"finalized": "Erfolgreich abgeschlossen!",
|
|
96
96
|
"warnings": "Warnungen:",
|
|
97
|
-
"completedKeys": "
|
|
97
|
+
"completedKeys": "Ausgefüllte Schlüssel:",
|
|
98
98
|
"missingKeys": "Fehlende Schlüssel:",
|
|
99
|
-
"partialKeys": "
|
|
100
|
-
"home": "
|
|
99
|
+
"partialKeys": "Teilschlüssel:",
|
|
100
|
+
"home": "Heim",
|
|
101
101
|
"settings": "Einstellungen",
|
|
102
|
-
"startingSettings": "🎛️
|
|
102
|
+
"startingSettings": "🎛️ Einstellungs-CLI starten...",
|
|
103
103
|
"confirm": "Bestätigen",
|
|
104
104
|
"errorExiting": "Fehler beim Beenden."
|
|
105
105
|
},
|
|
106
106
|
"errors": {
|
|
107
107
|
"invalidOption": "❌ Ungültige Option: {option}. Bitte versuchen Sie es erneut.",
|
|
108
|
-
"readlineClosed": "
|
|
109
|
-
"noPackageJson": "Keine package.json gefunden.
|
|
110
|
-
"noI18nDir": "
|
|
111
|
-
"noI18nConfig": "
|
|
108
|
+
"readlineClosed": "Der Eingabestream ist geschlossen; läuft im nicht-interaktiven Modus.",
|
|
109
|
+
"noPackageJson": "Keine package.json gefunden. Das i18n-Framework kann nicht automatisch erkannt werden.",
|
|
110
|
+
"noI18nDir": "Im Projektstammverzeichnis wurde kein i18n-Verzeichnis gefunden.",
|
|
111
|
+
"noI18nConfig": "Im Projektstammverzeichnis wurde keine i18n-Konfigurationsdatei gefunden.",
|
|
112
112
|
"errorReadingDebugLogs": "Fehler beim Lesen der Debug-Protokolle: {error}"
|
|
113
113
|
},
|
|
114
114
|
"scanner": {
|
|
115
|
-
"help_message": "I18n
|
|
115
|
+
"help_message": "Verwendung des I18n-Textscanners: Knoten i18ntk-scanner.js [Optionen] Optionen: --source-dir <dir> Zu scannendes Quellverzeichnis (Standard: ./src) --output <file> Ausgabedatei für Scanergebnisse (Standard: ./i18ntk-scanner-report.json) --framework <name> Framework zum Zielen (React, Vue, Angular, Vanilla) --patterns <patterns> Benutzerdefinierte Regex-Muster (durch Kommas getrennt) --include-tests Testdateien in den Scan einbeziehen --exclude-dirs <dirs> Auszuschließende Verzeichnisse (durch Kommas getrennt) --help Diese Hilfe anzeigen Beispiele: node i18ntk-scanner.js --source-dir=./src --framework=react node i18ntk-scanner.js --patterns 'console.log\\((.*?)\\)' --include-tests node i18ntk-scanner.js --output=./scan-results.json",
|
|
116
116
|
"help_options": {
|
|
117
|
-
"source_dir": "Quellverzeichnis
|
|
118
|
-
"output_dir": "
|
|
119
|
-
"framework": "Ziel-Framework (
|
|
120
|
-
"patterns": "Benutzerdefinierte Regex-Muster
|
|
121
|
-
"exclude": "
|
|
122
|
-
"output_report": "
|
|
123
|
-
"min_length": "
|
|
124
|
-
"max_length": "
|
|
125
|
-
"include_tests": "Testdateien in den
|
|
117
|
+
"source_dir": "Quellverzeichnis zum Scannen nach i18n-Problemen",
|
|
118
|
+
"output_dir": "Verzeichnis für Scanberichte und Ergebnisse",
|
|
119
|
+
"framework": "Ziel-Framework (React, Vue, Angular, Vanilla)",
|
|
120
|
+
"patterns": "Benutzerdefinierte Regex-Muster zur Texterkennung",
|
|
121
|
+
"exclude": "Dateimuster, die vom Scan ausgeschlossen werden sollen",
|
|
122
|
+
"output_report": "Erstellen Sie einen detaillierten Scanbericht",
|
|
123
|
+
"min_length": "Mindesttextlänge, die bei der Übersetzung berücksichtigt werden muss",
|
|
124
|
+
"max_length": "Maximale Textlänge, die bei der Übersetzung berücksichtigt werden soll",
|
|
125
|
+
"include_tests": "Beziehen Sie Testdateien in den Scanvorgang ein"
|
|
126
126
|
},
|
|
127
|
-
"starting": "🔍
|
|
128
|
-
"sourceDirectory": "📁
|
|
129
|
-
"frameworkDetected": "🎯 Framework
|
|
130
|
-
"scanningFiles": "📊
|
|
131
|
-
"foundTexts": "📝 {textCount}
|
|
132
|
-
"generatingReport": "📊
|
|
133
|
-
"reportSaved": "💾
|
|
134
|
-
"noTextsFound": "✅ Keine
|
|
127
|
+
"starting": "🔍 Textscanner für Framework starten: {framework}",
|
|
128
|
+
"sourceDirectory": "📁 Verzeichnis scannen: {sourceDir}",
|
|
129
|
+
"frameworkDetected": "🎯 Erkanntes Framework: {framework}",
|
|
130
|
+
"scanningFiles": "📊 Scannen {fileCount} Dateien...",
|
|
131
|
+
"foundTexts": "📝 Gefunden {textCount} Texte, die übersetzt werden müssen",
|
|
132
|
+
"generatingReport": "📊 Detaillierten Bericht erstellen...",
|
|
133
|
+
"reportSaved": "💾 Scanbericht gespeichert unter: {reportPath}",
|
|
134
|
+
"noTextsFound": "✅ Keine fest codierten englischen Texte gefunden",
|
|
135
135
|
"scanComplete": "🎉 Scan erfolgreich abgeschlossen!",
|
|
136
|
-
"analysisTitle": "🔍
|
|
136
|
+
"analysisTitle": "🔍 ÜBERSETZUNGS-SCAN-ANALYSE",
|
|
137
137
|
"fileSummary": "📄 {file}: {count} Texte gefunden",
|
|
138
|
-
"textLocation": "📍
|
|
139
|
-
"foundText": "{count}
|
|
138
|
+
"textLocation": "📍Linie {line}: {text}",
|
|
139
|
+
"foundText": "Gefunden {count} mögliche hartcodierte Textinstanzen",
|
|
140
140
|
"context": "📝 Kontext: {context}",
|
|
141
|
-
"severity": "⚠️
|
|
141
|
+
"severity": "⚠️ Schweregrad: {severity}",
|
|
142
142
|
"recommendation": "💡 Empfehlung: {recommendation}",
|
|
143
143
|
"welcome": {
|
|
144
|
-
"title": "🎯 Willkommen beim
|
|
145
|
-
"description": "Dieses Tool
|
|
144
|
+
"title": "🎯 Willkommen beim Textscanner!",
|
|
145
|
+
"description": "Dieses Tool durchsucht Ihren Quellcode nach hartcodiertem englischen Text, der möglicherweise übersetzt werden muss."
|
|
146
146
|
},
|
|
147
147
|
"frameworkPrompt": {
|
|
148
|
-
"title": "🎯 Framework
|
|
149
|
-
"available": "Verfügbare Frameworks:
|
|
150
|
-
"description": "Framework-Typ
|
|
148
|
+
"title": "🎯 Wählen Sie Framework aus",
|
|
149
|
+
"available": "Verfügbare Frameworks: React, Vue, Angular, Vanilla",
|
|
150
|
+
"description": "Geben Sie den Framework-Typ ein (oder drücken Sie die Eingabetaste für die automatische Erkennung):",
|
|
151
151
|
"input": "Rahmen:"
|
|
152
152
|
},
|
|
153
153
|
"directoryPrompt": {
|
|
154
|
-
"title": "📁 Quellverzeichnis
|
|
154
|
+
"title": "📁 Wählen Sie das Quellverzeichnis",
|
|
155
155
|
"current": "Aktuelles Verzeichnis: {dir}",
|
|
156
|
-
"description": "
|
|
156
|
+
"description": "Geben Sie das zu scannende Verzeichnis ein (oder drücken Sie die Eingabetaste, um das aktuelle Verzeichnis anzuzeigen):",
|
|
157
157
|
"input": "Verzeichnis:"
|
|
158
158
|
},
|
|
159
159
|
"options": {
|
|
160
|
-
"includeTests": "Testdateien
|
|
160
|
+
"includeTests": "Testdateien einbinden?",
|
|
161
161
|
"excludeDirs": "Auszuschließende Verzeichnisse (durch Kommas getrennt):",
|
|
162
|
-
"customPatterns": "Benutzerdefinierte Muster
|
|
162
|
+
"customPatterns": "Benutzerdefinierte Muster, nach denen gesucht werden soll (Regex):"
|
|
163
163
|
},
|
|
164
164
|
"reportGenerated": "Scanbericht generiert: {path}"
|
|
165
165
|
},
|
|
166
166
|
"fixer": {
|
|
167
|
-
"help_message": "I18n
|
|
168
|
-
"starting": "🚀
|
|
167
|
+
"help_message": "Verwendung des I18n-Übersetzungsfixers: node i18ntk-fixer.js [Optionen] Optionen: --source-dir <dir> Zu scannendes Quellverzeichnis (Standard: ./locales) --Sprachen <langs> Durch Kommas getrennte Liste der zu reparierenden Sprachen --markers <markers> Durch Kommas getrennte Markierungen, die als nicht übersetzt behandelt werden sollen --no-backup Automatische Backup-Erstellung überspringen --help Diese Hilfe anzeigen Beispiele: node i18ntk-fixer.js --sprachen de,fr node i18ntk-fixer.js --source-dir=./locales --markers NOT_TRANSLATED node i18ntk-fixer.js --no-backup",
|
|
168
|
+
"starting": "🚀 Übersetzungskorrektur für Sprachen starten: {languages}",
|
|
169
169
|
"sourceDirectory": "📁 Quellverzeichnis: {sourceDir}",
|
|
170
170
|
"sourceLanguage": "🔤 Quellsprache: {sourceLanguage}",
|
|
171
|
-
"markers": "🏷️
|
|
172
|
-
"scanningLanguage": "📊
|
|
173
|
-
"noLanguages": "❌ Keine Sprachen
|
|
174
|
-
"allComplete": "🎉 Alle Übersetzungen sind bereits
|
|
175
|
-
"fullReportSaved": "📊 Vollständiger Bericht gespeichert
|
|
176
|
-
"reviewReport": "Bitte
|
|
171
|
+
"markers": "🏷️ Zu reparierende Markierungen: {markers}",
|
|
172
|
+
"scanningLanguage": "📊 Scannen {language}...",
|
|
173
|
+
"noLanguages": "❌ Keine Sprachen zur Behebung angegeben.",
|
|
174
|
+
"allComplete": "🎉 Alle Übersetzungen sind bereits fertig!",
|
|
175
|
+
"fullReportSaved": "📊 Vollständiger Bericht gespeichert unter: {reportPath}",
|
|
176
|
+
"reviewReport": "Bitte lesen Sie den Bericht, bevor Sie fortfahren.",
|
|
177
177
|
"backupCreated": "💾 Backup erfolgreich erstellt.",
|
|
178
|
-
"applyingFixes": "🔄
|
|
178
|
+
"applyingFixes": "🔄 Korrekturen anwenden...",
|
|
179
179
|
"fixingComplete": "✅ Übersetzungskorrektur abgeschlossen!",
|
|
180
180
|
"operationCancelled": "❌ Vorgang vom Benutzer abgebrochen.",
|
|
181
|
-
"analysisTitle": "🔍
|
|
182
|
-
"analysisSeparator": "
|
|
183
|
-
"totalIssues": "
|
|
181
|
+
"analysisTitle": "🔍 ÜBERSETZUNGSBEHEBUNGSANALYSE",
|
|
182
|
+
"analysisSeparator": "===============================================",
|
|
183
|
+
"totalIssues": "Insgesamt gefundene Probleme: {totalIssues}",
|
|
184
184
|
"missingTranslations": "Fehlende Übersetzungen: {missing}",
|
|
185
|
-
"placeholderTranslations": "
|
|
185
|
+
"placeholderTranslations": "Platzhalterübersetzungen: {placeholder}",
|
|
186
186
|
"noIssues": "✅ Keine Probleme gefunden. Alle Übersetzungen sind vollständig.",
|
|
187
|
-
"detailedIssues": "📋
|
|
187
|
+
"detailedIssues": "📋 DETAILLIERTE PROBLEME:",
|
|
188
188
|
"detailedSeparator": "--------------------------------------------------",
|
|
189
189
|
"filePath": "📄 {file} → {path}",
|
|
190
190
|
"missingKey": "❌ FEHLT: {source} → {new}",
|
|
191
|
-
"placeholderKey": "⚠️
|
|
192
|
-
"moreIssues": "...
|
|
191
|
+
"placeholderKey": "⚠️ PLATZHALTER: „{target}\" → \"{new}\"",
|
|
192
|
+
"moreIssues": "... Und {count} weitere Probleme. Vollständige Details finden Sie in der Berichtsdatei.",
|
|
193
193
|
"confirmationTitle": "🤔 Möchten Sie mit diesen Korrekturen fortfahren?",
|
|
194
194
|
"confirmationOptions": "Optionen:",
|
|
195
|
-
"optionYes": "
|
|
196
|
-
"optionNo": "n
|
|
197
|
-
"optionShow": "
|
|
198
|
-
"choicePrompt": "Ihre Wahl (j/n/
|
|
199
|
-
"nonInteractiveMode": "⚡ Nicht-interaktiver Modus erkannt
|
|
200
|
-
"reportGenerated": "📊
|
|
195
|
+
"optionYes": "y – Ja, alle Korrekturen anwenden",
|
|
196
|
+
"optionNo": "n – Nein, Vorgang abbrechen",
|
|
197
|
+
"optionShow": "s – Detaillierte Probleme anzeigen",
|
|
198
|
+
"choicePrompt": "Ihre Wahl (j/n/s):",
|
|
199
|
+
"nonInteractiveMode": "⚡ Nicht-interaktiver Modus erkannt – Korrekturen automatisch anwenden ...",
|
|
200
|
+
"reportGenerated": "📊 Fixer-Bericht erstellt: {path}",
|
|
201
201
|
"summary": "Fixer-Zusammenfassung:",
|
|
202
202
|
"welcome": {
|
|
203
|
-
"title": "🎯 Willkommen beim
|
|
204
|
-
"description": "Dieses Tool hilft Ihnen,
|
|
203
|
+
"title": "🎯 Willkommen beim Translation Fixer!",
|
|
204
|
+
"description": "Dieses Tool hilft Ihnen, fehlerhafte Übersetzungen und Platzhalter in Ihren Gebietsschemadateien zu reparieren."
|
|
205
205
|
},
|
|
206
206
|
"markerPrompt": {
|
|
207
|
-
"title": "🏷️
|
|
208
|
-
"description": "Geben Sie die Markierungen ein, die nicht übersetzten Text
|
|
207
|
+
"title": "🏷️ Konfigurieren Sie Platzhaltermarkierungen",
|
|
208
|
+
"description": "Geben Sie die Markierungen ein, die auf nicht übersetzten Text hinweisen (durch Kommas getrennt):",
|
|
209
209
|
"currentDefaults": "Standardmarkierungen: {markers}",
|
|
210
|
-
"input": "Markierungen (oder
|
|
210
|
+
"input": "Markierungen (oder drücken Sie die Eingabetaste für Standardeinstellungen):"
|
|
211
211
|
},
|
|
212
212
|
"languagePrompt": {
|
|
213
|
-
"title": "🌍
|
|
213
|
+
"title": "🌍 Wählen Sie die zu reparierenden Sprachen aus",
|
|
214
214
|
"available": "Verfügbare Sprachen: {languages}",
|
|
215
|
-
"description": "Geben Sie die zu
|
|
215
|
+
"description": "Geben Sie die zu korrigierenden Sprachen ein (durch Kommas getrennt) oder drücken Sie die Eingabetaste für alle:",
|
|
216
216
|
"input": "Sprachen:",
|
|
217
|
-
"noLanguages": "
|
|
217
|
+
"noLanguages": "Es wurden keine Sprachen zum Korrigieren gefunden."
|
|
218
218
|
},
|
|
219
219
|
"directoryPrompt": {
|
|
220
220
|
"title": "📁 Verzeichnis auswählen",
|
|
221
221
|
"current": "Aktuelles Verzeichnis: {dir}",
|
|
222
|
-
"description": "Geben Sie das Verzeichnis
|
|
222
|
+
"description": "Geben Sie das Verzeichnis ein, das Ihre Gebietsschemadateien enthält (oder drücken Sie die Eingabetaste, um die aktuelle Datei anzuzeigen):",
|
|
223
223
|
"input": "Verzeichnis:"
|
|
224
224
|
},
|
|
225
225
|
"backupLocation": "Backup-Speicherort: {dir}",
|
|
226
226
|
"completed": "Reparatur abgeschlossen.",
|
|
227
|
-
"creatingBackup": "Backup
|
|
227
|
+
"creatingBackup": "Backup erstellen in {dir}...",
|
|
228
228
|
"dryRunMode": "Trockenlaufmodus: {mode}",
|
|
229
229
|
"error": "Fixer fehlgeschlagen: {error}",
|
|
230
|
-
"fixing": "{language}
|
|
231
|
-
"foundLanguages": "{count} Sprachen
|
|
232
|
-
"languageFixed": "{language}: {fixed}
|
|
230
|
+
"fixing": "Festsetzung {language}...",
|
|
231
|
+
"foundLanguages": "Gefunden {count} Sprachen: {languages}",
|
|
232
|
+
"languageFixed": "{language}: behoben {fixed} Taste(n), übersprungen {skipped}.",
|
|
233
233
|
"running": "Übersetzungsfixer wird ausgeführt...",
|
|
234
|
-
"totalFixed": "
|
|
234
|
+
"totalFixed": "Gesamtfest: {count}"
|
|
235
235
|
},
|
|
236
236
|
"autorun": {
|
|
237
237
|
"stepAnalyzeTranslations": "Übersetzungen analysieren",
|
|
238
|
-
"stepCompletedWithIcon": "✅
|
|
238
|
+
"stepCompletedWithIcon": "✅ Abgeschlossen: {stepName}",
|
|
239
239
|
"stepValidateTranslations": "Übersetzungen validieren",
|
|
240
|
-
"stepRunning": "Schritt
|
|
241
|
-
"separator": "
|
|
242
|
-
"stepFailed": "
|
|
243
|
-
"errorLabel": "Fehler
|
|
244
|
-
"autoRunScriptTitle": "Auto-Run-
|
|
245
|
-
"usageTitle": "Verwendung
|
|
246
|
-
"runAllSteps": "
|
|
247
|
-
"configureSettingsFirst": "
|
|
248
|
-
"runSpecificSteps": "
|
|
249
|
-
"showHelp": "
|
|
250
|
-
"examplesTitle": "Beispiele
|
|
251
|
-
"configExample": "
|
|
252
|
-
"stepsExample1": "
|
|
253
|
-
"stepsExample2": "
|
|
254
|
-
"customSettingsConfiguration": "Benutzerdefinierte Einstellungen
|
|
255
|
-
"availableSteps": "Verfügbare Schritte
|
|
256
|
-
"startingAutoRunWorkflow": "
|
|
257
|
-
"workflowIncludesSteps": "Workflow umfasst {count} Schritte:",
|
|
258
|
-
"missingRequiredFile": "
|
|
259
|
-
"workflowStopped": "Workflow gestoppt.",
|
|
260
|
-
"workflowCompleted": "
|
|
240
|
+
"stepRunning": "▶️ Schritt {stepNumber}/{totalSteps}: {stepName}",
|
|
241
|
+
"separator": "===============================================",
|
|
242
|
+
"stepFailed": "❌ Fehlgeschlagen: {stepName}",
|
|
243
|
+
"errorLabel": "Fehler",
|
|
244
|
+
"autoRunScriptTitle": "🧪 Auto-Run-Workflow",
|
|
245
|
+
"usageTitle": "Verwendung",
|
|
246
|
+
"runAllSteps": "Führen Sie Folgendes aus: Knoten i18ntk-autorun.js",
|
|
247
|
+
"configureSettingsFirst": "Konfiguration: i18ntk-config.json oder CLI-Flags",
|
|
248
|
+
"runSpecificSteps": "Verwenden Sie --steps=1,3 oder --list, um Schritte anzuzeigen",
|
|
249
|
+
"showHelp": "--help für weitere Informationen",
|
|
250
|
+
"examplesTitle": "Beispiele",
|
|
251
|
+
"configExample": "Knoten i18ntk-autorun.js --ui-sprache=zh",
|
|
252
|
+
"stepsExample1": "Knoten i18ntk-autorun.js --steps=analyze,validate",
|
|
253
|
+
"stepsExample2": "Knoten i18ntk-autorun.js --list",
|
|
254
|
+
"customSettingsConfiguration": "Benutzerdefinierte Autorun-Einstellungen",
|
|
255
|
+
"availableSteps": "Verfügbare Schritte",
|
|
256
|
+
"startingAutoRunWorkflow": "🚀 Autorun-Workflow starten...",
|
|
257
|
+
"workflowIncludesSteps": "Der Workflow umfasst {count} Schritte:",
|
|
258
|
+
"missingRequiredFile": "Fehlende erforderliche Datei: {file}",
|
|
259
|
+
"workflowStopped": "Der Workflow wurde aufgrund eines Fehlers gestoppt.",
|
|
260
|
+
"workflowCompleted": "🎉Arbeitsablauf abgeschlossen!",
|
|
261
261
|
"successfulSteps": "Erfolgreiche Schritte: {count}",
|
|
262
262
|
"failedSteps": "Fehlgeschlagene Schritte: {count}",
|
|
263
263
|
"stepInitializeProject": "Projekt initialisieren",
|
|
264
|
-
"stepCheckUsage": "
|
|
265
|
-
"stepGenerateSummary": "
|
|
266
|
-
"runInitializationFirst": "Bitte führen Sie zuerst die Initialisierung
|
|
267
|
-
"initializationCheckPassed": "Initialisierungsprüfung
|
|
268
|
-
"runningStep": "
|
|
264
|
+
"stepCheckUsage": "Überprüfen Sie die Schlüsselverwendung",
|
|
265
|
+
"stepGenerateSummary": "Zusammenfassenden Bericht erstellen",
|
|
266
|
+
"runInitializationFirst": "Bitte führen Sie zuerst die Initialisierung durch.",
|
|
267
|
+
"initializationCheckPassed": "Initialisierungsprüfung bestanden.",
|
|
268
|
+
"runningStep": "Laufschritt: {stepName}",
|
|
269
269
|
"commandLabel": "Befehl: {command}",
|
|
270
|
-
"stepCompletedWithTime": "Schritt '{stepName}' abgeschlossen in {duration}
|
|
271
|
-
"stepCompleted": "Schritt '{stepName}'
|
|
272
|
-
"stepFailedWithError": "Schritt '{stepName}'
|
|
273
|
-
"requiredStepFailed": "
|
|
274
|
-
"optionalStepFailed": "
|
|
270
|
+
"stepCompletedWithTime": "Schritt '{stepName}' abgeschlossen in {duration}MS.",
|
|
271
|
+
"stepCompleted": "Schritt '{stepName}' vollendet.",
|
|
272
|
+
"stepFailedWithError": "Schritt '{stepName}' ist mit folgendem Fehler fehlgeschlagen: {error}",
|
|
273
|
+
"requiredStepFailed": "Der erforderliche Schritt ist fehlgeschlagen. Stoppen des Workflows.",
|
|
274
|
+
"optionalStepFailed": "Der optionale Schritt ist fehlgeschlagen. Fortsetzung des Arbeitsablaufs.",
|
|
275
275
|
"stepRequired": "(Erforderlich)",
|
|
276
|
-
"stepOptional": "(
|
|
277
|
-
"startingExecution": "
|
|
278
|
-
"pressEnterToContinue": "Drücken Sie
|
|
279
|
-
"runningSelectedSteps": "Ausgewählte Schritte
|
|
280
|
-
"invalidStepNumber": "Ungültige
|
|
276
|
+
"stepOptional": "(Optional)",
|
|
277
|
+
"startingExecution": "Ausführung beginnt...",
|
|
278
|
+
"pressEnterToContinue": "Drücken Sie die Eingabetaste, um fortzufahren...",
|
|
279
|
+
"runningSelectedSteps": "Ausgewählte Schritte ausführen...",
|
|
280
|
+
"invalidStepNumber": "Ungültige Schrittnummer: {stepNum}",
|
|
281
281
|
"executionReport": "Ausführungsbericht:",
|
|
282
|
-
"requiredFailedSteps": "
|
|
282
|
+
"requiredFailedSteps": "Erforderliche Schritte fehlgeschlagen: {count}",
|
|
283
283
|
"stepDetails": "Schrittdetails:",
|
|
284
284
|
"reportSavedTo": "Bericht gespeichert unter: {path}",
|
|
285
|
-
"overallStatusSuccess": "
|
|
285
|
+
"overallStatusSuccess": "ERFOLG",
|
|
286
286
|
"overallStatusFailed": "FEHLGESCHLAGEN",
|
|
287
287
|
"overallStatus": "Gesamtstatus: {status}",
|
|
288
|
-
"pressEnterForDefaults": "Drücken Sie
|
|
289
|
-
"sourceDirPrompt": "Quellverzeichnis
|
|
288
|
+
"pressEnterForDefaults": "Drücken Sie die Eingabetaste, um die Standardeinstellungen für jede Eingabeaufforderung zu verwenden.",
|
|
289
|
+
"sourceDirPrompt": "Geben Sie das Quellverzeichnis ein (Standard: {default}):",
|
|
290
290
|
"sourceLangPrompt": "Quellsprache eingeben (Standard: {default}):",
|
|
291
|
-
"targetLangsPrompt": "Zielsprachen
|
|
292
|
-
"translationMarkerPrompt": "
|
|
293
|
-
"outputDirPrompt": "Ausgabeverzeichnis für Berichte
|
|
291
|
+
"targetLangsPrompt": "Geben Sie Zielsprachen ein (durch Kommas getrennt, Standard: {default}):",
|
|
292
|
+
"translationMarkerPrompt": "Übersetzungsmarkierung eingeben (Standard: {default}):",
|
|
293
|
+
"outputDirPrompt": "Geben Sie das Ausgabeverzeichnis für Berichte ein (Standard: {default}):",
|
|
294
294
|
"settingsUpdatedSuccessfully": "Einstellungen erfolgreich aktualisiert!",
|
|
295
|
-
"errorConfiguringSettings": "Fehler
|
|
295
|
+
"errorConfiguringSettings": "Fehler beim Konfigurieren der Einstellungen: {error}",
|
|
296
296
|
"configurationComplete": "Konfiguration abgeschlossen.",
|
|
297
|
-
"runAutoRunCommand": "Jetzt können Sie den
|
|
297
|
+
"runAutoRunCommand": "Jetzt können Sie den Autorun-Befehl ausführen.",
|
|
298
298
|
"configurationFailed": "Konfiguration fehlgeschlagen: {error}",
|
|
299
|
-
"noValidStepNumbers": "Keine gültigen
|
|
300
|
-
"autoRunFailed": "
|
|
301
|
-
"stepCompleteTranslations": "Übersetzungen
|
|
302
|
-
"stepAnalyzeSizing": "
|
|
299
|
+
"noValidStepNumbers": "Keine gültigen Schrittnummern angegeben.",
|
|
300
|
+
"autoRunFailed": "Autorun fehlgeschlagen: {error}",
|
|
301
|
+
"stepCompleteTranslations": "Vollständige Übersetzungen",
|
|
302
|
+
"stepAnalyzeSizing": "Analysieren Sie die Größe",
|
|
303
303
|
"stepCompletedIcon": "✅",
|
|
304
|
-
"stepRunningWithNumber": "[{stepNumber}/{totalSteps}] Schritt '{stepName}'
|
|
304
|
+
"stepRunningWithNumber": "[{stepNumber}/{totalSteps}] Schritt '{stepName}' läuft...",
|
|
305
305
|
"stepFailedIcon": "❌",
|
|
306
|
-
"translationLoadWarning": "Warnung: Konnte
|
|
307
|
-
"configReadError": "Fehler beim Lesen
|
|
306
|
+
"translationLoadWarning": "Warnung: Konnte nicht geladen werden {lang} Übersetzungen",
|
|
307
|
+
"configReadError": "Fehler beim Lesen {file}"
|
|
308
308
|
},
|
|
309
309
|
"analyze": {
|
|
310
|
-
"help_message": "I18n
|
|
310
|
+
"help_message": "Verwendung des I18n-Übersetzungsanalysators: Knoten i18ntk-analyze.js [Optionen] Optionen: --source-dir <dir> Zu scannendes Quellverzeichnis (Standard: ./src) --i18n-dir <dir> I18n-Verzeichnis (Standard: ./src/locales) --output-report Detaillierten Bericht erstellen --output-dir <dir> Ausgabeverzeichnis für Berichte (Standard: ./reports) --help Diese Hilfe anzeigen Beispiele: node i18ntk-analyze.js --output-report node i18ntk-analyze.js --source-dir=./app --i18n-dir=./locales node i18ntk-analyze.js --output-dir=./analysis --output-report",
|
|
311
311
|
"source_directory": "📁 Quellverzeichnis: {sourceDir}",
|
|
312
312
|
"i18n_directory": "🌐 I18n-Verzeichnis: {i18nDir}",
|
|
313
313
|
"loading_translation_files": "📋 Übersetzungsdateien werden geladen...",
|
|
314
314
|
"sourceDirectoryLabel": "📁 Quellverzeichnis: {sourceDir}",
|
|
315
|
-
"sourceLanguageLabel": "🌍
|
|
315
|
+
"sourceLanguageLabel": "🌍 Ausgangssprache: {sourceLanguage}",
|
|
316
316
|
"strictModeLabel": "⚙️ Strenger Modus: {mode}",
|
|
317
|
-
"found_translation_files_count": "✅ {count} Übersetzungsdateien
|
|
318
|
-
"analyzing_translations": "🔍 Übersetzungen
|
|
317
|
+
"found_translation_files_count": "✅ Gefunden {count} Übersetzungsdateien",
|
|
318
|
+
"analyzing_translations": "🔍 Übersetzungen analysieren...",
|
|
319
319
|
"analysis_completed_successfully": "🎉 Analyse erfolgreich abgeschlossen!",
|
|
320
|
-
"analysis_results": "📊
|
|
320
|
+
"analysis_results": "📊 ANALYSE-ERGEBNISSE",
|
|
321
321
|
"language_analysis_stats": "{language}: {translatedKeys}/{totalKeys} ({percentage}% übersetzt)",
|
|
322
|
-
"sample_missing_keys": "Beispiel
|
|
322
|
+
"sample_missing_keys": "Beispiel für fehlende Schlüssel:",
|
|
323
323
|
"missing_key": "- {key}",
|
|
324
|
-
"and_more_missing": "...
|
|
325
|
-
"sample_unused_keys": "Beispiel
|
|
324
|
+
"and_more_missing": "...Und {count} mehr.",
|
|
325
|
+
"sample_unused_keys": "Beispiel für unbenutzte Schlüssel:",
|
|
326
326
|
"unused_key": "- {key}",
|
|
327
|
-
"and_more_unused": "...
|
|
327
|
+
"and_more_unused": "...Und {count} mehr.",
|
|
328
328
|
"recommendations": "📋 EMPFEHLUNGEN",
|
|
329
|
-
"add_missing_translations": "💡
|
|
330
|
-
"remove_unused_translations": "💡
|
|
329
|
+
"add_missing_translations": "💡 Fügen Sie fehlende Übersetzungen hinzu, um die Abdeckung zu verbessern.",
|
|
330
|
+
"remove_unused_translations": "💡 Entfernen Sie nicht verwendete Übersetzungen, um Ihr Projekt sauber zu halten.",
|
|
331
331
|
"next_steps": "📋 NÄCHSTE SCHRITTE",
|
|
332
332
|
"review_analysis_results": "1. Überprüfen Sie die Analyseergebnisse in der Konsole oder im generierten Bericht.",
|
|
333
|
-
"run_with_output_report": "2.
|
|
334
|
-
"add_or_remove_translations": "3.
|
|
335
|
-
"rerun_analysis": "4. Analyse erneut
|
|
333
|
+
"run_with_output_report": "2. Führen Sie „--output-report“ aus, um einen detaillierten Bericht zu erhalten.",
|
|
334
|
+
"add_or_remove_translations": "3. Fügen Sie fehlende Übersetzungen hinzu oder entfernen Sie nicht verwendete.",
|
|
335
|
+
"rerun_analysis": "4. Führen Sie die Analyse erneut durch, um Verbesserungen zu überprüfen.",
|
|
336
336
|
"analysis_summary": "📊 ANALYSE-ZUSAMMENFASSUNG",
|
|
337
337
|
"source_files_scanned": "Gescannte Quelldateien: {fileCount}",
|
|
338
338
|
"translation_files_checked": "Überprüfte Übersetzungsdateien: {translationFileCount}",
|
|
339
|
-
"total_keys": "
|
|
339
|
+
"total_keys": "Gesamtschlüssel: {totalKeys}",
|
|
340
340
|
"translated_keys": "Übersetzte Schlüssel: {translatedKeys}",
|
|
341
341
|
"missing_keys": "Fehlende Schlüssel: {missingKeys}",
|
|
342
|
-
"unused_keys": "
|
|
343
|
-
"translation_coverage": "
|
|
344
|
-
"analysis_passed_for_language": "✅ Analyse bestanden
|
|
345
|
-
"analysis_failed_for_language": "❌ Analyse fehlgeschlagen für {language} ({missingKeys}
|
|
346
|
-
"starting": "🔍 Übersetzungsanalyse
|
|
347
|
-
"foundLanguages": "📋 {count}
|
|
348
|
-
"analyzing": "🔄
|
|
349
|
-
"reportTitle": "📊
|
|
342
|
+
"unused_keys": "Unbenutzte Schlüssel: {unusedKeys}",
|
|
343
|
+
"translation_coverage": "Übersetzungsumfang: {coverage}%",
|
|
344
|
+
"analysis_passed_for_language": "✅ Analyse bestanden {language}",
|
|
345
|
+
"analysis_failed_for_language": "❌ Analyse fehlgeschlagen für {language} ({missingKeys} fehlen, {unusedKeys} unbenutzt)",
|
|
346
|
+
"starting": "🔍 Übersetzungsanalyse starten...",
|
|
347
|
+
"foundLanguages": "📋 Gefunden {count} Zu analysierende Sprachen: {languages}",
|
|
348
|
+
"analyzing": "🔄 Analysieren {language}...",
|
|
349
|
+
"reportTitle": "📊 ÜBERSETZUNGSANALYSEBERICHT",
|
|
350
350
|
"generated": "Erstellt: {timestamp}",
|
|
351
351
|
"status": "Status: {translated}/{total} Schlüssel ({percentage}% übersetzt)",
|
|
352
352
|
"filesAnalyzed": "Analysierte Dateien: {analyzed}/{total}",
|
|
353
|
-
"keysNeedingTranslation": "
|
|
354
|
-
"fileBreakdown": "📋
|
|
353
|
+
"keysNeedingTranslation": "Schlüssel, die übersetzt werden müssen: {count}",
|
|
354
|
+
"fileBreakdown": "📋 DATEIAUFTEILUNG",
|
|
355
355
|
"error": "Fehler",
|
|
356
356
|
"completed": "✅ Analyse abgeschlossen für {language}",
|
|
357
357
|
"progress": "📊 Gesamtfortschritt: {translated}/{total} Sprachen verarbeitet",
|
|
@@ -361,140 +361,140 @@
|
|
|
361
361
|
"statusFileMissing": "❌ Übersetzungsdatei fehlt",
|
|
362
362
|
"sourceKeys": "📊 Quellschlüssel: {count}",
|
|
363
363
|
"translation": "📊 Übersetzung: {translated}/{total} ({percentage}%)",
|
|
364
|
-
"structure": "🗂️
|
|
364
|
+
"structure": "🗂️ Struktur: {status}",
|
|
365
365
|
"consistent": "Konsistent",
|
|
366
366
|
"inconsistent": "Inkonsistent",
|
|
367
367
|
"missingKeys": "Fehlende Schlüssel: {count}",
|
|
368
368
|
"extraKeys": "Zusätzliche Schlüssel: {count}",
|
|
369
|
-
"issues": "⚠️
|
|
369
|
+
"issues": "⚠️ Gefundene Probleme: {count}",
|
|
370
370
|
"issueType": {
|
|
371
371
|
"not_translated": "Nicht übersetzt: {count}",
|
|
372
372
|
"empty_value": "Leere Werte: {count}",
|
|
373
|
-
"partial_translation": "
|
|
374
|
-
"format_mismatch": "
|
|
375
|
-
"type_mismatch": "
|
|
376
|
-
"structure_mismatch": "
|
|
377
|
-
"same_as_source": "
|
|
373
|
+
"partial_translation": "Teilübersetzungen: {count}",
|
|
374
|
+
"format_mismatch": "Formatkonflikte: {count}",
|
|
375
|
+
"type_mismatch": "Typkonflikte: {count}",
|
|
376
|
+
"structure_mismatch": "Strukturinkongruenzen: {count}",
|
|
377
|
+
"same_as_source": "Gleich wie Quelle: {count}"
|
|
378
378
|
},
|
|
379
|
-
"keysToTranslate": "📋
|
|
379
|
+
"keysToTranslate": "📋 SCHLÜSSEL ZUM ÜBERSETZEN",
|
|
380
380
|
"key": "Schlüssel",
|
|
381
381
|
"english": "Englisch",
|
|
382
|
-
"needsTranslation": "
|
|
383
|
-
"andMoreKeys": "...
|
|
384
|
-
"noLanguages": "⚠️
|
|
382
|
+
"needsTranslation": "BRAUCHT ÜBERSETZUNG",
|
|
383
|
+
"andMoreKeys": "...Und {count} mehr Schlüssel.",
|
|
384
|
+
"noLanguages": "⚠️ Keine Zielsprachen gefunden.",
|
|
385
385
|
"languageStats": "{language}: {percentage}% vollständig ({translated}/{total} Schlüssel)",
|
|
386
|
-
"invalidReportFilePath": "Ungültiger
|
|
387
|
-
"failedToWriteReportFile": "
|
|
386
|
+
"invalidReportFilePath": "Ungültiger Berichtsdateipfad",
|
|
387
|
+
"failedToWriteReportFile": "Fehler beim sicheren Schreiben der Berichtsdatei"
|
|
388
388
|
},
|
|
389
389
|
"complete": {
|
|
390
390
|
"configLoadedSuccessfully": "Konfiguration erfolgreich geladen",
|
|
391
|
-
"configLoadingFailed": "Laden der Konfiguration fehlgeschlagen",
|
|
392
|
-
"sourceLanguageNotFound": "
|
|
393
|
-
"couldNotParseTarget": "
|
|
394
|
-
"couldNotParseSource": "
|
|
395
|
-
"reportGenerated": "Bericht
|
|
396
|
-
"generateReportPrompt": "
|
|
397
|
-
"title": "🌍 I18NTK-Ü
|
|
398
|
-
"separator": "
|
|
399
|
-
"sourceDir": "📁
|
|
391
|
+
"configLoadingFailed": "Das Laden der Konfiguration ist fehlgeschlagen",
|
|
392
|
+
"sourceLanguageNotFound": "Quellsprachenverzeichnis nicht gefunden: {sourceLanguage}",
|
|
393
|
+
"couldNotParseTarget": "Zieldatei konnte nicht geparst werden: {file}",
|
|
394
|
+
"couldNotParseSource": "Quelldatei konnte nicht geparst werden: {file}",
|
|
395
|
+
"reportGenerated": "Bericht erstellt: {path}",
|
|
396
|
+
"generateReportPrompt": "Möchten Sie einen Bericht erstellen?",
|
|
397
|
+
"title": "🌍 ABSCHLUSS DER I18NTK-ÜBERSETZUNG",
|
|
398
|
+
"separator": "=========================================================",
|
|
399
|
+
"sourceDir": "📁 Quellverzeichnis: {sourceDir}",
|
|
400
400
|
"sourceLanguage": "🌐 Ausgangssprache: {sourceLanguage}",
|
|
401
|
-
"dryRunMode": "🧪
|
|
401
|
+
"dryRunMode": "🧪 Trockenlaufmodus – es werden keine Änderungen vorgenommen",
|
|
402
402
|
"languages": "🌍 Verfügbare Sprachen: {languages}",
|
|
403
403
|
"addingMissingKeys": "➕ Fehlende Schlüssel zu Übersetzungsdateien hinzufügen...",
|
|
404
|
-
"processing": "🔄
|
|
405
|
-
"addedKeys": "✅ {count} fehlende Schlüssel
|
|
406
|
-
"noChangesNeeded": "✅ Keine Änderungen für {language}
|
|
407
|
-
"summaryTitle": "📊
|
|
404
|
+
"processing": "🔄Verarbeitung {language}...",
|
|
405
|
+
"addedKeys": "✅ Hinzugefügt {count} fehlende Schlüssel",
|
|
406
|
+
"noChangesNeeded": "✅ Keine Änderungen erforderlich für {language}",
|
|
407
|
+
"summaryTitle": "📊 ABSCHLUSSZUSAMMENFASSUNG",
|
|
408
408
|
"totalChanges": "📝 Gesamtänderungen: {totalChanges}",
|
|
409
409
|
"languagesProcessed": "🌍 Verarbeitete Sprachen: {languagesProcessed}",
|
|
410
|
-
"missingKeysAdded": "➕
|
|
410
|
+
"missingKeysAdded": "➕ Fehlende Schlüssel hinzugefügt: {missingKeysAdded}",
|
|
411
411
|
"nextStepsTitle": "📋 NÄCHSTE SCHRITTE",
|
|
412
|
-
"nextStep1": "1. Nutzungsanalyse
|
|
413
|
-
"nextStep2": "
|
|
412
|
+
"nextStep1": "1. Führen Sie eine Nutzungsanalyse durch:",
|
|
413
|
+
"nextStep2": "Knoten i18ntk-usage.js --output-report",
|
|
414
414
|
"nextStep3": "2. Übersetzungen validieren:",
|
|
415
|
-
"nextStep4": "
|
|
415
|
+
"nextStep4": "Knoten i18ntk-validate.js",
|
|
416
416
|
"nextStep5": "3. Muster analysieren:",
|
|
417
|
-
"nextStep6": "
|
|
417
|
+
"nextStep6": "Knoten i18ntk-analyze.js",
|
|
418
418
|
"allKeysAvailable": "🎉 Alle Übersetzungsschlüssel sind jetzt verfügbar!",
|
|
419
|
-
"runWithoutDryRun": "💡 Ohne --dry-run ausführen, um Änderungen
|
|
420
|
-
"deletingOldReport": "🗑️
|
|
421
|
-
"generatingFreshAnalysis": "📊
|
|
422
|
-
"couldNotGenerate": "❌ Nutzungsanalyse konnte nicht erstellt werden",
|
|
423
|
-
"reportNotFound": "📋 Nutzungsbericht nicht gefunden.
|
|
424
|
-
"foundMissingKeys": "📋 {count}
|
|
425
|
-
"couldNotParse": "❌ Nutzungsbericht konnte nicht analysiert werden.
|
|
426
|
-
"errorDuringCompletion": "❌ Fehler
|
|
419
|
+
"runWithoutDryRun": "💡 Ohne --dry-run ausführen, um Änderungen zu übernehmen",
|
|
420
|
+
"deletingOldReport": "🗑️Alten Bericht löschen...",
|
|
421
|
+
"generatingFreshAnalysis": "📊 Generieren neuer Nutzungsanalysen ...",
|
|
422
|
+
"couldNotGenerate": "❌ Die Nutzungsanalyse konnte nicht erstellt werden",
|
|
423
|
+
"reportNotFound": "📋 Nutzungsbericht nicht gefunden. Gemeinsame Schlüssel verwenden...",
|
|
424
|
+
"foundMissingKeys": "📋 Gefunden {count} Fehlende Schlüssel aus der Nutzungsanalyse",
|
|
425
|
+
"couldNotParse": "❌ Nutzungsbericht konnte nicht analysiert werden. Gemeinsame Schlüssel verwenden...",
|
|
426
|
+
"errorDuringCompletion": "❌ Fehler beim Abschluss: {error}",
|
|
427
427
|
"fatalError": "❌ Schwerwiegender Fehler: {error}",
|
|
428
|
-
"configurationValidationFailed": "Konfigurationsvalidierung fehlgeschlagen:
|
|
428
|
+
"configurationValidationFailed": "Konfigurationsvalidierung fehlgeschlagen: Erforderliche Felder fehlen"
|
|
429
429
|
},
|
|
430
430
|
"sizing": {
|
|
431
|
-
"separator": "
|
|
432
|
-
"lineSeparator": "
|
|
431
|
+
"separator": "===========================================================================",
|
|
432
|
+
"lineSeparator": "---------------------------------------------------------------------------------",
|
|
433
433
|
"analysisStats": "{stats}",
|
|
434
434
|
"sourceDirectoryLabel": "📁 Quellverzeichnis: {sourceDir}",
|
|
435
|
-
"sourceLanguageLabel": "🌍
|
|
435
|
+
"sourceLanguageLabel": "🌍 Ausgangssprache: {sourceLanguage}",
|
|
436
436
|
"strictModeLabel": "⚙️ Strenger Modus: {mode}",
|
|
437
437
|
"invalidSourceDirectoryError": "Ungültiger Quellverzeichnispfad: {sourceDir}",
|
|
438
438
|
"sourceDirectoryNotFoundError": "Quellverzeichnis nicht gefunden: {sourceDir}",
|
|
439
|
-
"invalidOutputDirectoryError": "Ungültiger
|
|
440
|
-
"invalidReportFileError": "Ungültiger
|
|
441
|
-
"problematic_keys": "Problematische Schlüssel:",
|
|
439
|
+
"invalidOutputDirectoryError": "Ungültiger Pfad zum Ausgabeverzeichnis: {outputDir}",
|
|
440
|
+
"invalidReportFileError": "Ungültiger Berichtsdateipfad",
|
|
441
|
+
"problematic_keys": "Problematische Schlüssel: {problematicKeys}",
|
|
442
442
|
"problematicKeysLabel": "Problematische Schlüssel: {problematicKeys}",
|
|
443
443
|
"long_translations": "Lange Übersetzungen: {longTranslations}",
|
|
444
|
-
"failedToSaveReportError": "Bericht konnte nicht sicher gespeichert werden",
|
|
445
|
-
"invalidCsvFileError": "
|
|
446
|
-
"failedToSaveCsvError": "CSV-Bericht konnte nicht sicher gespeichert werden",
|
|
444
|
+
"failedToSaveReportError": "Der Bericht konnte nicht sicher gespeichert werden",
|
|
445
|
+
"invalidCsvFileError": "Ungültiger CSV-Dateipfad",
|
|
446
|
+
"failedToSaveCsvError": "Der CSV-Bericht konnte nicht sicher gespeichert werden",
|
|
447
447
|
"fatalError": "❌ Größenanalyse fehlgeschlagen: {error}",
|
|
448
|
-
"starting_i18n_sizing_analysis": "
|
|
448
|
+
"starting_i18n_sizing_analysis": "i18n-Größenanalyse wird gestartet...",
|
|
449
449
|
"source_directory": "Quellverzeichnis: {sourceDir}",
|
|
450
450
|
"found_languages": "Gefundene Sprachen: {languages}",
|
|
451
|
-
"analyzing_file_sizes": "
|
|
452
|
-
"analyzing_translation_content": "
|
|
453
|
-
"generating_size_comparisons": "
|
|
454
|
-
"no_languages_found_for_comparison": "Keine Sprachen
|
|
455
|
-
"sizing_analysis_results": "I18n
|
|
451
|
+
"analyzing_file_sizes": "Dateigrößen werden analysiert...",
|
|
452
|
+
"analyzing_translation_content": "Übersetzungsinhalte werden analysiert...",
|
|
453
|
+
"generating_size_comparisons": "Größenvergleiche werden erstellt...",
|
|
454
|
+
"no_languages_found_for_comparison": "Keine Sprachen zum Vergleich gefunden",
|
|
455
|
+
"sizing_analysis_results": "Ergebnisse der I18n-Größenanalyse",
|
|
456
456
|
"file_sizes_title": "Dateigrößen",
|
|
457
|
-
"file_sizes_header": "
|
|
458
|
-
"file_size_row": "{lang}
|
|
459
|
-
"language_statistics_title": "
|
|
460
|
-
"language_stats_header": "
|
|
461
|
-
"language_stats_row": "{lang}
|
|
457
|
+
"file_sizes_header": "Sprachgröße (KB) Zeilen Zeichen",
|
|
458
|
+
"file_size_row": "{lang} {sizeKB} {lines} {characters}",
|
|
459
|
+
"language_statistics_title": "Sprachstatistik",
|
|
460
|
+
"language_stats_header": "Sprachtasten Zeichen Durchschnittliche Länge Maximale Länge Leer Lang",
|
|
461
|
+
"language_stats_row": "{lang} {totalKeys} {totalCharacters} {averageKeyLength} {maxKeyLength} {emptyKeys} {longKeys}",
|
|
462
462
|
"size_variations_title": "Größenvariationen",
|
|
463
|
-
"size_variations_header": "
|
|
464
|
-
"size_variation_row": "{lang}
|
|
463
|
+
"size_variations_header": "Sprachzeichenunterschied % Unterschied Problematisch",
|
|
464
|
+
"size_variation_row": "{lang} {characterDifference} {percentageDifference}% {problematic}",
|
|
465
465
|
"problematic_yes": "Ja",
|
|
466
|
-
"problematic_no": "
|
|
466
|
+
"problematic_no": "NEIN",
|
|
467
467
|
"recommendations_title": "Empfehlungen",
|
|
468
|
-
"recommendation_item": "
|
|
468
|
+
"recommendation_item": "{index}. {recommendation}",
|
|
469
469
|
"problematic_key_detail": "{index}. Schlüssel: '{key}' - Variationen: {variations}",
|
|
470
|
-
"generating_detailed_report": "
|
|
471
|
-
"keysHaveSignificantSizeVariations": "Schlüssel
|
|
472
|
-
"longTranslationsDetected": "${lang} hat ${data.longKeys}
|
|
470
|
+
"generating_detailed_report": "Detaillierter Bericht wird erstellt...",
|
|
471
|
+
"keysHaveSignificantSizeVariations": "Schlüssel weisen erhebliche Größenunterschiede auf",
|
|
472
|
+
"longTranslationsDetected": "${lang} hat ${data.longKeys}-Übersetzungen, die länger als 100 Zeichen sind – erwägen Sie, sie aufzuschlüsseln",
|
|
473
473
|
"longer": "länger",
|
|
474
474
|
"shorter": "kürzer",
|
|
475
|
-
"review_translations": "Überprüfung
|
|
476
|
-
"report_saved_to": "Bericht gespeichert
|
|
477
|
-
"considerReviewingTranslations": "Überprüfung
|
|
475
|
+
"review_translations": "Erwägen Sie eine Überprüfung {lang} Übersetzungen - das sind sie {percentageDifference}% {comparison} als die Grundlinie",
|
|
476
|
+
"report_saved_to": "Bericht gespeichert unter: {reportPath}",
|
|
477
|
+
"considerReviewingTranslations": "Erwägen Sie eine Überprüfung ${lang} Übersetzungen – sie sind ${data.percentageDifference}% länger als die Grundlinie",
|
|
478
478
|
"csv_report_saved_to": "CSV-Bericht gespeichert unter: {csvPath}",
|
|
479
|
-
"human_report_saved": "
|
|
480
|
-
"folder_summary_title": "
|
|
481
|
-
"folder_summary_table_header": "
|
|
482
|
-
"folder_summary_row": "{lang}
|
|
479
|
+
"human_report_saved": "Lesbarer Bericht gespeichert: {reportPath}",
|
|
480
|
+
"folder_summary_title": "Ordnerübersicht",
|
|
481
|
+
"folder_summary_table_header": "Sprachgröße (KB) Schlüssel Durchschn. Länge Gesamtzeichen",
|
|
482
|
+
"folder_summary_row": "{lang} {sizeKB} {totalKeys} {avgLength} {totalChars}",
|
|
483
483
|
"language_comparison_title": "Sprachvergleich",
|
|
484
484
|
"language_comparison_row": "{lang}: {diff} Zeichen ({percent}%) {status}",
|
|
485
|
-
"summary_stats": "📊 Zusammenfassung: {totalLanguages} Sprachen, {totalKeys} Schlüssel
|
|
486
|
-
"detailedKeysDescription": "
|
|
487
|
-
"too_many_keys_warning": "⚠️ Zu viele
|
|
485
|
+
"summary_stats": "📊 Zusammenfassung: {totalLanguages} Sprachen, {totalKeys} Schlüssel – Berichte gespeichert unter {reportPath}",
|
|
486
|
+
"detailedKeysDescription": "Zeigen Sie eine detaillierte Analyse auf Schlüsselebene in der Konsole an",
|
|
487
|
+
"too_many_keys_warning": "⚠️ Zu viele Tasten, um in der Konsole angezeigt zu werden – überprüfen Sie die detaillierte Berichtsdatei für eine vollständige Analyse",
|
|
488
488
|
"no_translation_files_found": "Keine Übersetzungsdateien gefunden",
|
|
489
|
-
"analysis_completed": "Analyse abgeschlossen in {duration}
|
|
489
|
+
"analysis_completed": "Analyse abgeschlossen in {duration}MS",
|
|
490
490
|
"analysis_failed": "Analyse fehlgeschlagen: {errorMessage}",
|
|
491
|
-
"starting_analysis": "
|
|
492
|
-
"found_files": "
|
|
493
|
-
"failed_to_parse_language_error": "
|
|
491
|
+
"starting_analysis": "Analyse wird gestartet...",
|
|
492
|
+
"found_files": "Gefunden {count} Dateien",
|
|
493
|
+
"failed_to_parse_language_error": "Fehler beim Parsen {language} Übersetzungen: {errorMessage}",
|
|
494
494
|
"recommendations": {
|
|
495
|
-
"keys_have_significant_size_variations": "Schlüssel
|
|
496
|
-
"consider_reviewing_translations": "Überprüfung
|
|
497
|
-
"long_translations_detected": "{lang} hat {longKeys} Übersetzungen länger als {threshold}
|
|
495
|
+
"keys_have_significant_size_variations": "Schlüssel weisen erhebliche Größenunterschiede auf",
|
|
496
|
+
"consider_reviewing_translations": "Erwägen Sie eine Überprüfung {lang} Übersetzungen - das sind sie {percentageDifference}% {comparison} als die Grundlinie",
|
|
497
|
+
"long_translations_detected": "{lang} hat {longKeys} Übersetzungen länger als {threshold} Charaktere – erwägen Sie, sie aufzuschlüsseln"
|
|
498
498
|
},
|
|
499
499
|
"detailed_key_analysis_title": "Detaillierte Schlüsselanalyse",
|
|
500
500
|
"key_analysis_detail": "{lang}: {length} Zeichen ({status}) - {translation}",
|
|
@@ -504,117 +504,117 @@
|
|
|
504
504
|
"status_ok": "OK"
|
|
505
505
|
},
|
|
506
506
|
"usage": {
|
|
507
|
-
"help_message": "I18n-
|
|
507
|
+
"help_message": "Verwendung des I18n-Nutzungsanalysators: Knoten i18ntk-usage.js [Optionen] Optionen: --source-dir <dir> Zu scannendes Quellverzeichnis (Standard: ./src) --i18n-dir <dir> I18n-Verzeichnis (Standard: ./src/locales) --output-report Detaillierten Bericht erstellen --output-dir <dir> Ausgabeverzeichnis für Berichte (Standard: ./reports) --help Diese Hilfe anzeigen Beispiele: node i18ntk-usage.js --output-report node i18ntk-usage.js --source-dir=./app --i18n-dir=./locales node i18ntk-usage.js --output-dir=./analysis --output-report",
|
|
508
508
|
"source_directory_thissourcedir": "📁 Quellverzeichnis: {sourceDir}",
|
|
509
|
-
"translationCompletenessTitle": "🌍
|
|
509
|
+
"translationCompletenessTitle": "🌍 Vollständigkeit der Übersetzung:",
|
|
510
510
|
"i18n_directory_thisi18ndir": "🌐 I18n-Verzeichnis: {i18nDir}",
|
|
511
|
-
"failed_to_parse_filename_error": "⚠️
|
|
512
|
-
"analyzing_source_files": "🔍 Quelldateien
|
|
513
|
-
"found_files_in_source": "📂 {numFiles} Dateien im Quellverzeichnis
|
|
514
|
-
"found_thisusedkeyssize_unique_": "🎯 {usedKeysSize}
|
|
515
|
-
"total_key_usages_totalkeysfoun": "📊
|
|
511
|
+
"failed_to_parse_filename_error": "⚠️ Fehler beim Parsen {fileName}: {errorMessage}",
|
|
512
|
+
"analyzing_source_files": "🔍 Quelldateien analysieren...",
|
|
513
|
+
"found_files_in_source": "📂 Gefunden {numFiles} Dateien im Quellverzeichnis",
|
|
514
|
+
"found_thisusedkeyssize_unique_": "🎯 Gefunden {usedKeysSize} einzigartige gebrauchte Schlüssel",
|
|
515
|
+
"total_key_usages_totalkeysfoun": "📊 Schlüsselverwendungen insgesamt: {totalKeysFound}",
|
|
516
516
|
"loading_available_translation_": "📋 Verfügbare Übersetzungsschlüssel werden geladen...",
|
|
517
|
-
"found_thisavailablekeyssize_av": "✅ {availableKeysSize} verfügbare Schlüssel
|
|
518
|
-
"foundTranslationFiles": "✅ {count} Übersetzungsdateien
|
|
519
|
-
"errorReadingI18nDirectory": "⚠️
|
|
520
|
-
"pressEnterToReturnToMenu": "📝 Drücken Sie
|
|
521
|
-
"notTranslatedKeysTotal": "⚠️
|
|
522
|
-
"noSourceFilesFound": "⚠️
|
|
523
|
-
"reviewNotTranslatedKeys": "💡
|
|
517
|
+
"found_thisavailablekeyssize_av": "✅ Gefunden {availableKeysSize} verfügbare Schlüssel",
|
|
518
|
+
"foundTranslationFiles": "✅ Gefunden {count} Übersetzungsdateien",
|
|
519
|
+
"errorReadingI18nDirectory": "⚠️ Fehler beim Lesen des i18n-Verzeichnisses: {error}",
|
|
520
|
+
"pressEnterToReturnToMenu": "📝 Drücken Sie die Eingabetaste, um zum Hauptmenü zurückzukehren...",
|
|
521
|
+
"notTranslatedKeysTotal": "⚠️ Nicht übersetzte Schlüssel: {total}",
|
|
522
|
+
"noSourceFilesFound": "⚠️ Keine Quelldateien im Quellverzeichnis gefunden.",
|
|
523
|
+
"reviewNotTranslatedKeys": "💡 Überprüfen Sie nicht übersetzte Schlüssel",
|
|
524
524
|
"analysisCompletedSuccessfully": "🎉 Analyse erfolgreich abgeschlossen!",
|
|
525
525
|
"detectedSourceDirectory": "Erkanntes Quellverzeichnis: {sourceDir}",
|
|
526
|
-
"detectedI18nDirectory": "Erkanntes
|
|
526
|
+
"detectedI18nDirectory": "Erkanntes i18n-Verzeichnis: {i18nDir}",
|
|
527
527
|
"fileInfo": "📄 {namespace}: {keys} Schlüssel",
|
|
528
|
-
"failedToAnalyzeUsage": "❌
|
|
529
|
-
"failedToAnalyzeFile": "❌
|
|
530
|
-
"failedToExtractKeys": "
|
|
531
|
-
"analysisFailedError": "❌ Analyse fehlgeschlagen:",
|
|
528
|
+
"failedToAnalyzeUsage": "❌ Analyse der Nutzung fehlgeschlagen: {error}",
|
|
529
|
+
"failedToAnalyzeFile": "❌ Datei konnte nicht analysiert werden: {error}",
|
|
530
|
+
"failedToExtractKeys": "❌ Schlüssel konnten nicht extrahiert werden {filePath}: {error}",
|
|
531
|
+
"analysisFailedError": "❌ Analyse fehlgeschlagen: {error}",
|
|
532
532
|
"analyzerInitialized": "Analysator initialisiert",
|
|
533
|
-
"analyzerInitFailed": "
|
|
534
|
-
"argsParsed": "Argumente
|
|
533
|
+
"analyzerInitFailed": "Die Initialisierung des Analysators ist fehlgeschlagen: {error}",
|
|
534
|
+
"argsParsed": "Argumente analysiert",
|
|
535
535
|
"processedFiles": "Verarbeitet {processedFiles} von {totalFiles} Dateien.",
|
|
536
|
-
"argsParseFailed": "
|
|
537
|
-
"translationDiscoveryError": "Übersetzungserkennung
|
|
538
|
-
"fileTraversalError": "
|
|
539
|
-
"sourceEqualsI18nWarn": "⚠️
|
|
540
|
-
"i18nEqualsSourceWarn": "⚠️
|
|
541
|
-
"usageAnalysisFailed": "Nutzungsanalyse fehlgeschlagen: {error}",
|
|
542
|
-
"translationFileParseError": "⚠️
|
|
543
|
-
"translationKeysLoadError": "⚠️
|
|
536
|
+
"argsParseFailed": "Das Parsen des Arguments ist fehlgeschlagen: {error}",
|
|
537
|
+
"translationDiscoveryError": "Fehler bei der Übersetzungserkennung: {error}",
|
|
538
|
+
"fileTraversalError": "Dateidurchlauffehler: {error}",
|
|
539
|
+
"sourceEqualsI18nWarn": "⚠️ Quellverzeichnis und i18n-Verzeichnis sind identisch. Dies kann zu Problemen bei der Analyse führen.",
|
|
540
|
+
"i18nEqualsSourceWarn": "⚠️ I18n-Verzeichnis und Quellverzeichnis sind identisch. Dies kann zu Problemen bei der Analyse führen.",
|
|
541
|
+
"usageAnalysisFailed": "⚠️ Nutzungsanalyse fehlgeschlagen: {error}",
|
|
542
|
+
"translationFileParseError": "⚠️ Fehler beim Parsen der Übersetzungsdatei: {error}",
|
|
543
|
+
"translationKeysLoadError": "⚠️Fehler beim Laden der Übersetzungsschlüssel: {error}",
|
|
544
544
|
"languageCompletenessStats": "🌐 {language}: {translated}/{total} ({completeness}% übersetzt)",
|
|
545
|
-
"missingKeysCount": "⚠️
|
|
546
|
-
"analyzingTranslationCompleteness": "
|
|
547
|
-
"unusedKeysCount": "
|
|
545
|
+
"missingKeysCount": "⚠️ Fehlende Schlüssel: {count}",
|
|
546
|
+
"analyzingTranslationCompleteness": "Vollständigkeit der Übersetzung analysieren...",
|
|
547
|
+
"unusedKeysCount": "Unbenutzte Schlüssel: {count}",
|
|
548
548
|
"usedKeysCount": "Verwendete Schlüssel: {count}",
|
|
549
549
|
"availableKeysCount": "Verfügbare Schlüssel: {count}",
|
|
550
550
|
"analysisResults": "Analyseergebnisse:",
|
|
551
|
-
"i18nDirectoryNotFound": "⚠️
|
|
552
|
-
"sourceDirectoryNotFound": "⚠️
|
|
551
|
+
"i18nDirectoryNotFound": "⚠️ I18n-Verzeichnis nicht gefunden. Bitte überprüfen Sie den Pfad.",
|
|
552
|
+
"sourceDirectoryNotFound": "⚠️ Quellverzeichnis nicht gefunden: {dir}",
|
|
553
553
|
"checkUsage": {
|
|
554
554
|
"title": "🔍 I18NTK-NUTZUNGSANALYSE",
|
|
555
|
-
"analyzing_source_files": "🔍 Quelldateien
|
|
555
|
+
"analyzing_source_files": "🔍 Quelldateien analysieren...",
|
|
556
556
|
"source_directory_thissourcedir": "📁 Quellverzeichnis: {sourceDir}",
|
|
557
|
-
"i18n_directory_thisi18ndir": "
|
|
558
|
-
"found_files_in_source": "
|
|
559
|
-
"no_source_files_found": "⚠️
|
|
560
|
-
"processedFiles": "Verarbeitet {processedFiles} von {totalFiles} Dateien
|
|
561
|
-
"failedToProcessFile": "❌ Fehler beim Verarbeiten
|
|
562
|
-
"found_thisusedkeyssize_unique_": "
|
|
563
|
-
"total_key_usages_totalkeysfoun": "📊
|
|
564
|
-
"loading_available_translation_": "
|
|
565
|
-
"found_thisavailablekeyssize_av": "✅ {availableKeysSize} verfügbare Schlüssel
|
|
566
|
-
"message": "
|
|
567
|
-
"usage_analysis_results": "📊
|
|
568
|
-
"source_files_scanned_thisfileu": "
|
|
569
|
-
"available_translation_keys_thi": "Verfügbare Übersetzungsschlüssel: {availableKeysSize}",
|
|
570
|
-
"used_translation_keys_thisused": "Verwendete Übersetzungsschlüssel: {usedKeysSize}",
|
|
571
|
-
"dynamic_keys_detected_dynamick": "Dynamische Schlüssel erkannt: {dynamicKeysLength}",
|
|
572
|
-
"unused_keys_unusedkeyslength": "
|
|
573
|
-
"missing_keys_missingkeyslength": "Fehlende Schlüssel: {missingKeysLength}",
|
|
574
|
-
"translation_completeness_title": "
|
|
575
|
-
"language_completeness_stats": "{language}: {translated}/{total} ({
|
|
576
|
-
"n_sample_unused_keys": "
|
|
577
|
-
"key": "
|
|
578
|
-
"and_unusedkeyslength_5_more": "...
|
|
579
|
-
"n_sample_missing_keys": "❌
|
|
580
|
-
"and_missingkeyslength_5_more": "...
|
|
581
|
-
"n_generating_detailed_report": "📊
|
|
582
|
-
"report_saved_reportpath": "📄
|
|
583
|
-
"n_recommendations": "
|
|
584
|
-
"consider_removing_unused_trans": "
|
|
585
|
-
"add_missing_translation_keys_t": "➕ Fügen Sie fehlende Übersetzungsschlüssel hinzu, um Konsistenz zu gewährleisten",
|
|
557
|
+
"i18n_directory_thisi18ndir": "📁 i18n-Verzeichnis: {i18nDir}",
|
|
558
|
+
"found_files_in_source": "✅ Gefunden {numFiles} Dateien im Quellverzeichnis",
|
|
559
|
+
"no_source_files_found": "⚠️ Im angegebenen Verzeichnis wurden keine Quelldateien gefunden",
|
|
560
|
+
"processedFiles": "📊 Verarbeitet {processedFiles} von {totalFiles} Dateien",
|
|
561
|
+
"failedToProcessFile": "❌ Fehler beim Verarbeiten",
|
|
562
|
+
"found_thisusedkeyssize_unique_": "🔍Gefunden {usedKeysSize} einzigartige gebrauchte Schlüssel",
|
|
563
|
+
"total_key_usages_totalkeysfoun": "📊 Schlüsselverwendungen insgesamt: {totalKeysFound}",
|
|
564
|
+
"loading_available_translation_": "📂 Verfügbare Übersetzungsschlüssel werden geladen...",
|
|
565
|
+
"found_thisavailablekeyssize_av": "✅ Gefunden {availableKeysSize} verfügbare Schlüssel",
|
|
566
|
+
"message": "Analysieren Sie die Verwendung von Übersetzungsschlüsseln in Ihrem Projekt ...",
|
|
567
|
+
"usage_analysis_results": "📊 ERGEBNISSE DER NUTZUNGSANALYSE",
|
|
568
|
+
"source_files_scanned_thisfileu": "📁 Quelldateien gescannt: {fileUsageSize}",
|
|
569
|
+
"available_translation_keys_thi": "✅ Verfügbare Übersetzungsschlüssel: {availableKeysSize}",
|
|
570
|
+
"used_translation_keys_thisused": "🔍 Verwendete Übersetzungsschlüssel: {usedKeysSize}",
|
|
571
|
+
"dynamic_keys_detected_dynamick": "⚡ Dynamische Schlüssel erkannt: {dynamicKeysLength}",
|
|
572
|
+
"unused_keys_unusedkeyslength": "🗑️ Unbenutzte Schlüssel: {unusedKeysLength}",
|
|
573
|
+
"missing_keys_missingkeyslength": "❌ Fehlende Schlüssel: {missingKeysLength}",
|
|
574
|
+
"translation_completeness_title": "📈 VOLLSTÄNDIGKEIT DER ÜBERSETZUNG",
|
|
575
|
+
"language_completeness_stats": "{language}: {translated}/{total} Schlüssel ({percentage}%)",
|
|
576
|
+
"n_sample_unused_keys": "🗑️ BEISPIELE UNBENUTZTER SCHLÜSSEL (erste 5):",
|
|
577
|
+
"key": "🔑 {key}",
|
|
578
|
+
"and_unusedkeyslength_5_more": "... Und {count} mehr ungenutzte Schlüssel",
|
|
579
|
+
"n_sample_missing_keys": "❌ BEISPIEL FEHLERHAFTER SCHLÜSSEL (erste 5):",
|
|
580
|
+
"and_missingkeyslength_5_more": "... Und {count} weitere fehlende Schlüssel",
|
|
581
|
+
"n_generating_detailed_report": "📊 Detaillierten Bericht erstellen...",
|
|
582
|
+
"report_saved_reportpath": "📄Bericht gespeichert: {reportPath}",
|
|
583
|
+
"n_recommendations": "💡 EMPFEHLUNGEN:",
|
|
584
|
+
"consider_removing_unused_trans": "🗑️ Ziehen Sie in Betracht, nicht verwendete Übersetzungen zu entfernen, um die Paketgröße zu reduzieren",
|
|
585
|
+
"add_missing_translation_keys_t": "➕ Fügen Sie fehlende Übersetzungsschlüssel hinzu, um die Konsistenz zu gewährleisten",
|
|
586
586
|
"review_dynamic_keys_manually_t": "🔍 Überprüfen Sie dynamische Schlüssel manuell (sie können gültig sein)",
|
|
587
587
|
"all_translation_keys_are_prope": "✅ Alle Übersetzungsschlüssel werden ordnungsgemäß verwendet!",
|
|
588
|
-
"n_next_steps": "
|
|
589
|
-
"2_check_the_detailed_report_fo": "2. Überprüfen Sie den detaillierten Bericht
|
|
590
|
-
"help_message": "I18n-
|
|
591
|
-
"1_review_the_analysis_results": "1.
|
|
592
|
-
"2_run_with_outputreport_for_de": "2.
|
|
593
|
-
"3_remove_unused_keys_or_add_mi": "3.
|
|
594
|
-
"4_rerun_analysis_to_verify_imp": "4. Analyse erneut
|
|
595
|
-
"noSourceFilesFound": "
|
|
588
|
+
"n_next_steps": "🎯 NÄCHSTE SCHRITTE:",
|
|
589
|
+
"2_check_the_detailed_report_fo": "2. Überprüfen Sie den detaillierten Bericht auf bestimmte Probleme",
|
|
590
|
+
"help_message": "Verwendung des I18n-Nutzungsanalysators: Knoten i18ntk-usage.js [Optionen] Optionen: --source-dir <dir> Zu scannendes Quellverzeichnis (Standard: ./src) --i18n-dir <dir> I18n-Verzeichnis (Standard: ./src/locales) --output-report Detaillierten Bericht erstellen --output-dir <dir> Ausgabeverzeichnis für Berichte (Standard: ./reports) --help Diese Hilfe anzeigen Beispiele: node i18ntk-usage.js --output-report node i18ntk-usage.js --source-dir=./app --i18n-dir=./locales node i18ntk-usage.js --output-dir=./analysis --output-report",
|
|
591
|
+
"1_review_the_analysis_results": "1. Überprüfen Sie die Analyseergebnisse in der Konsole oder im generierten Bericht.",
|
|
592
|
+
"2_run_with_outputreport_for_de": "2. Führen Sie „--output-report“ aus, um einen detaillierten Bericht zu erhalten.",
|
|
593
|
+
"3_remove_unused_keys_or_add_mi": "3. Entfernen Sie nicht verwendete Schlüssel oder fügen Sie fehlende Schlüssel zu Ihrem Quellcode hinzu.",
|
|
594
|
+
"4_rerun_analysis_to_verify_imp": "4. Führen Sie die Analyse erneut durch, um Verbesserungen zu überprüfen.",
|
|
595
|
+
"noSourceFilesFound": "Es wurden keine Quelldateien zur Analyse gefunden.",
|
|
596
596
|
"i18nDirectoryNotFound": "I18n-Verzeichnis nicht gefunden: {i18nDir}",
|
|
597
597
|
"noTranslationLanguagesFound": "Keine Übersetzungssprachen gefunden.",
|
|
598
|
-
"failedToAnalyzeFile": "
|
|
599
|
-
"failedToAnalyzeLanguage": "
|
|
600
|
-
"translationCompletenessAnalysisFailed": "
|
|
601
|
-
"n": "\\
|
|
598
|
+
"failedToAnalyzeFile": "Datei konnte nicht analysiert werden {filePath}: {error}",
|
|
599
|
+
"failedToAnalyzeLanguage": "Die Sprache konnte nicht analysiert werden {language}: {error}",
|
|
600
|
+
"translationCompletenessAnalysisFailed": "Die Vollständigkeitsanalyse der Übersetzung ist fehlgeschlagen: {error}",
|
|
601
|
+
"n": "\\N"
|
|
602
602
|
},
|
|
603
603
|
"complete": {
|
|
604
604
|
"configLoadedSuccessfully": "Konfiguration erfolgreich geladen",
|
|
605
|
-
"configLoadingFailed": "
|
|
606
|
-
"title": "🌍 I18NTK
|
|
607
|
-
"separator": "
|
|
605
|
+
"configLoadingFailed": "Das Laden der Konfiguration ist fehlgeschlagen",
|
|
606
|
+
"title": "🌍 ABSCHLUSS DER I18NTK-ÜBERSETZUNG",
|
|
607
|
+
"separator": "=========================================================",
|
|
608
608
|
"sourceDir": "📁 Quellverzeichnis: {sourceDir}",
|
|
609
|
-
"sourceLanguage": "🌐
|
|
610
|
-
"dryRunMode": "🧪
|
|
609
|
+
"sourceLanguage": "🌐 Ausgangssprache: {sourceLanguage}",
|
|
610
|
+
"dryRunMode": "🧪 Trockenlaufmodus – es werden keine Änderungen vorgenommen",
|
|
611
611
|
"languages": "🌍 Verfügbare Sprachen: {languages}",
|
|
612
|
-
"addingMissingKeys": "➕ Fehlende Schlüssel
|
|
613
|
-
"processing": "🔄
|
|
614
|
-
"addedKeys": "✅ {count} fehlende Schlüssel
|
|
612
|
+
"addingMissingKeys": "➕ Fehlende Schlüssel zu Übersetzungsdateien hinzufügen...",
|
|
613
|
+
"processing": "🔄Verarbeitung {language}...",
|
|
614
|
+
"addedKeys": "✅ Hinzugefügt {count} fehlende Schlüssel",
|
|
615
615
|
"changeDetails": "📝 {file}: {key}",
|
|
616
|
-
"andMore": "...
|
|
617
|
-
"noChangesNeeded": "✅ Keine Änderungen für {language}
|
|
616
|
+
"andMore": "...Und {count} mehr",
|
|
617
|
+
"noChangesNeeded": "✅ Keine Änderungen erforderlich für {language}",
|
|
618
618
|
"summaryTitle": "📊 ABSCHLUSSZUSAMMENFASSUNG",
|
|
619
619
|
"totalChanges": "📝 Gesamtänderungen: {totalChanges}",
|
|
620
620
|
"languagesProcessed": "🌍 Verarbeitete Sprachen: {languagesProcessed}",
|
|
@@ -627,17 +627,17 @@
|
|
|
627
627
|
"nextStep5": "3. Muster analysieren:",
|
|
628
628
|
"nextStep6": "node i18ntk-analyze.js",
|
|
629
629
|
"allKeysAvailable": "🎉 Alle Übersetzungsschlüssel sind jetzt verfügbar!",
|
|
630
|
-
"runWithoutDryRun": "💡 Ohne --dry-run ausführen, um Änderungen
|
|
631
|
-
"deletingOldReport": "🗑️
|
|
632
|
-
"generatingFreshAnalysis": "📊
|
|
633
|
-
"couldNotGenerate": "❌ Nutzungsanalyse konnte nicht erstellt werden",
|
|
634
|
-
"reportNotFound": "📋 Nutzungsbericht nicht gefunden.
|
|
635
|
-
"foundMissingKeys": "📋 {count}
|
|
636
|
-
"couldNotParse": "❌ Nutzungsbericht konnte nicht
|
|
630
|
+
"runWithoutDryRun": "💡 Ohne --dry-run ausführen, um Änderungen zu übernehmen",
|
|
631
|
+
"deletingOldReport": "🗑️Alten Bericht löschen...",
|
|
632
|
+
"generatingFreshAnalysis": "📊 Generieren neuer Nutzungsanalysen ...",
|
|
633
|
+
"couldNotGenerate": "❌ Die Nutzungsanalyse konnte nicht erstellt werden",
|
|
634
|
+
"reportNotFound": "📋 Nutzungsbericht nicht gefunden. Gemeinsame Schlüssel verwenden...",
|
|
635
|
+
"foundMissingKeys": "📋 Gefunden {count} Fehlende Schlüssel aus der Nutzungsanalyse",
|
|
636
|
+
"couldNotParse": "❌ Nutzungsbericht konnte nicht analysiert werden. Gemeinsame Schlüssel verwenden..."
|
|
637
637
|
},
|
|
638
|
-
"noTranslationLanguagesFound": "Keine Übersetzungssprachen gefunden
|
|
639
|
-
"failedToAnalyzeLanguage": "
|
|
640
|
-
"translationCompletenessAnalysisFailed": "
|
|
638
|
+
"noTranslationLanguagesFound": "Keine Übersetzungssprachen gefunden",
|
|
639
|
+
"failedToAnalyzeLanguage": "Die Sprache konnte nicht analysiert werden",
|
|
640
|
+
"translationCompletenessAnalysisFailed": "Die Vollständigkeitsanalyse der Übersetzung ist fehlgeschlagen",
|
|
641
641
|
"failedToProcessFile": "Datei konnte nicht verarbeitet werden:",
|
|
642
642
|
"failedToSaveReport": "Nutzungsbericht konnte nicht gespeichert werden: {error}",
|
|
643
643
|
"i18nDirectoryDoesNotExist": "I18n-Verzeichnis existiert nicht: {dir}",
|
|
@@ -645,15 +645,15 @@
|
|
|
645
645
|
"sourceDirectoryDoesNotExist": "Quellverzeichnis existiert nicht: {dir}"
|
|
646
646
|
},
|
|
647
647
|
"validate": {
|
|
648
|
-
"help_message": "I18n-Ü
|
|
649
|
-
"title": "🔍 I18n-Ü
|
|
648
|
+
"help_message": "Verwendung des I18n-Übersetzungsvalidators: Knoten i18ntk-validate.js [Optionen] Optionen: --source-dir <dir> Zu scannendes Quellverzeichnis (Standard: ./src) --i18n-dir <dir> I18n-Verzeichnis (Standard: ./src/locales) --output-report Detaillierten Bericht erstellen --output-dir <dir> Ausgabeverzeichnis für Berichte (Standard: ./reports) --help Diese Hilfe anzeigen Beispiele: node i18ntk-validate.js --output-report node i18ntk-validate.js --source-dir=./app --i18n-dir=./locales node i18ntk-validate.js --output-dir=./analysis --output-report",
|
|
649
|
+
"title": "🔍 I18n-Übersetzungsvalidator",
|
|
650
650
|
"message": "Validierungsprozess wird gestartet...",
|
|
651
651
|
"sourceDirectory": "📁 Quellverzeichnis: {dir}",
|
|
652
|
-
"sourceLanguage": "🌍
|
|
653
|
-
"strictMode": "⚙️
|
|
654
|
-
"noTargetLanguages": "Keine Zielsprachen konfiguriert;
|
|
655
|
-
"validatingLanguages": "🌍
|
|
656
|
-
"validatingLanguage": "🔍
|
|
652
|
+
"sourceLanguage": "🌍 Ausgangssprache: {sourceLanguage}",
|
|
653
|
+
"strictMode": "⚙️ Strenger Modus: {mode}",
|
|
654
|
+
"noTargetLanguages": "Keine Zielsprachen konfiguriert; Überspringen der Zielvalidierung. Fügen Sie Sprachen über „i18ntk init --linguals=de,fr“ hinzu.",
|
|
655
|
+
"validatingLanguages": "🌍 Validierende Sprachen: {langs}",
|
|
656
|
+
"validatingLanguage": "🔍 Validierende Sprache: {lang}",
|
|
657
657
|
"filesCount": "📄 Dateien: {count}",
|
|
658
658
|
"keysCount": "🔑 Schlüssel: {count}",
|
|
659
659
|
"missingFilesCount": "📁 Fehlende Dateien: {count}",
|
|
@@ -662,580 +662,580 @@
|
|
|
662
662
|
"validationSummary": "📊 VALIDIERUNGSZUSAMMENFASSUNG",
|
|
663
663
|
"validation_failed": "❌ Validierung fehlgeschlagen: {error}",
|
|
664
664
|
"totalErrors": "❌ Gesamtfehler: {count}",
|
|
665
|
-
"totalWarnings": "⚠️
|
|
665
|
+
"totalWarnings": "⚠️ Gesamtzahl der Warnungen: {count}",
|
|
666
666
|
"errorsSection": "❌ FEHLER",
|
|
667
|
-
"warningsSection": "⚠️
|
|
667
|
+
"warningsSection": "⚠️ WARNUNGEN",
|
|
668
668
|
"recommendationsSection": "💡 EMPFEHLUNGEN",
|
|
669
|
-
"fixErrorsFirst": "1.
|
|
670
|
-
"resolveMissingFilesAndSyntaxErrors": "1.
|
|
671
|
-
"fixStructuralInconsistencies": "2.
|
|
672
|
-
"completeMissingTranslations": "3.
|
|
673
|
-
"rerunValidation": "4. Validierung erneut
|
|
674
|
-
"addressWarnings": "Warnungen
|
|
675
|
-
"reviewWarnings": "Warnungen
|
|
676
|
-
"considerRunningWithStrict": "2.
|
|
677
|
-
"allValidationsPassed": "🎉 Alle Validierungen
|
|
678
|
-
"considerRunningUsageAnalysis": "
|
|
679
|
-
"deletedOldReport": "🗑️
|
|
669
|
+
"fixErrorsFirst": "1. Beheben Sie zunächst alle Fehler",
|
|
670
|
+
"resolveMissingFilesAndSyntaxErrors": "1. Beheben Sie fehlende Dateien und Syntaxfehler",
|
|
671
|
+
"fixStructuralInconsistencies": "2. Beheben Sie strukturelle Inkonsistenzen",
|
|
672
|
+
"completeMissingTranslations": "3. Vervollständigen Sie fehlende Übersetzungen",
|
|
673
|
+
"rerunValidation": "4. Führen Sie die Validierung erneut aus, um die Korrekturen zu überprüfen",
|
|
674
|
+
"addressWarnings": "Beheben Sie Warnungen, um die Qualität zu verbessern",
|
|
675
|
+
"reviewWarnings": "Überprüfen Sie die Warnungen und beheben Sie sie gegebenenfalls",
|
|
676
|
+
"considerRunningWithStrict": "2. Erwägen Sie die Ausführung mit dem Flag --strict für eine strengere Validierung",
|
|
677
|
+
"allValidationsPassed": "🎉 Alle Validierungen bestanden!",
|
|
678
|
+
"considerRunningUsageAnalysis": "Erwägen Sie die Durchführung einer Nutzungsanalyse: Knoten i18ntk-usage.js",
|
|
679
|
+
"deletedOldReport": "🗑️ Alter Validierungsbericht gelöscht",
|
|
680
680
|
"sourceDir": "📁 Quellverzeichnis: {sourceDir}",
|
|
681
681
|
"i18nDir": "🌐 I18n-Verzeichnis: {i18nDir}",
|
|
682
|
-
"loadingTranslationFiles": "📋
|
|
683
|
-
"foundTranslationFilesCount": "✅ {count} Übersetzungsdateien
|
|
684
|
-
"analyzingTranslations": "🔍
|
|
682
|
+
"loadingTranslationFiles": "📋 Übersetzungsdateien werden geladen...",
|
|
683
|
+
"foundTranslationFilesCount": "✅ Gefunden {count} Übersetzungsdateien",
|
|
684
|
+
"analyzingTranslations": "🔍 Übersetzungen analysieren...",
|
|
685
685
|
"validationCompletedSuccessfully": "🎉 Validierung erfolgreich abgeschlossen!",
|
|
686
|
-
"validationErrorsFound": "⚠️
|
|
687
|
-
"validationWarningsFound": "⚠️
|
|
688
|
-
"validationPassed": "✅ Validierung
|
|
686
|
+
"validationErrorsFound": "⚠️ Validierungsfehler gefunden: {count}",
|
|
687
|
+
"validationWarningsFound": "⚠️ Validierungswarnungen gefunden: {count}",
|
|
688
|
+
"validationPassed": "✅ Validierung ohne Fehler bestanden",
|
|
689
689
|
"validationFailed": "Validierung fehlgeschlagen: {error}",
|
|
690
|
-
"startingValidationProcess": "🔍
|
|
690
|
+
"startingValidationProcess": "🔍 Validierungsprozess wird gestartet...",
|
|
691
691
|
"validationProcessCompletedSuccessfully": "✅ Validierungsprozess erfolgreich abgeschlossen",
|
|
692
|
-
"stackTrace": "
|
|
692
|
+
"stackTrace": "Stacktrace: {stack}",
|
|
693
693
|
"authenticationFailed": "❌ Authentifizierung fehlgeschlagen. Zugriff verweigert.",
|
|
694
694
|
"fatalValidationError": "❌ Schwerwiegender Validierungsfehler: {error}",
|
|
695
|
-
"configAccess": "
|
|
695
|
+
"configAccess": "Zugriff auf die Konfiguration zur Validierung",
|
|
696
696
|
"configValidated": "Konfiguration erfolgreich validiert",
|
|
697
697
|
"configError": "Konfigurationsfehler: {error}",
|
|
698
|
-
"validatorInit": "
|
|
699
|
-
"validatorInitialized": "I18n-Validator erfolgreich initialisiert",
|
|
700
|
-
"validatorInitError": "
|
|
701
|
-
"argsParsing": "
|
|
702
|
-
"argsParsed": "
|
|
703
|
-
"argsParseError": "Fehler beim Parsen
|
|
704
|
-
"languagesScan": "
|
|
705
|
-
"languagesFound": "
|
|
706
|
-
"languagesScanError": "Fehler
|
|
707
|
-
"filesScan": "{count} Dateien in {language}
|
|
708
|
-
"filesScanError": "Fehler beim
|
|
709
|
-
"jsonValidated": "JSON-Syntax
|
|
698
|
+
"validatorInit": "I18n-Validator wird initialisiert",
|
|
699
|
+
"validatorInitialized": "Der I18n-Validator wurde erfolgreich initialisiert",
|
|
700
|
+
"validatorInitError": "Fehler bei der Initialisierung des Validators: {error}",
|
|
701
|
+
"argsParsing": "Befehlszeilenargumente analysieren",
|
|
702
|
+
"argsParsed": "Befehlszeilenargumente erfolgreich analysiert",
|
|
703
|
+
"argsParseError": "Fehler beim Parsen des Arguments: {error}",
|
|
704
|
+
"languagesScan": "Verfügbare Sprachen scannen",
|
|
705
|
+
"languagesFound": "Gefunden {count} Sprachen",
|
|
706
|
+
"languagesScanError": "Fehler beim Scannen der Sprache: {error}",
|
|
707
|
+
"filesScan": "Gefunden {count} Dateien in {language}",
|
|
708
|
+
"filesScanError": "Fehler beim Scannen der Datei: {error}",
|
|
709
|
+
"jsonValidated": "Validierte JSON-Syntax: {filePath}",
|
|
710
710
|
"jsonValidationError": "JSON-Validierungsfehler: {error}",
|
|
711
|
-
"languageValidation": "
|
|
711
|
+
"languageValidation": "Validierende Sprache: {language}",
|
|
712
712
|
"languageValidationError": "Fehler bei der Sprachvalidierung: {error}",
|
|
713
713
|
"fileDeleted": "Datei gelöscht",
|
|
714
|
-
"runStarted": "
|
|
714
|
+
"runStarted": "Validierungslauf wird gestartet",
|
|
715
715
|
"runCompleted": "Validierungslauf erfolgreich abgeschlossen",
|
|
716
716
|
"runError": "Validierungslauf fehlgeschlagen: {error}",
|
|
717
717
|
"scriptExecution": "Skriptausführung",
|
|
718
718
|
"validationCompleted": "Validierung abgeschlossen",
|
|
719
719
|
"validationError": "Validierungsfehler: {error}",
|
|
720
|
-
"separator": "
|
|
720
|
+
"separator": "━━━━━━━━━━━━━━━━━━━━ ━━━━━━━━━━━━━━━━━━━━ ━━━━━━━━━━━━━━━━━━━━ ━━━━━━━━━━━━━━━━━━━━",
|
|
721
721
|
"languageHeader": "🌐 Sprache: {language}",
|
|
722
722
|
"validationResults": "📊 Validierungsergebnisse",
|
|
723
723
|
"noErrors": "✅ Keine Fehler gefunden",
|
|
724
724
|
"noWarnings": "✅ Keine Warnungen gefunden",
|
|
725
|
-
"summaryHeader": "📋
|
|
726
|
-
"progressIndicator": "⏳
|
|
725
|
+
"summaryHeader": "📋 GESAMTZUSAMMENFASSUNG",
|
|
726
|
+
"progressIndicator": "⏳ Verarbeitung...",
|
|
727
727
|
"completedIndicator": "✅ Abgeschlossen",
|
|
728
728
|
"errorIndicator": "❌ Fehler",
|
|
729
|
-
"warningIndicator": "⚠️
|
|
729
|
+
"warningIndicator": "⚠️ Warnung",
|
|
730
730
|
"infoIndicator": "ℹ️ Infos",
|
|
731
731
|
"sourceDirNotConfigured": "Quellverzeichnis nicht konfiguriert",
|
|
732
732
|
"sourceLanguageNotConfigured": "Quellsprache nicht konfiguriert",
|
|
733
|
-
"translationFunctionNotInitialized": "Übersetzungsfunktion nicht
|
|
734
|
-
"sourceLanguageDirectoryNotFound": "
|
|
735
|
-
"specifiedLanguageNotFound": "
|
|
733
|
+
"translationFunctionNotInitialized": "Übersetzungsfunktion nicht ordnungsgemäß initialisiert",
|
|
734
|
+
"sourceLanguageDirectoryNotFound": "Quellsprachenverzeichnis nicht gefunden",
|
|
735
|
+
"specifiedLanguageNotFound": "Die angegebene Sprache wurde nicht gefunden",
|
|
736
736
|
"noJsonFilesFound": "Keine JSON-Dateien im Quellverzeichnis gefunden: {sourceDir}",
|
|
737
737
|
"i18nDirectoryNotFound": "I18n-Verzeichnis nicht gefunden: {i18nDir}",
|
|
738
738
|
"invalidDirectoryPaths": "Ungültige Verzeichnispfade erkannt",
|
|
739
|
-
"invalidSampleFilePath": "Ungültiger
|
|
740
|
-
"failedToCreateSampleTranslationFile": "
|
|
739
|
+
"invalidSampleFilePath": "Ungültiger Beispieldateipfad",
|
|
740
|
+
"failedToCreateSampleTranslationFile": "Beispielübersetzungsdatei konnte nicht erstellt werden",
|
|
741
741
|
"invalidFilePathDetected": "Ungültiger Dateipfad erkannt",
|
|
742
|
-
"failedToWriteFile": "
|
|
742
|
+
"failedToWriteFile": "Datei konnte nicht geschrieben werden: {filePath}",
|
|
743
743
|
"invalidSourceDirectory": "Ungültiges Quellverzeichnis: {sourceDir}",
|
|
744
744
|
"invalidSourceLanguageDirectory": "Ungültiges Quellsprachenverzeichnis: {sourceDir}"
|
|
745
745
|
},
|
|
746
746
|
"adminCli": {
|
|
747
|
-
"setupPinProtectionTitle": "🔐
|
|
748
|
-
"setupPinProtectionDescription": "
|
|
749
|
-
"enablePinProtectionPrompt": "Möchten Sie den
|
|
750
|
-
"setupCancelled": "Einrichtung des
|
|
751
|
-
"enterPinPrompt": "Geben Sie
|
|
752
|
-
"pinFormatError": "❌ PIN muss 4
|
|
747
|
+
"setupPinProtectionTitle": "🔐 Einrichten des Admin-PIN-Schutzes",
|
|
748
|
+
"setupPinProtectionDescription": "Für Verwaltungsvorgänge ist hierfür eine 4- bis 6-stellige PIN erforderlich.",
|
|
749
|
+
"enablePinProtectionPrompt": "Möchten Sie den Administrator-PIN-Schutz aktivieren?",
|
|
750
|
+
"setupCancelled": "Die Einrichtung des Administrator-PIN-Schutzes wurde abgebrochen.",
|
|
751
|
+
"enterPinPrompt": "Geben Sie eine 4-6-stellige PIN ein:",
|
|
752
|
+
"pinFormatError": "❌ Die PIN muss 4–6 Ziffern lang sein. Bitte versuchen Sie es erneut.",
|
|
753
753
|
"confirmPinPrompt": "PIN bestätigen:",
|
|
754
|
-
"pinMismatchError": "❌ PINs stimmen nicht überein. Bitte erneut
|
|
754
|
+
"pinMismatchError": "❌ PINs stimmen nicht überein. Bitte versuchen Sie es erneut.",
|
|
755
755
|
"pinProtectionEnabledSuccess": "✅ Admin-PIN-Schutz erfolgreich aktiviert!",
|
|
756
|
-
"pinRecoveryWarning": "⚠️
|
|
757
|
-
"setupPinProtectionFailed": "❌
|
|
758
|
-
"errorSettingUpPin": "❌ Fehler
|
|
756
|
+
"pinRecoveryWarning": "⚠️ Merken Sie sich Ihre PIN – sie kann bei Verlust nicht wiederhergestellt werden.",
|
|
757
|
+
"setupPinProtectionFailed": "❌ Der Administrator-PIN-Schutz konnte nicht eingerichtet werden.",
|
|
758
|
+
"errorSettingUpPin": "❌ Fehler beim Einrichten der Admin-PIN: {message}",
|
|
759
759
|
"authRequiredForOperation": "🔐 Admin-Authentifizierung erforderlich für: {operation}",
|
|
760
|
-
"invalidPinFormat": "❌ Ungültiges PIN-Format. PIN muss 4
|
|
760
|
+
"invalidPinFormat": "❌ Ungültiges PIN-Format. Die PIN muss 4–6 Ziffern lang sein.",
|
|
761
761
|
"authenticationSuccess": "✅ Authentifizierung erfolgreich!",
|
|
762
|
-
"invalidPinAttemptsRemaining": "❌
|
|
762
|
+
"invalidPinAttemptsRemaining": "❌ Ungültige PIN. {remaining} verbleibende Versuche.",
|
|
763
763
|
"authenticationFailedAccessDenied": "❌ Authentifizierung fehlgeschlagen. Zugriff verweigert.",
|
|
764
764
|
"authenticationError": "❌ Authentifizierungsfehler: {message}",
|
|
765
|
-
"pinProtectionNotEnabled": "
|
|
766
|
-
"disablingPinProtectionTitle": "🔓
|
|
767
|
-
"confirmDisablePinProtection": "
|
|
765
|
+
"pinProtectionNotEnabled": "Der Administrator-PIN-Schutz ist derzeit nicht aktiviert.",
|
|
766
|
+
"disablingPinProtectionTitle": "🔓 Admin-PIN-Schutz deaktivieren",
|
|
767
|
+
"confirmDisablePinProtection": "Möchten Sie den Administrator-PIN-Schutz wirklich deaktivieren?",
|
|
768
768
|
"operationCancelled": "Vorgang abgebrochen.",
|
|
769
769
|
"pinProtectionDisabledSuccess": "✅ Admin-PIN-Schutz deaktiviert.",
|
|
770
|
-
"disablePinProtectionFailed": "❌
|
|
771
|
-
"errorDisablingPinProtection": "❌ Fehler
|
|
772
|
-
"adminProtectionStatusTitle": "🔐
|
|
770
|
+
"disablePinProtectionFailed": "❌ Der Administrator-PIN-Schutz konnte nicht deaktiviert werden.",
|
|
771
|
+
"errorDisablingPinProtection": "❌ Fehler beim Deaktivieren des Administratorschutzes: {message}",
|
|
772
|
+
"adminProtectionStatusTitle": "🔐 Administratorschutzstatus",
|
|
773
773
|
"statusEnabled": "Status: ✅ AKTIVIERT",
|
|
774
|
-
"protectionDetails": "Schutz: 4-6-
|
|
775
|
-
"lockoutDetails": "Sperre: 3
|
|
774
|
+
"protectionDetails": "Schutz: Für Administratorvorgänge ist eine 4- bis 6-stellige PIN erforderlich",
|
|
775
|
+
"lockoutDetails": "Sperre: 3 Fehlversuche = 15-minütige Sperre",
|
|
776
776
|
"statusDisabled": "Status: ❌ DEAKTIVIERT",
|
|
777
777
|
"noAuthRequired": "Schutz: Keine Authentifizierung erforderlich",
|
|
778
|
-
"unprotectedRisk": "Risiko:
|
|
779
|
-
"errorCheckingAdminStatus": "❌ Fehler beim Überprüfen des
|
|
778
|
+
"unprotectedRisk": "Risiko: Verwaltungsvorgänge sind ungeschützt",
|
|
779
|
+
"errorCheckingAdminStatus": "❌ Fehler beim Überprüfen des Administratorstatus: {message}",
|
|
780
780
|
"authRequired": "🔐 Admin-Authentifizierung erforderlich.",
|
|
781
|
-
"invalidPin": "❌
|
|
781
|
+
"invalidPin": "❌ Ungültige PIN.",
|
|
782
782
|
"authSuccess": "✅ Authentifizierung erfolgreich!",
|
|
783
783
|
"adminPinSetupCli": "admin_pin_setup_cli",
|
|
784
784
|
"adminAuthFailedCli": "admin_auth_failed_cli",
|
|
785
785
|
"adminAuthDisabledCli": "admin_auth_disabled_cli",
|
|
786
|
-
"protectedAccess": "Geschützter Zugriff:
|
|
787
|
-
"enterPin": "Geben Sie
|
|
786
|
+
"protectedAccess": "Geschützter Zugriff: Für vertrauliche Vorgänge ist eine Administratorauthentifizierung erforderlich.",
|
|
787
|
+
"enterPin": "Geben Sie die Admin-PIN ein:",
|
|
788
788
|
"accessGranted": "Zugriff gewährt."
|
|
789
789
|
},
|
|
790
790
|
"adminPin": {
|
|
791
791
|
"setup_title": "🔐 Admin-PIN-Einrichtung",
|
|
792
|
-
"setup_separator": "
|
|
793
|
-
"setup_description": "Erstellen Sie
|
|
794
|
-
"required_for_title": "
|
|
795
|
-
"required_for_1": "•
|
|
792
|
+
"setup_separator": "=========================================================",
|
|
793
|
+
"setup_description": "Erstellen Sie eine 4-6-stellige PIN für den Administratorzugriff auf vertrauliche Einstellungen.",
|
|
794
|
+
"required_for_title": "Diese PIN wird benötigt für:",
|
|
795
|
+
"required_for_1": "• Sicherheitseinstellungen ändern",
|
|
796
796
|
"required_for_2": "• Erweiterte Konfigurationen ändern",
|
|
797
797
|
"required_for_3": "• Zugriff auf Debug-Tools",
|
|
798
798
|
"required_for_4": "• Einstellungen zurücksetzen",
|
|
799
|
-
"setup_note": "💡 Hinweis:
|
|
800
|
-
"setup_digits_only": "
|
|
801
|
-
"invalid_pin_length": "❌
|
|
799
|
+
"setup_note": "💡 Hinweis: Während der Eingabe werden Sternchen (*) angezeigt – es handelt sich lediglich um Maskierungszeichen.",
|
|
800
|
+
"setup_digits_only": "Als PIN-Ziffern werden nur die Ziffern 0-9 akzeptiert.",
|
|
801
|
+
"invalid_pin_length": "❌ Ungültige PIN. Muss 4–6 Ziffern lang sein (nur Zahlen 0–9).",
|
|
802
802
|
"invalid_pin_example": "Beispiel: 1234 oder 567890",
|
|
803
803
|
"pins_do_not_match": "❌ PINs stimmen nicht überein.",
|
|
804
|
-
"setup_success": "✅ Admin-PIN wurde erfolgreich
|
|
805
|
-
"setup_warning": "⚠️
|
|
806
|
-
"setup_error": "❌ Fehler beim Einrichten
|
|
807
|
-
"session_expired": "⏰ Admin-Sitzung ist
|
|
808
|
-
"no_pin_set_setting_up": "⚠️
|
|
809
|
-
"no_pin_configured_access_denied": "⚠️
|
|
810
|
-
"use_admin_settings_to_set_pin": "💡
|
|
811
|
-
"locked_out": "🔒
|
|
804
|
+
"setup_success": "✅ Admin-PIN wurde erfolgreich gesetzt!",
|
|
805
|
+
"setup_warning": "⚠️ Bewahren Sie diese PIN sicher auf. Bei Verlust kann es nicht wiederhergestellt werden.",
|
|
806
|
+
"setup_error": "❌ Fehler beim Einrichten der PIN:",
|
|
807
|
+
"session_expired": "⏰ Admin-Sitzung ist aufgrund von Inaktivität abgelaufen.",
|
|
808
|
+
"no_pin_set_setting_up": "⚠️ Keine Admin-PIN festgelegt. PIN einrichten...",
|
|
809
|
+
"no_pin_configured_access_denied": "⚠️ Keine Admin-PIN konfiguriert. Zugriff verweigert.",
|
|
810
|
+
"use_admin_settings_to_set_pin": "💡 Verwende zunächst die Admin-Einstellungen, um eine PIN einzurichten.",
|
|
811
|
+
"locked_out": "🔒 Der Administratorzugriff ist aufgrund zu vieler Fehlversuche gesperrt.",
|
|
812
812
|
"wait_before_retry": "Bitte warten Sie 5 Minuten, bevor Sie es erneut versuchen.",
|
|
813
813
|
"access_granted": "✅ Admin-Zugriff gewährt.",
|
|
814
|
-
"incorrect_pin": "❌
|
|
815
|
-
"verify_pin_error": "❌ Fehler
|
|
816
|
-
"already_configured": "✅ Admin-PIN ist bereits
|
|
817
|
-
"optional_setup_title": "🔐 Admin-PIN-Einrichtung (
|
|
818
|
-
"optional_setup_description": "Admin-PIN-Schutz
|
|
819
|
-
"setup_prompt": "Möchten Sie
|
|
820
|
-
"skipping_setup": "⏭️
|
|
821
|
-
"setup_prompt_error": "❌ Fehler
|
|
822
|
-
"protectedAccess": "Geschützter Zugriff:
|
|
823
|
-
"enterPin": "Admin-PIN
|
|
814
|
+
"incorrect_pin": "❌ Falsche PIN. {attempts} verbleibende Versuche.",
|
|
815
|
+
"verify_pin_error": "❌ Fehler bei der PIN-Verifizierung:",
|
|
816
|
+
"already_configured": "✅ Admin-PIN ist bereits konfiguriert.",
|
|
817
|
+
"optional_setup_title": "🔐 Admin-PIN-Einrichtung (optional)",
|
|
818
|
+
"optional_setup_description": "Der Admin-PIN-Schutz sorgt für zusätzliche Sicherheit bei sensiblen Vorgängen wie:",
|
|
819
|
+
"setup_prompt": "Möchten Sie eine Admin-PIN einrichten? (J/N):",
|
|
820
|
+
"skipping_setup": "⏭️ Überspringen der Einrichtung der Administrator-PIN. Sie können es später in den Einstellungen einrichten.",
|
|
821
|
+
"setup_prompt_error": "❌ Fehler bei der Aufforderung zur PIN-Einrichtung:",
|
|
822
|
+
"protectedAccess": "Geschützter Zugriff: Für vertrauliche Vorgänge ist eine Administratorauthentifizierung erforderlich.",
|
|
823
|
+
"enterPin": "Geben Sie die Admin-PIN ein:",
|
|
824
824
|
"accessGranted": "Zugriff gewährt.",
|
|
825
|
-
"invalidPin": "❌
|
|
826
|
-
"weak_pin_warning": "⚠️
|
|
827
|
-
"weak_pin_suggestion": "💡
|
|
828
|
-
"use_anyway_prompt": "Geben Sie „
|
|
829
|
-
"enter_new_pin": "
|
|
825
|
+
"invalidPin": "❌ Ungültige PIN. Bitte versuchen Sie es erneut.",
|
|
826
|
+
"weak_pin_warning": "⚠️ WARNUNG: Diese PIN scheint schwach oder häufig zu sein.",
|
|
827
|
+
"weak_pin_suggestion": "💡 Erwägen Sie die Verwendung einer stärkeren PIN mit verschiedenen Ziffern.",
|
|
828
|
+
"use_anyway_prompt": "Geben Sie „Ja“ ein, um die PIN trotzdem zu verwenden, oder drücken Sie die Eingabetaste, um eine andere PIN auszuwählen:",
|
|
829
|
+
"enter_new_pin": "Geben Sie die neue Admin-PIN ein (4–6 Ziffern):",
|
|
830
830
|
"confirm_pin": "Admin-PIN bestätigen:",
|
|
831
|
-
"not_set": "Nicht
|
|
831
|
+
"not_set": "Nicht festgelegt",
|
|
832
832
|
"pin_display_mask": "####"
|
|
833
833
|
},
|
|
834
834
|
"debug": {
|
|
835
|
-
"title": "🔧 Debug-
|
|
836
|
-
"separator": "
|
|
835
|
+
"title": "🔧 Debug-Tools",
|
|
836
|
+
"separator": "=========================================================",
|
|
837
837
|
"mainDebuggerSystemDiagnostics": "1. Systemdiagnose",
|
|
838
|
-
"_consoleTranslationsCheck": "// 2. Konsolenübersetzungen
|
|
838
|
+
"_consoleTranslationsCheck": "// 2. Überprüfung der Konsolenübersetzungen",
|
|
839
839
|
"_exportMissingKeys": "// 3. Fehlende Übersetzungsschlüssel exportieren",
|
|
840
|
-
"_replaceHardcodedConsole": "// 4.
|
|
841
|
-
"_consoleKeyChecker": "// 5.
|
|
840
|
+
"_replaceHardcodedConsole": "// 4. Ersetzen Sie hartcodierte Konsolenzeichenfolgen",
|
|
841
|
+
"_consoleKeyChecker": "// 5. Konsolenschlüsselprüfer",
|
|
842
842
|
"debugLogs": "2. Debug-Protokolle",
|
|
843
843
|
"backToMainMenu": "0. Zurück zum Hauptmenü",
|
|
844
|
-
"selectOption": "
|
|
845
|
-
"runningDebugTool": "
|
|
846
|
-
"debugToolNotFound": "❌ Debug-
|
|
847
|
-
"errorRunningDebugTool": "Fehler beim Ausführen des Debug-
|
|
848
|
-
"recentDebugLogs": "📄
|
|
844
|
+
"selectOption": "Wählen Sie ein Debug-Tool aus:",
|
|
845
|
+
"runningDebugTool": "Läuft {displayName}...",
|
|
846
|
+
"debugToolNotFound": "❌ Debug-Tool nicht gefunden: {toolName}",
|
|
847
|
+
"errorRunningDebugTool": "Fehler beim Ausführen des Debug-Tools '{displayName}': {error}",
|
|
848
|
+
"recentDebugLogs": "📄 Aktuelle Debug-Protokolle",
|
|
849
849
|
"noDebugLogsFound": "❌ Keine Debug-Protokolle gefunden.",
|
|
850
|
-
"debugLogsDirectoryNotFound": "❌
|
|
851
|
-
"selectLogPrompt": "
|
|
852
|
-
"invalidChoiceSelectRange": "Ungültige Auswahl. Bitte
|
|
850
|
+
"debugLogsDirectoryNotFound": "❌ Debug-Protokollverzeichnis nicht gefunden.",
|
|
851
|
+
"selectLogPrompt": "Wählen Sie die anzuzeigende Protokolldatei aus (1-{count}):",
|
|
852
|
+
"invalidChoiceSelectRange": "Ungültige Auswahl. Bitte wählen Sie aus dem verfügbaren Sortiment aus.",
|
|
853
853
|
"contentOf": "📄 Inhalt von {filename}:",
|
|
854
|
-
"pressEnterToContinue": "
|
|
854
|
+
"pressEnterToContinue": "Drücken Sie die Eingabetaste, um fortzufahren..."
|
|
855
855
|
},
|
|
856
856
|
"detect_language_mismatches": {
|
|
857
|
-
"tool_title": "🔍
|
|
858
|
-
"separator": "
|
|
859
|
-
"analyzing_file": "📄
|
|
860
|
-
"error_analyzing_file": "❌ Fehler
|
|
861
|
-
"results_title": "📊 ERGEBNISSE DER
|
|
862
|
-
"results_separator": "
|
|
857
|
+
"tool_title": "🔍Tool zur Erkennung von Sprachkonflikten",
|
|
858
|
+
"separator": "====================================",
|
|
859
|
+
"analyzing_file": "📄 Analysieren {language}.json...",
|
|
860
|
+
"error_analyzing_file": "❌ Fehler bei der Analyse {filename}: {errorMessage}",
|
|
861
|
+
"results_title": "📊 ERGEBNISSE DER SPRACHENFEHLER-ERKENNUNG",
|
|
862
|
+
"results_separator": "======================================",
|
|
863
863
|
"summary_title": "📋 ZUSAMMENFASSUNG:",
|
|
864
|
-
"total_files_analyzed": "
|
|
865
|
-
"files_with_mismatches": "Dateien mit
|
|
866
|
-
"total_mismatches_found": "
|
|
867
|
-
"no_mismatches_found": "✅ Keine
|
|
864
|
+
"total_files_analyzed": "Gesamtzahl der analysierten Dateien: {totalFiles}",
|
|
865
|
+
"files_with_mismatches": "Dateien mit Nichtübereinstimmungen: {filesWithMismatches}",
|
|
866
|
+
"total_mismatches_found": "Insgesamt gefundene Nichtübereinstimmungen: {totalMismatches}",
|
|
867
|
+
"no_mismatches_found": "✅ Keine Sprachkonflikte gefunden! Alle Übersetzungen scheinen in der richtigen Sprache zu erfolgen.",
|
|
868
868
|
"detailed_results_title": "🔍 DETAILLIERTE ERGEBNISSE:",
|
|
869
869
|
"file_mismatch_header": "📄 {filename} ({language})",
|
|
870
|
-
"mismatches_count": "{count}
|
|
870
|
+
"mismatches_count": "Gefunden {count} Nichtübereinstimmung(en):",
|
|
871
871
|
"mismatch_details": "{index}. Schlüssel: {key}",
|
|
872
872
|
"mismatch_value": "Wert: \"{value}\"",
|
|
873
|
-
"mismatch_issue": "
|
|
873
|
+
"mismatch_issue": "Ausgabe: {description}",
|
|
874
874
|
"recommendations_title": "💡 EMPFEHLUNGEN:",
|
|
875
|
-
"recommendation_1": "1.
|
|
876
|
-
"recommendation_2": "2.
|
|
877
|
-
"recommendation_3": "3.
|
|
878
|
-
"recommendation_4": "4.
|
|
879
|
-
"recommendation_5": "5.
|
|
875
|
+
"recommendation_1": "1. Überprüfen und übersetzen Sie alle mit [ÜBERSETZEN] markierten Einträge.",
|
|
876
|
+
"recommendation_2": "2. Ersetzen Sie Sprachpräfixe (z. B. [DE], [FR]) durch geeignete Übersetzungen",
|
|
877
|
+
"recommendation_3": "3. Übersetzen Sie englischen Text in die entsprechende Zielsprache",
|
|
878
|
+
"recommendation_4": "4. Verwenden Sie für alle benutzerbezogenen Texte muttersprachliche Äquivalente",
|
|
879
|
+
"recommendation_5": "5. Führen Sie dieses Tool erneut aus, nachdem Sie Korrekturen vorgenommen haben, um die Korrekturen zu überprüfen",
|
|
880
880
|
"detailed_report_saved": "📄 Detaillierter Bericht gespeichert unter: {reportPath}",
|
|
881
881
|
"error_saving_report": "❌ Fehler beim Speichern des Berichts: {errorMessage}",
|
|
882
882
|
"auto_fix_mode": "🔧 Auto-Fix-Modus {dryRun}",
|
|
883
|
-
"auto_fix_separator": "
|
|
884
|
-
"fixed_file": "✅ {filename}
|
|
885
|
-
"auto_fix_summary_title": "📊
|
|
886
|
-
"total_fixes_applied": "
|
|
887
|
-
"preview_fixes_title": "🔍 Vorschau der
|
|
883
|
+
"auto_fix_separator": "====================================",
|
|
884
|
+
"fixed_file": "✅ Behoben {filename}",
|
|
885
|
+
"auto_fix_summary_title": "📊 Zusammenfassung der automatischen Fehlerbehebung:",
|
|
886
|
+
"total_fixes_applied": "Insgesamt angewendete Korrekturen: {count}",
|
|
887
|
+
"preview_fixes_title": "🔍 Vorschau der Korrekturen:",
|
|
888
888
|
"fix_details": "{file}: {key} Alt: \"{old}\" Neu: \"{new}\"",
|
|
889
|
-
"more_fixes": "...
|
|
890
|
-
"run_with_apply_fixes": "💡
|
|
889
|
+
"more_fixes": "... Und {count} weitere Korrekturen",
|
|
890
|
+
"run_with_apply_fixes": "💡 Führen Sie mit --apply aus, um diese Korrekturen anzuwenden",
|
|
891
891
|
"error_general": "❌ Fehler:",
|
|
892
892
|
"mainDebuggerSystemDiagnostics": "Haupt-Debugger / Systemdiagnose",
|
|
893
893
|
"exportMissingKeys": "Fehlende Schlüssel exportieren",
|
|
894
|
-
"replaceHardcodedConsole": "
|
|
895
|
-
"consoleKeyChecker": "
|
|
894
|
+
"replaceHardcodedConsole": "Ersetzen Sie die fest codierte Konsole",
|
|
895
|
+
"consoleKeyChecker": "Konsolenschlüsselprüfer",
|
|
896
896
|
"debugLogs": "Debug-Protokolle",
|
|
897
897
|
"backToMainMenu": "Zurück zum Hauptmenü",
|
|
898
|
-
"invalidChoiceSelectRange": "❌ Ungültige Auswahl. Bitte eine
|
|
899
|
-
"runningDebugTool": "
|
|
898
|
+
"invalidChoiceSelectRange": "❌ Ungültige Auswahl. Bitte wählen Sie eine Zahl innerhalb des angezeigten Bereichs aus.",
|
|
899
|
+
"runningDebugTool": "Debug-Tool ausführen: {displayName}",
|
|
900
900
|
"debugToolNotFound": "Debug-Tool '{toolName}' nicht gefunden.",
|
|
901
|
-
"recentDebugLogs": "
|
|
901
|
+
"recentDebugLogs": "Aktuelle Debug-Protokolle",
|
|
902
902
|
"noDebugLogsFound": "Keine Debug-Protokolle gefunden.",
|
|
903
|
-
"logEntry": "Protokolleintrag: {timestamp}
|
|
904
|
-
"debugLogsDirectoryNotFound": "
|
|
903
|
+
"logEntry": "Protokolleintrag: {timestamp} - {message}",
|
|
904
|
+
"debugLogsDirectoryNotFound": "Debug-Protokollverzeichnis nicht gefunden."
|
|
905
905
|
},
|
|
906
906
|
"help": {
|
|
907
|
-
"title": "📊 I18NTK
|
|
908
|
-
"usage": "Verwendung:
|
|
909
|
-
"interactiveMode": "💡 Verwenden: node
|
|
910
|
-
"showHelp": "📖 Verwenden: node main/manage/index.js --help für verfügbare Befehle",
|
|
907
|
+
"title": "📊 I18NTK-MANAGEMENT-HILFE",
|
|
908
|
+
"usage": "Verwendung: Knoten main/manage/index.js [Optionen]",
|
|
909
|
+
"interactiveMode": "💡 Verwenden Sie: node main/manage/index.js --command=<command> zur direkten Ausführung",
|
|
910
|
+
"showHelp": "📖 Verwenden Sie: node main/manage/index.js --help für verfügbare Befehle",
|
|
911
911
|
"availableCommands": "📖 Verfügbare Befehle:",
|
|
912
912
|
"initProject": "🚀 Neue Sprachen initialisieren",
|
|
913
913
|
"analyzeTranslations": "🔍 Übersetzungen analysieren",
|
|
914
914
|
"validateTranslations": "✅ Übersetzungen validieren",
|
|
915
|
-
"checkUsage": "📊 Schlüsselverwendung
|
|
916
|
-
"initCommand": "init
|
|
917
|
-
"analyzeCommand": "
|
|
918
|
-
"validateCommand": "
|
|
919
|
-
"usageCommand": "
|
|
920
|
-
"sizingCommand": "
|
|
921
|
-
"completeCommand": "
|
|
922
|
-
"summaryCommand": "
|
|
923
|
-
"debugCommand": "debug
|
|
924
|
-
"scannerCommand": "
|
|
925
|
-
"translateCommand": "
|
|
915
|
+
"checkUsage": "📊 Überprüfen Sie die Schlüsselverwendung",
|
|
916
|
+
"initCommand": "init – Neue Sprachen initialisieren",
|
|
917
|
+
"analyzeCommand": "analysieren – Übersetzungen analysieren",
|
|
918
|
+
"validateCommand": "validieren – Übersetzungen validieren",
|
|
919
|
+
"usageCommand": "Verwendung – Überprüfen Sie die Schlüsselverwendung",
|
|
920
|
+
"sizingCommand": "Dimensionierung – Analysieren Sie die Dimensionierung",
|
|
921
|
+
"completeCommand": "vollständig – Vollständige Übersetzungen (100 % Abdeckung)",
|
|
922
|
+
"summaryCommand": "Zusammenfassung – Projektstatus anzeigen",
|
|
923
|
+
"debugCommand": "debug – Übersetzungsprobleme debuggen",
|
|
924
|
+
"scannerCommand": "Scanner – Nach Schlüsseln suchen",
|
|
925
|
+
"translateCommand": "Translate – Gebietsschemadateien automatisch übersetzen (Beta)",
|
|
926
926
|
"menu": {
|
|
927
927
|
"pressEnterToContinue": "Drücken Sie die Eingabetaste, um fortzufahren...",
|
|
928
|
-
"title": "🌐 I18NTK
|
|
928
|
+
"title": "🌐 I18NTK-VERWALTUNGSMENÜ",
|
|
929
929
|
"description": "Interaktives Menü zur Verwaltung der Internationalisierung",
|
|
930
|
-
"exit": "🚪
|
|
930
|
+
"exit": "🚪 Ausstieg"
|
|
931
931
|
},
|
|
932
932
|
"commands": {
|
|
933
|
-
"init": "init
|
|
934
|
-
"analyze": "
|
|
935
|
-
"validate": "
|
|
936
|
-
"usage": "
|
|
937
|
-
"sizing": "
|
|
938
|
-
"complete": "
|
|
939
|
-
"summary": "
|
|
940
|
-
"debug": "debug
|
|
933
|
+
"init": "init – Neue Sprachen initialisieren",
|
|
934
|
+
"analyze": "analysieren – Übersetzungen analysieren",
|
|
935
|
+
"validate": "validieren – Übersetzungen validieren",
|
|
936
|
+
"usage": "Verwendung – Überprüfen Sie die Schlüsselverwendung",
|
|
937
|
+
"sizing": "Dimensionierung – Analysieren Sie die Dimensionierung",
|
|
938
|
+
"complete": "vollständig – Vollständige Übersetzungen (100 % Abdeckung)",
|
|
939
|
+
"summary": "Zusammenfassung – Projektstatus anzeigen",
|
|
940
|
+
"debug": "debug – Übersetzungsprobleme debuggen"
|
|
941
941
|
},
|
|
942
942
|
"options": {
|
|
943
|
-
"sourceDir": "--source-dir <dir>
|
|
944
|
-
"output": "--
|
|
945
|
-
"verbose": "--verbose, -v
|
|
946
|
-
"keepReports": "--keep-reports
|
|
947
|
-
"deleteReports": "--delete-reports
|
|
948
|
-
"help": "--help, -h
|
|
943
|
+
"sourceDir": "--source-dir <dir> Zu analysierendes Quellverzeichnis",
|
|
944
|
+
"output": "--Ausgabe <file> Ausgabedatei für den Bericht",
|
|
945
|
+
"verbose": "--verbose, -v Detaillierte Informationen anzeigen",
|
|
946
|
+
"keepReports": "--keep-reports Bestehende Berichte beibehalten",
|
|
947
|
+
"deleteReports": "--delete-reports Vorhandene Berichte löschen",
|
|
948
|
+
"help": "--help, -h Diese Hilfe anzeigen"
|
|
949
949
|
},
|
|
950
950
|
"examples": {
|
|
951
951
|
"title": "Beispiele:",
|
|
952
|
-
"example1": "
|
|
953
|
-
"example2": "
|
|
954
|
-
"example3": "
|
|
955
|
-
"example4": "
|
|
956
|
-
"example5": "
|
|
952
|
+
"example1": "Knoten i18ntk-manage.js",
|
|
953
|
+
"example2": "Knoten i18ntk-manage.js --source-dir ./locales",
|
|
954
|
+
"example3": "Knoten i18ntk-manage.js --output summary-report.txt",
|
|
955
|
+
"example4": "Knoten i18ntk-manage.js --verbose",
|
|
956
|
+
"example5": "Knoten i18ntk-manage.js --source-dir ./locales --output report.json"
|
|
957
957
|
},
|
|
958
958
|
"features": {
|
|
959
959
|
"initProject": "🚀 Neue Sprachen initialisieren",
|
|
960
960
|
"analyzeTranslations": "🔍 Übersetzungen analysieren",
|
|
961
961
|
"validateTranslations": "✅ Übersetzungen validieren",
|
|
962
|
-
"checkUsage": "📊 Schlüsselverwendung
|
|
963
|
-
"completeTranslations": "🎯 Übersetzungen
|
|
964
|
-
"showSizing": "📏
|
|
965
|
-
"runWorkflow": "🔄
|
|
962
|
+
"checkUsage": "📊 Überprüfen Sie die Schlüsselverwendung",
|
|
963
|
+
"completeTranslations": "🎯 Vollständige Übersetzungen (100 % Abdeckung)",
|
|
964
|
+
"showSizing": "📏 Analysieren Sie die Größe",
|
|
965
|
+
"runWorkflow": "🔄 Führen Sie den vollständigen Workflow aus",
|
|
966
966
|
"showStatus": "📋 Projektstatus anzeigen",
|
|
967
|
-
"deleteReports": "🗑️
|
|
968
|
-
"changeLanguage": "🌍 Sprache der Benutzeroberfläche
|
|
969
|
-
"settings": "⚙️
|
|
967
|
+
"deleteReports": "🗑️ Alle Berichte löschen",
|
|
968
|
+
"changeLanguage": "🌍 Ändern Sie die Sprache der Benutzeroberfläche",
|
|
969
|
+
"settings": "⚙️ Einstellungen",
|
|
970
970
|
"showHelp": "❓ Hilfe",
|
|
971
|
-
"debugTools": "🔧 Debug-
|
|
971
|
+
"debugTools": "🔧 Debug-Tools"
|
|
972
972
|
},
|
|
973
973
|
"messages": {
|
|
974
|
-
"selectOption": "Option
|
|
975
|
-
"invalidOption": "
|
|
976
|
-
"operationCompleted": "✅
|
|
977
|
-
"pressEnter": "
|
|
974
|
+
"selectOption": "Wählen Sie eine Option:",
|
|
975
|
+
"invalidOption": "Ungültige Option. Bitte versuchen Sie es erneut.",
|
|
976
|
+
"operationCompleted": "✅ Operation erfolgreich abgeschlossen!",
|
|
977
|
+
"pressEnter": "Drücken Sie die Eingabetaste, um fortzufahren...",
|
|
978
978
|
"goodbye": "👋 Auf Wiedersehen!",
|
|
979
979
|
"unknownCommand": "Unbekannter Befehl: {command}",
|
|
980
|
-
"nonInteractive": "⚠️ Nicht
|
|
980
|
+
"nonInteractive": "⚠️ Nicht interaktiver Modus erkannt. Das Menü wird nur als Referenz angezeigt."
|
|
981
981
|
},
|
|
982
982
|
"i18n_helper": {
|
|
983
983
|
"translation_file_not_found": "Übersetzungsdatei nicht gefunden: {translationFile}",
|
|
984
984
|
"error_loading_translations": "Fehler beim Laden der Übersetzungen: {errorMessage}",
|
|
985
985
|
"translation_not_found": "Übersetzung für Schlüssel nicht gefunden: {key}",
|
|
986
|
-
"translation_key_not_string": "Übersetzungsschlüssel
|
|
987
|
-
"error_reading_locales_directory": "Fehler beim Lesen des Verzeichnisses: {errorMessage}"
|
|
986
|
+
"translation_key_not_string": "Der Übersetzungsschlüssel lässt sich nicht in eine Zeichenfolge auflösen: {key}",
|
|
987
|
+
"error_reading_locales_directory": "Fehler beim Lesen des Locales-Verzeichnisses: {errorMessage}"
|
|
988
988
|
}
|
|
989
989
|
},
|
|
990
990
|
"init": {
|
|
991
|
-
"initializationTitle": "🚀 i18n
|
|
991
|
+
"initializationTitle": "🚀 i18n Management Toolkit – Projektinitialisierung",
|
|
992
992
|
"initializationCancelled": "🚫 Initialisierung vom Benutzer abgebrochen.",
|
|
993
993
|
"sourceDirectoryLabel": "📁 Quellverzeichnis: {dir}",
|
|
994
994
|
"requiredTitle": "Initialisierung erforderlich",
|
|
995
|
-
"requiredBody": "Dieses Projekt muss
|
|
996
|
-
"promptRunNow": "Möchten Sie die Initialisierung jetzt
|
|
997
|
-
"sourceLanguageLabel": "🌍
|
|
998
|
-
"detectedI18nFrameworks": "🔍
|
|
999
|
-
"pinMustBe4Digits": "PIN muss 4-stellig sein.",
|
|
1000
|
-
"existingDirectoriesFound": "📁
|
|
995
|
+
"requiredBody": "Dieses Projekt muss initialisiert werden, bevor dieser Befehl ausgeführt wird.",
|
|
996
|
+
"promptRunNow": "Möchten Sie die Initialisierung jetzt durchführen? (J/N):",
|
|
997
|
+
"sourceLanguageLabel": "🌍 Ausgangssprache: {language}",
|
|
998
|
+
"detectedI18nFrameworks": "🔍 Erkannte i18n-Framework(s): {frameworks}",
|
|
999
|
+
"pinMustBe4Digits": "🔐 Die PIN muss 4-stellig sein.",
|
|
1000
|
+
"existingDirectoriesFound": "📁 Bestehende Übersetzungsverzeichnisse gefunden:",
|
|
1001
1001
|
"useExistingDirectoryPrompt": "Möchten Sie das vorhandene Verzeichnis verwenden? (j/n)",
|
|
1002
|
-
"selectDirectoryPrompt": "Wählen Sie ein Verzeichnis
|
|
1003
|
-
"enterNewDirectoryName": "
|
|
1004
|
-
"createdNewDirectory": "
|
|
1005
|
-
"directoryAlreadyExists": "⚠️
|
|
1006
|
-
"invalidDirectoryName": "
|
|
1007
|
-
"usingExistingDirectory": "
|
|
1008
|
-
"adminPinSetupOptional": "🔐 Admin-PIN-Einrichtung optional (
|
|
1009
|
-
"adminPinSeparator": "
|
|
1002
|
+
"selectDirectoryPrompt": "Wählen Sie ein Verzeichnis aus, indem Sie die Nummer eingeben (oder wählen Sie „Neues Verzeichnis erstellen“).",
|
|
1003
|
+
"enterNewDirectoryName": "Geben Sie den Namen für Ihr neues Übersetzungsverzeichnis ein",
|
|
1004
|
+
"createdNewDirectory": "✅ Neues Verzeichnis erstellt: {dir}",
|
|
1005
|
+
"directoryAlreadyExists": "⚠️ Verzeichnis existiert bereits: {dir}",
|
|
1006
|
+
"invalidDirectoryName": "❌ Ungültiger Verzeichnisname angegeben.",
|
|
1007
|
+
"usingExistingDirectory": "Vorhandenes Verzeichnis verwenden: {dir}",
|
|
1008
|
+
"adminPinSetupOptional": "🔐 Admin-PIN-Einrichtung optional (aus Sicherheitsgründen empfohlen)",
|
|
1009
|
+
"adminPinSeparator": "----------------",
|
|
1010
1010
|
"adminPinDescription1": "Admin-PIN: 4-stellige Nummer für sicheren Zugriff",
|
|
1011
|
-
"adminPinDescription2": "
|
|
1011
|
+
"adminPinDescription2": "Lassen Sie das Feld leer, um die PIN-Einrichtung zu überspringen",
|
|
1012
1012
|
"adminPinDescription3": "Wenn Sie eine PIN festlegen, wird diese für alle zukünftigen sicheren Aktionen benötigt.",
|
|
1013
|
-
"adminPinDescription4": "AES-256-GCM-Verschlüsselung
|
|
1014
|
-
"adminPinSetupPrompt": "
|
|
1015
|
-
"skippingAdminPinSetup": "
|
|
1016
|
-
"settingUpAdminPin": "🔐
|
|
1017
|
-
"enterAdminPin": "Admin-PIN
|
|
1013
|
+
"adminPinDescription4": "AES-256-GCM-Verschlüsselung zur sicheren Speicherung der PIN.",
|
|
1014
|
+
"adminPinSetupPrompt": "Geben Sie die Administrator-PIN (4 Ziffern) ein oder lassen Sie das Feld leer, um zu überspringen:",
|
|
1015
|
+
"skippingAdminPinSetup": "Einrichtung der Administrator-PIN wird übersprungen...",
|
|
1016
|
+
"settingUpAdminPin": "🔐 Admin-PIN einrichten...",
|
|
1017
|
+
"enterAdminPin": "Geben Sie die Admin-PIN ein:",
|
|
1018
1018
|
"confirmAdminPin": "Admin-PIN bestätigen:",
|
|
1019
|
-
"pinMismatch": "PINs stimmen nicht überein. Bitte erneut
|
|
1020
|
-
"adminPinSetupSuccess": "🔐 Admin
|
|
1021
|
-
"adminPinSetupFailure": "🔐 Admin
|
|
1022
|
-
"adminProtectionEnabled": "🔐
|
|
1023
|
-
"adminProtectionDisabled": "🔐 Admin
|
|
1024
|
-
"autoDetectedI18nDirectory": "
|
|
1025
|
-
"initializingProject": "⚙️
|
|
1019
|
+
"pinMismatch": "PINs stimmen nicht überein. Bitte versuchen Sie es erneut.",
|
|
1020
|
+
"adminPinSetupSuccess": "🔐 Admin-PIN-Einrichtung erfolgreich!",
|
|
1021
|
+
"adminPinSetupFailure": "🔐 Die Einrichtung der Admin-PIN ist fehlgeschlagen. Bitte versuchen Sie es erneut.",
|
|
1022
|
+
"adminProtectionEnabled": "🔐 Administratorschutz aktiviert. Alle Aktionen erfordern eine PIN-Authentifizierung.",
|
|
1023
|
+
"adminProtectionDisabled": "🔐 Admin-Schutz deaktiviert. Alle Aktionen sind jetzt ohne PIN verfügbar.",
|
|
1024
|
+
"autoDetectedI18nDirectory": "Automatisch erkanntes i18n-Verzeichnis: {directory}",
|
|
1025
|
+
"initializingProject": "⚙️ Projektkonfiguration wird initialisiert...",
|
|
1026
1026
|
"createdSampleTranslationFile": "✅ Beispiel-Übersetzungsdatei erstellt: {file}",
|
|
1027
|
-
"languageSelectionTitle": "🌐
|
|
1027
|
+
"languageSelectionTitle": "🌐 Sprachkonfiguration",
|
|
1028
1028
|
"available": "Verfügbar",
|
|
1029
1029
|
"defaultLanguages": "📝 Standardsprachen: {languages}",
|
|
1030
|
-
"enterLanguageCodes": "🎯
|
|
1030
|
+
"enterLanguageCodes": "🎯 Geben Sie Zielsprachencodes ein (durch Kommas getrennt, z. B. de, es, fr, ru):",
|
|
1031
1031
|
"targetLanguages": "🌍 Zielsprachen",
|
|
1032
|
-
"foundSourceFiles": "📄 {count} Quelldateien zur Analyse
|
|
1033
|
-
"processingLanguage": "🔄
|
|
1032
|
+
"foundSourceFiles": "📄 Gefunden {count} Quelldateien zur Analyse",
|
|
1033
|
+
"processingLanguage": "🔄 Verarbeitungssprache: {language}",
|
|
1034
1034
|
"fileProcessingResult": "✅ Verarbeitet {file}: {translated}/{total} Schlüssel ({percentage}%)",
|
|
1035
1035
|
"overallProgress": "📊 Gesamtfortschritt: {translated}/{total} Schlüssel verarbeitet ({percentage}%)",
|
|
1036
|
-
"initializationSummaryTitle": "📋
|
|
1037
|
-
"languageSummary": "{icon} {name} ({code}): {percentage}%
|
|
1036
|
+
"initializationSummaryTitle": "📋 Zusammenfassung der Initialisierung",
|
|
1037
|
+
"languageSummary": "{icon} {name} ({code}): {percentage}% vollständig",
|
|
1038
1038
|
"languageFiles": "📄 Dateien: {count}",
|
|
1039
1039
|
"languageKeys": "🔤 Schlüssel: {translated}/{total}",
|
|
1040
|
-
"languageMissing": "⚠️
|
|
1040
|
+
"languageMissing": "⚠️ Fehlt: {count}",
|
|
1041
1041
|
"initializationCompletedSuccessfully": "🎉 Projektinitialisierung erfolgreich abgeschlossen!",
|
|
1042
1042
|
"nextStepsTitle": "🚀 Nächste Schritte",
|
|
1043
|
-
"nextStep1": "1. Überprüfen Sie die generierten Übersetzungsdateien
|
|
1043
|
+
"nextStep1": "1. Überprüfen Sie die generierten Übersetzungsdateien in Ihrem Verzeichnis „locales/“.",
|
|
1044
1044
|
"nextStep2": "2. Fügen Sie Übersetzungen für jede Zielsprache hinzu",
|
|
1045
|
-
"nextStep3": "3. Führen Sie
|
|
1046
|
-
"detectedFrameworks": "✅
|
|
1045
|
+
"nextStep3": "3. Führen Sie „npm run i18ntk“ erneut aus, um die Übersetzungen zu validieren",
|
|
1046
|
+
"detectedFrameworks": "✅ Erkannte i18n-Framework(s): {frameworks}",
|
|
1047
1047
|
"setup": {
|
|
1048
|
-
"title": "
|
|
1049
|
-
"question": "
|
|
1048
|
+
"title": "Aufstellen",
|
|
1049
|
+
"question": "Setup-Frage",
|
|
1050
1050
|
"opt_single": "Einzelne Datei",
|
|
1051
1051
|
"opt_modular": "Modular",
|
|
1052
1052
|
"opt_existing": "Vorhanden",
|
|
1053
1053
|
"choice_prompt": "Wählen Sie eine Option:",
|
|
1054
1054
|
"opt_confirm": "Bestätigen",
|
|
1055
|
-
"opt_cancel": "
|
|
1056
|
-
"apply_all_prompt": "Diese Struktur auf alle Sprachen anwenden? (
|
|
1057
|
-
"per_language_intro": "Sie haben sich
|
|
1055
|
+
"opt_cancel": "Stornieren",
|
|
1056
|
+
"apply_all_prompt": "Diese Struktur auf alle Sprachen anwenden? (J/N):",
|
|
1057
|
+
"per_language_intro": "Sie haben sich entschieden, die Sprachen individuell zu konfigurieren. Hier sind die verfügbaren Sprachen:",
|
|
1058
1058
|
"available_languages": "Verfügbare Sprachen: {languages}",
|
|
1059
|
-
"include_prompt": "Geben Sie
|
|
1059
|
+
"include_prompt": "Geben Sie durch Kommas getrennte Sprachcodes ein, die eingeschlossen werden sollen (z. B. „de,fr,es“):"
|
|
1060
1060
|
},
|
|
1061
1061
|
"warnings": {
|
|
1062
|
-
"noPackageJson": "Keine package.json gefunden. i18n-Framework kann nicht automatisch erkannt werden."
|
|
1062
|
+
"noPackageJson": "Keine package.json gefunden. Das i18n-Framework kann nicht automatisch erkannt werden."
|
|
1063
1063
|
},
|
|
1064
|
-
"errorsPackageJsonRead": "
|
|
1064
|
+
"errorsPackageJsonRead": "Fehler beim Lesen von package.json: {error}",
|
|
1065
1065
|
"errorsNoFramework": "Kein i18n-Framework erkannt. Bitte installieren Sie eines oder geben Sie es manuell an.",
|
|
1066
1066
|
"suggestions": {
|
|
1067
|
-
"noFramework": "Kein i18n-Framework erkannt. Erwägen Sie die Verwendung
|
|
1068
|
-
"installFramework": "Um ein Framework zu installieren, führen Sie aus: npm install <
|
|
1067
|
+
"noFramework": "Kein i18n-Framework erkannt. Erwägen Sie die Verwendung einer der folgenden Möglichkeiten:",
|
|
1068
|
+
"installFramework": "Um ein Framework zu installieren, führen Sie Folgendes aus: npm install <Paketname>"
|
|
1069
1069
|
},
|
|
1070
1070
|
"frameworks": {
|
|
1071
1071
|
"react": "- Reagiere auf i18next (react-i18next)",
|
|
1072
1072
|
"vue": "- Vue i18n (vue-i18n)",
|
|
1073
1073
|
"i18next": "- i18next (i18next)",
|
|
1074
|
-
"nuxt": "- Nuxt
|
|
1074
|
+
"nuxt": "- Nuxt i18n (@nuxtjs/i18n)",
|
|
1075
1075
|
"svelte": "- Svelte i18n (svelte-i18n)"
|
|
1076
1076
|
},
|
|
1077
|
-
"continueWithoutI18nPrompt": "Kein i18n-Framework erkannt. Möchten Sie
|
|
1077
|
+
"continueWithoutI18nPrompt": "Kein i18n-Framework erkannt. Möchten Sie ohne weitermachen? (J/N):",
|
|
1078
1078
|
"detectedI18nFramework": "Erkanntes i18n-Framework: {frameworks}",
|
|
1079
1079
|
"existingDirectoryItem": "{index}. {location}",
|
|
1080
|
-
"usingExistingStructure": "Vorhandene Struktur
|
|
1081
|
-
"creatingSourceDirectory": "
|
|
1082
|
-
"creatingSourceLanguageDirectory": "
|
|
1080
|
+
"usingExistingStructure": "Vorhandene Struktur verwenden: {dir}",
|
|
1081
|
+
"creatingSourceDirectory": "Quellverzeichnis erstellen: {dir}",
|
|
1082
|
+
"creatingSourceLanguageDirectory": "Quellsprachenverzeichnis erstellen: {dir}",
|
|
1083
1083
|
"errors": {
|
|
1084
1084
|
"errorExecutingCommand": "Fehler beim Ausführen des Befehls: {error}",
|
|
1085
1085
|
"sourceDirectoryNotFound": "Quellverzeichnis nicht gefunden: {dir}",
|
|
1086
|
-
"sourceLanguageDirectoryNotFound": "
|
|
1086
|
+
"sourceLanguageDirectoryNotFound": "Quellsprachenverzeichnis nicht gefunden: {dir}",
|
|
1087
1087
|
"noJsonFilesInSourceDirectory": "Keine JSON-Dateien im Quellverzeichnis gefunden: {dir}",
|
|
1088
1088
|
"invalidFilePathDetected": "Ungültiger Dateipfad erkannt",
|
|
1089
1089
|
"initializationFailed": "Initialisierung fehlgeschlagen: {error}",
|
|
1090
1090
|
"noFramework": "Kein i18n-Framework erkannt. Fahren Sie mit dem generischen Modus fort.",
|
|
1091
1091
|
"packageJsonRead": "Fehler beim Lesen von package.json."
|
|
1092
1092
|
},
|
|
1093
|
-
"processingFile": "
|
|
1094
|
-
"fileAlreadyExistsMerging": "Datei {file} existiert bereits. Neue Schlüssel
|
|
1093
|
+
"processingFile": "Verarbeitung {file} für {language}...",
|
|
1094
|
+
"fileAlreadyExistsMerging": "Datei {file} existiert bereits. Neue Schlüssel zusammenführen.",
|
|
1095
1095
|
"createdNewFile": "Neue Datei erstellt: {file}",
|
|
1096
|
-
"updatedFile": "Datei
|
|
1097
|
-
"skippingExcludedFile": "
|
|
1096
|
+
"updatedFile": "Aktualisierte Datei: {file}",
|
|
1097
|
+
"skippingExcludedFile": "Überspringen {file} für {language} da es ausgeschlossen ist.",
|
|
1098
1098
|
"continuingWithoutAdminPin": "Fortsetzung ohne Einrichtung der Admin-PIN.",
|
|
1099
|
-
"createdSourceLanguageDirectory": "
|
|
1100
|
-
"errorSettingUpAdminPin": "Fehler beim Einrichten der
|
|
1099
|
+
"createdSourceLanguageDirectory": "Erstelltes Quellsprachenverzeichnis: {dir}",
|
|
1100
|
+
"errorSettingUpAdminPin": "Fehler beim Einrichten der Admin-PIN: {error}",
|
|
1101
1101
|
"noTargetLanguagesSpecified": "Keine Zielsprachen angegeben.",
|
|
1102
1102
|
"translationFilesCreatedWarning": "Übersetzungsdateien wurden mit Platzhaltern erstellt; Überprüfung vor dem Produktionseinsatz.",
|
|
1103
|
-
"warningCannotReadSourceDir": "Warnung: Quellverzeichnis {dir}: {error}
|
|
1103
|
+
"warningCannotReadSourceDir": "Warnung: Quellverzeichnis kann nicht gelesen werden {dir}: {error}",
|
|
1104
1104
|
"warningInvalidLanguageCodes": "Warnung: Ungültige Sprachcodes werden ignoriert: {languages}",
|
|
1105
1105
|
"warningProceedingWithoutFramework": "Fortfahren ohne erkanntes i18n-Framework."
|
|
1106
1106
|
},
|
|
1107
1107
|
"language": {
|
|
1108
1108
|
"title": "🌍 Sprache ändern",
|
|
1109
|
-
"separator": "
|
|
1109
|
+
"separator": "=========================================================",
|
|
1110
1110
|
"current": "Aktuelle Sprache: {language}",
|
|
1111
1111
|
"available": "Verfügbare Sprachen:",
|
|
1112
1112
|
"languageOption": "{index}. {displayName}{current}",
|
|
1113
1113
|
"backToMainMenu": "Zurück zum Hauptmenü",
|
|
1114
|
-
"prompt": "
|
|
1114
|
+
"prompt": "Wählen Sie eine Sprache (0-8):",
|
|
1115
1115
|
"cancelled": "Sprachwechsel abgebrochen.",
|
|
1116
|
-
"invalid": "Ungültige Auswahl. Bitte erneut
|
|
1116
|
+
"invalid": "Ungültige Auswahl. Bitte versuchen Sie es erneut.",
|
|
1117
1117
|
"changed": "Sprache geändert zu: {language}",
|
|
1118
|
-
"changeFailed": "
|
|
1119
|
-
"pressEnterToContinue": "
|
|
1118
|
+
"changeFailed": "Sprache konnte nicht geändert werden: {error}",
|
|
1119
|
+
"pressEnterToContinue": "Drücken Sie die Eingabetaste, um fortzufahren..."
|
|
1120
1120
|
},
|
|
1121
1121
|
"maintainLanguagePurity": {
|
|
1122
|
-
"workflow_title": "🚀
|
|
1123
|
-
"step1_title": "📊 SCHRITT 1: Erste
|
|
1124
|
-
"step2_title": "🔧 SCHRITT 2:
|
|
1122
|
+
"workflow_title": "🚀 Arbeitsablauf zur Aufrechterhaltung der Sprachreinheit",
|
|
1123
|
+
"step1_title": "📊 SCHRITT 1: Erste Beurteilung der Sprachreinheit",
|
|
1124
|
+
"step2_title": "🔧 SCHRITT 2: Sprachkonflikte erkennen und automatisch beheben",
|
|
1125
1125
|
"step3_title": "🌐 SCHRITT 3: Automatische Übersetzungen anwenden",
|
|
1126
|
-
"step4_title": "✅ SCHRITT 4:
|
|
1126
|
+
"step4_title": "✅ SCHRITT 4: Abschließende Beurteilung der Sprachreinheit",
|
|
1127
1127
|
"workflow_error": "❌ Workflow-Fehler: {errorMessage}",
|
|
1128
|
-
"running_initial_validation": "
|
|
1129
|
-
"initial_assessment_complete": "✅
|
|
1130
|
-
"initial_assessment_warnings": "⚠️
|
|
1131
|
-
"detecting_fixing_mismatches": "
|
|
1132
|
-
"detection_complete_applying_fixes": "Erkennung abgeschlossen.
|
|
1133
|
-
"mismatch_fixes_complete": "✅
|
|
1134
|
-
"mismatch_fixes_warnings": "⚠️
|
|
1135
|
-
"applying_automatic_translations": "
|
|
1128
|
+
"running_initial_validation": "Erste Validierung der Sprachreinheit wird ausgeführt...",
|
|
1129
|
+
"initial_assessment_complete": "✅ Erstbewertung abgeschlossen: {count} Verstöße festgestellt",
|
|
1130
|
+
"initial_assessment_warnings": "⚠️Erstbewertung mit Warnungen abgeschlossen",
|
|
1131
|
+
"detecting_fixing_mismatches": "Sprachkonflikte erkennen und beheben...",
|
|
1132
|
+
"detection_complete_applying_fixes": "Erkennung abgeschlossen. Automatische Korrekturen werden angewendet...",
|
|
1133
|
+
"mismatch_fixes_complete": "✅ Behebung von Sprachkonflikten abgeschlossen: {count} Korrekturen angewendet",
|
|
1134
|
+
"mismatch_fixes_warnings": "⚠️ Behebung von Sprachkonflikten mit Warnungen abgeschlossen",
|
|
1135
|
+
"applying_automatic_translations": "Automatische Übersetzungen werden angewendet...",
|
|
1136
1136
|
"translation_preview_complete": "Übersetzungsvorschau abgeschlossen. Übersetzungen werden angewendet..."
|
|
1137
1137
|
},
|
|
1138
1138
|
"menu": {
|
|
1139
|
-
"title": "🌐 I18NTK
|
|
1140
|
-
"separator": "
|
|
1139
|
+
"title": "🌐 I18NTK-VERWALTUNGSMENÜ",
|
|
1140
|
+
"separator": "=========================================================",
|
|
1141
1141
|
"options": {
|
|
1142
1142
|
"init": "🚀 Neue Sprachen initialisieren",
|
|
1143
1143
|
"analyze": "🔍 Übersetzungen analysieren",
|
|
1144
1144
|
"validate": "✅ Übersetzungen validieren",
|
|
1145
|
-
"usage": "📊 Schlüsselverwendung
|
|
1146
|
-
"complete": "🎯 Übersetzungen
|
|
1147
|
-
"sizing": "📏
|
|
1148
|
-
"fix": "🛠️
|
|
1149
|
-
"scanner": "🔍 i18n-
|
|
1150
|
-
"translate": "🌐
|
|
1151
|
-
"workflow": "🔄
|
|
1145
|
+
"usage": "📊 Überprüfen Sie die Schlüsselverwendung",
|
|
1146
|
+
"complete": "🎯 Vollständige Übersetzungen (100 % Abdeckung)",
|
|
1147
|
+
"sizing": "📏 Analysieren Sie die Größe",
|
|
1148
|
+
"fix": "🛠️ Platzhalterübersetzungen korrigieren",
|
|
1149
|
+
"scanner": "🔍 Nach i18n-Problemen suchen",
|
|
1150
|
+
"translate": "🌐 Automatische Übersetzung (Beta)",
|
|
1151
|
+
"workflow": "🔄 Führen Sie den vollständigen Workflow aus",
|
|
1152
1152
|
"status": "📋 Projektstatus anzeigen",
|
|
1153
|
-
"delete": "🗑️
|
|
1154
|
-
"language": "🌍
|
|
1155
|
-
"settings": "⚙️
|
|
1153
|
+
"delete": "🗑️ Alle Berichte löschen",
|
|
1154
|
+
"language": "🌍 Ändern Sie die Sprache der Benutzeroberfläche",
|
|
1155
|
+
"settings": "⚙️ Einstellungen",
|
|
1156
1156
|
"help": "❓ Hilfe",
|
|
1157
|
-
"debug": "🔧 Debug-
|
|
1158
|
-
"exit": "🚪
|
|
1157
|
+
"debug": "🔧 Debug-Tools",
|
|
1158
|
+
"exit": "🚪 Ausstieg"
|
|
1159
1159
|
},
|
|
1160
1160
|
"update": "📦 Paket aktualisieren",
|
|
1161
1161
|
"goodbye": "👋 Auf Wiedersehen!",
|
|
1162
|
-
"invalidChoice": "
|
|
1163
|
-
"returning": "
|
|
1164
|
-
"invalidOption": "
|
|
1165
|
-
"nonInteractiveModeWarning": "
|
|
1166
|
-
"useDirectExecution": "
|
|
1167
|
-
"useHelpForCommands": "
|
|
1168
|
-
"returnToMainMenu": "
|
|
1169
|
-
"pressEnterToContinue": "
|
|
1170
|
-
"selectOptionPrompt": "
|
|
1171
|
-
"selectDebugToolPrompt": "
|
|
1172
|
-
"selectLogPrompt": "
|
|
1173
|
-
"autoDetectedI18nDirectory": "
|
|
1174
|
-
"executingCommand": "
|
|
1162
|
+
"invalidChoice": "Ungültige Auswahl. Bitte wählen Sie 0-15.",
|
|
1163
|
+
"returning": "Zurück zum Hauptmenü...",
|
|
1164
|
+
"invalidOption": "Ungültige Option. Bitte versuchen Sie es erneut.",
|
|
1165
|
+
"nonInteractiveModeWarning": "Nicht interaktiver Modus erkannt. Das Menü wird nur als Referenz angezeigt.",
|
|
1166
|
+
"useDirectExecution": "Verwenden Sie: node main/manage/index.js --command=<command> zur direkten Ausführung.",
|
|
1167
|
+
"useHelpForCommands": "Verwenden Sie: node main/manage/index.js --help für verfügbare Befehle.",
|
|
1168
|
+
"returnToMainMenu": "Drücken Sie die Eingabetaste, um zum Hauptmenü zurückzukehren.",
|
|
1169
|
+
"pressEnterToContinue": "Drücken Sie die Eingabetaste, um fortzufahren...",
|
|
1170
|
+
"selectOptionPrompt": "Wählen Sie eine Option:",
|
|
1171
|
+
"selectDebugToolPrompt": "Wählen Sie ein Debug-Tool aus:",
|
|
1172
|
+
"selectLogPrompt": "Wählen Sie eine Protokolldatei (1-{count}):",
|
|
1173
|
+
"autoDetectedI18nDirectory": "Automatisch erkanntes i18n-Verzeichnis: {directory}",
|
|
1174
|
+
"executingCommand": "Befehl ausführen: {command}",
|
|
1175
1175
|
"unknownCommand": "Unbekannter Befehl: {command}",
|
|
1176
1176
|
"languageOption": "{index}. {displayName}{current}",
|
|
1177
1177
|
"debugTools": {
|
|
1178
1178
|
"1": "Protokolldateianalyse",
|
|
1179
|
-
"2": "Analyse der
|
|
1180
|
-
"3": "Analyse der
|
|
1181
|
-
"4": "
|
|
1182
|
-
"5": "
|
|
1183
|
-
"6": "
|
|
1179
|
+
"2": "Analyse der Verwendung von Übersetzungsschlüsseln",
|
|
1180
|
+
"3": "Analyse der Vollständigkeit der Übersetzung",
|
|
1181
|
+
"4": "Analyse des Übersetzungsformats",
|
|
1182
|
+
"5": "Analyse des Übersetzungstyps",
|
|
1183
|
+
"6": "Analyse der Übersetzungsstruktur"
|
|
1184
1184
|
},
|
|
1185
1185
|
"native_translations": {
|
|
1186
1186
|
"exact_translation_found": "✅ {keyPath}: {value}",
|
|
1187
|
-
"no_exact_translation": "⚠️ Keine
|
|
1188
|
-
"similar_key": "- {key} ({similarity}%
|
|
1189
|
-
"processing_language_files": "🔄
|
|
1187
|
+
"no_exact_translation": "⚠️ Keine genaue Übersetzung für '{keyPath}', ähnliche Schlüssel gefunden:",
|
|
1188
|
+
"similar_key": "- {key} ({similarity}% übereinstimmen)",
|
|
1189
|
+
"processing_language_files": "🔄Verarbeitung {count} Sprachdateien...",
|
|
1190
1190
|
"file_not_found": "⚠️ Datei nicht gefunden: {file}",
|
|
1191
|
-
"processing_translations": "🌍
|
|
1192
|
-
"backup_created": "📋
|
|
1193
|
-
"error_parsing_json": "❌ Fehler beim Parsen
|
|
1194
|
-
"existing_keys_found": "📊 {code}: {count} vorhandene Schlüssel
|
|
1195
|
-
"error_writing_json": "❌ Fehler beim Schreiben
|
|
1191
|
+
"processing_translations": "🌍Verarbeitung {code} Übersetzungen...",
|
|
1192
|
+
"backup_created": "📋 Backup erstellt: {filename}",
|
|
1193
|
+
"error_parsing_json": "❌ Fehler beim Parsen {code}.json: {errorMessage}",
|
|
1194
|
+
"existing_keys_found": "📊 {code}: Gefunden {count} vorhandene Schlüssel",
|
|
1195
|
+
"error_writing_json": "❌ Fehler beim Schreiben {code}.json: {errorMessage}",
|
|
1196
1196
|
"translations_replaced": "📊 {code}: {count} Übersetzungen ersetzt",
|
|
1197
|
-
"translation_replacement_complete": "✅
|
|
1198
|
-
"total_replacements": "📊
|
|
1199
|
-
"dry_run_mode": "⚠️
|
|
1200
|
-
"tool_title": "🌍 Native Translation
|
|
1201
|
-
"tool_separator": "
|
|
1202
|
-
"dry_run_warning": "⚠️ DRY-
|
|
1203
|
-
"error_during_replacement": "❌ Fehler
|
|
1197
|
+
"translation_replacement_complete": "✅ Übersetzungsersetzung abgeschlossen!",
|
|
1198
|
+
"total_replacements": "📊 Gesamtersatz: {count}",
|
|
1199
|
+
"dry_run_mode": "⚠️ TROCKENLAUFMODUS – Es wurden keine Dateien geändert",
|
|
1200
|
+
"tool_title": "🌍 Native Translation Replacement v1.9.1",
|
|
1201
|
+
"tool_separator": "=====================================",
|
|
1202
|
+
"dry_run_warning": "⚠️ Läuft im DRY RUN-Modus – es werden keine Dateien geändert",
|
|
1203
|
+
"error_during_replacement": "❌ Fehler beim Ersetzen der Übersetzung:"
|
|
1204
1204
|
}
|
|
1205
1205
|
},
|
|
1206
1206
|
"config": {
|
|
1207
|
-
"dirFallbackWarning": "⚠️ Verzeichnis {dir} nicht gefunden.
|
|
1207
|
+
"dirFallbackWarning": "⚠️ Verzeichnis {dir} nicht gefunden. Benutzen {fallback}.",
|
|
1208
1208
|
"dirInvalidError": "❌ Ungültiges Verzeichnis: {dir}"
|
|
1209
1209
|
},
|
|
1210
1210
|
"operations": {
|
|
1211
|
-
"completed": "✅
|
|
1212
|
-
"deleteReportsTitle": "🗑️ Berichte
|
|
1213
|
-
"scanningForFiles": "🔍
|
|
1211
|
+
"completed": "✅ Operation erfolgreich abgeschlossen!",
|
|
1212
|
+
"deleteReportsTitle": "🗑️ Berichte und Protokolle löschen",
|
|
1213
|
+
"scanningForFiles": "🔍 Nach zu löschenden Dateien suchen...",
|
|
1214
1214
|
"noFilesFoundToDelete": "✅ Keine Dateien zum Löschen gefunden.",
|
|
1215
1215
|
"availableDirectories": "📁 Verfügbare Verzeichnisse:",
|
|
1216
1216
|
"allDirectories": "Alle Verzeichnisse",
|
|
1217
|
-
"andMore": "und
|
|
1218
|
-
"cancelOption": "
|
|
1217
|
+
"andMore": "und mehr...",
|
|
1218
|
+
"cancelOption": "Stornieren",
|
|
1219
1219
|
"cancelReportOption": "Abbrechen / Zurück zum Menü",
|
|
1220
1220
|
"invalidSelection": "❌ Ungültige Auswahl.",
|
|
1221
|
-
"foundFilesInSelectedDirectories": "📊 {count} Dateien in ausgewählten Verzeichnissen
|
|
1221
|
+
"foundFilesInSelectedDirectories": "📊 Gefunden {count} Dateien in ausgewählten Verzeichnissen:",
|
|
1222
1222
|
"deletionOptions": "🗑️ Löschoptionen:",
|
|
1223
1223
|
"deleteAllFiles": "Alle Dateien löschen",
|
|
1224
|
-
"keepLast3Files": "
|
|
1225
|
-
"keepLast5Files": "
|
|
1224
|
+
"keepLast3Files": "Die letzten 3 Dateien behalten (nach Datum)",
|
|
1225
|
+
"keepLast5Files": "Die letzten 5 Dateien behalten (nach Datum)",
|
|
1226
1226
|
"noFilesToDelete": "✅ Keine Dateien zum Löschen.",
|
|
1227
|
-
"filesToDeleteCount": "📋
|
|
1228
|
-
"filesToKeepCount": "📋
|
|
1229
|
-
"confirmDeletion": "⚠️
|
|
1227
|
+
"filesToDeleteCount": "📋 Zu löschende Dateien: {count}",
|
|
1228
|
+
"filesToKeepCount": "📋 Zu behaltende Dateien: {count}",
|
|
1229
|
+
"confirmDeletion": "⚠️ Sind Sie sicher, dass Sie diese Dateien löschen möchten? (J/N):",
|
|
1230
1230
|
"deletedFile": "✅ Gelöscht: {filename}",
|
|
1231
|
-
"failedToDeleteFile": "❌
|
|
1231
|
+
"failedToDeleteFile": "❌ Fehler beim Löschen {filename}: {error}",
|
|
1232
1232
|
"cancelled": "❌ Vorgang abgebrochen.",
|
|
1233
1233
|
"init": {
|
|
1234
1234
|
"title": "🚀 Neue Sprache initialisieren"
|
|
1235
1235
|
},
|
|
1236
1236
|
"usage": {
|
|
1237
|
-
"title": "📊 Schlüsselverwendung
|
|
1238
|
-
"noUsedKeysHint": "
|
|
1237
|
+
"title": "📊 Überprüfen Sie die Schlüsselverwendung",
|
|
1238
|
+
"noUsedKeysHint": "Übersetzungen gefunden, aber keine Verwendung in der Quelle. Überprüfen Sie --source-dir und translationPatterns."
|
|
1239
1239
|
},
|
|
1240
1240
|
"analyze": {
|
|
1241
1241
|
"title": "🔍 Übersetzungen analysieren"
|
|
@@ -1244,94 +1244,94 @@
|
|
|
1244
1244
|
"title": "✅ Übersetzungen validieren"
|
|
1245
1245
|
},
|
|
1246
1246
|
"settings": {
|
|
1247
|
-
"title": "⚙️
|
|
1248
|
-
"separator": "
|
|
1247
|
+
"title": "⚙️ Einstellungsverwaltung",
|
|
1248
|
+
"separator": "========================================================="
|
|
1249
1249
|
},
|
|
1250
1250
|
"complete": {
|
|
1251
|
-
"deletingOldReport": "🗑️
|
|
1252
|
-
"generatingFreshAnalysis": "🔄
|
|
1253
|
-
"couldNotGenerate": "⚠️
|
|
1254
|
-
"reportNotFound": "⚠️
|
|
1255
|
-
"foundMissingKeys": "🔍 {count}
|
|
1256
|
-
"couldNotParse": "⚠️
|
|
1257
|
-
"title": "🎯 ÜBERSETZUNGEN
|
|
1258
|
-
"separator": "
|
|
1251
|
+
"deletingOldReport": "🗑️ Löschen des alten Nutzungsberichts für eine neue Analyse",
|
|
1252
|
+
"generatingFreshAnalysis": "🔄 Generieren neuer Nutzungsanalysen ...",
|
|
1253
|
+
"couldNotGenerate": "⚠️ Nutzungsanalyse konnte nicht erstellt werden. Verwendung häufiger fehlender Schlüssel.",
|
|
1254
|
+
"reportNotFound": "⚠️ Nutzungsbericht nicht gefunden. Generierung neuer Analysen...",
|
|
1255
|
+
"foundMissingKeys": "🔍Gefunden {count} Fehlende Schlüssel aus der Nutzungsanalyse",
|
|
1256
|
+
"couldNotParse": "⚠️ Nutzungsbericht konnte nicht analysiert werden. Verwendung häufiger fehlender Schlüssel.",
|
|
1257
|
+
"title": "🎯 ÜBERSETZUNGEN ABSCHLIESSEN",
|
|
1258
|
+
"separator": "=========================================================",
|
|
1259
1259
|
"sourceDir": "📁 Quellverzeichnis: {sourceDir}",
|
|
1260
1260
|
"sourceLanguage": "🔤 Quellsprache: {sourceLanguage}",
|
|
1261
|
-
"dryRunMode": "🧪
|
|
1261
|
+
"dryRunMode": "🧪 TROCKENLAUFMODUS – Es werden keine Dateien geändert",
|
|
1262
1262
|
"languages": "🎯 Zielsprachen: {languages}",
|
|
1263
|
-
"addingMissingKeys": "➕ Fehlende Schlüssel
|
|
1264
|
-
"processing": "🔄
|
|
1265
|
-
"addedKeys": "✅ {count} Schlüssel
|
|
1263
|
+
"addingMissingKeys": "➕ Fehlende Schlüssel zu Übersetzungsdateien hinzufügen...",
|
|
1264
|
+
"processing": "🔄Verarbeitung {language}...",
|
|
1265
|
+
"addedKeys": "✅ Hinzugefügt {count} Schlüssel",
|
|
1266
1266
|
"changeDetails": "📝 {file}: {key}",
|
|
1267
|
-
"noChangesNeeded": "✅ Keine Änderungen
|
|
1268
|
-
"summaryTitle": "📊
|
|
1267
|
+
"noChangesNeeded": "✅ Keine Änderungen erforderlich für {language}",
|
|
1268
|
+
"summaryTitle": "📊 ABSCHLUSSZUSAMMENFASSUNG",
|
|
1269
1269
|
"totalChanges": "📝 Gesamtänderungen: {totalChanges}",
|
|
1270
1270
|
"languagesProcessed": "🌐 Verarbeitete Sprachen: {languagesProcessed}",
|
|
1271
1271
|
"missingKeysAdded": "➕ Fehlende Schlüssel hinzugefügt: {missingKeysAdded}",
|
|
1272
1272
|
"nextStepsTitle": "📋 NÄCHSTE SCHRITTE",
|
|
1273
|
-
"nextStep1": "1. Nutzungsanalyse
|
|
1273
|
+
"nextStep1": "1. Führen Sie eine Nutzungsanalyse durch:",
|
|
1274
1274
|
"nextStep2": "2. Übersetzungen validieren:",
|
|
1275
1275
|
"nextStep3": "3. Vollständigkeit analysieren:",
|
|
1276
1276
|
"allKeysAvailable": "🎉 Alle Übersetzungsschlüssel sind jetzt verfügbar!",
|
|
1277
|
-
"runWithoutDryRun": "💡
|
|
1278
|
-
"pressEnterToContinue": "
|
|
1277
|
+
"runWithoutDryRun": "💡 Ohne --dry-run ausführen, um Änderungen zu übernehmen",
|
|
1278
|
+
"pressEnterToContinue": "Drücken Sie die Eingabetaste, um fortzufahren..."
|
|
1279
1279
|
},
|
|
1280
1280
|
"updatePackage": {
|
|
1281
|
-
"title": "📦 i18n-toolkit
|
|
1282
|
-
"description": "
|
|
1283
|
-
"command": "
|
|
1284
|
-
"confirm": "
|
|
1285
|
-
"updating": "
|
|
1281
|
+
"title": "📦 i18n-toolkit-Paket aktualisieren",
|
|
1282
|
+
"description": "Dadurch wird das i18n-toolkit-Paket auf die neueste auf npm verfügbare Version aktualisiert.",
|
|
1283
|
+
"command": "Befehl zum Ausführen",
|
|
1284
|
+
"confirm": "Sind Sie sicher, dass Sie mit dem Update fortfahren möchten? (J/N):",
|
|
1285
|
+
"updating": "Paket wird aktualisiert... Dies kann einen Moment dauern.",
|
|
1286
1286
|
"success": "✅ i18n-toolkit erfolgreich aktualisiert!",
|
|
1287
|
-
"error": "❌
|
|
1288
|
-
"cancelled": "❌
|
|
1287
|
+
"error": "❌ i18n-Toolkit konnte nicht aktualisiert werden",
|
|
1288
|
+
"cancelled": "❌ Update abgebrochen."
|
|
1289
1289
|
}
|
|
1290
1290
|
},
|
|
1291
1291
|
"security": {
|
|
1292
|
-
"pathValidationFailed": "
|
|
1293
|
-
"invalidInputType": "
|
|
1294
|
-
"pathTraversalAttempt": "
|
|
1292
|
+
"pathValidationFailed": "path_validation_failed",
|
|
1293
|
+
"invalidInputType": "invalid_input_type",
|
|
1294
|
+
"pathTraversalAttempt": "path_traversal_attempt",
|
|
1295
1295
|
"pathValidated": "✅ Pfad erfolgreich validiert",
|
|
1296
|
-
"pathValidationError": "
|
|
1296
|
+
"pathValidationError": "path_validation_error",
|
|
1297
1297
|
"fileTooLarge": "Sicherheit: Datei zu groß: {filePath}",
|
|
1298
|
-
"fileReadError": "Sicherheit:
|
|
1298
|
+
"fileReadError": "Sicherheit: Dateilesefehler: {errorMessage}",
|
|
1299
1299
|
"contentTooLargeForFile": "Sicherheit: Inhalt zu groß für Datei: {filePath}",
|
|
1300
|
-
"fileWriteError": "Sicherheit:
|
|
1300
|
+
"fileWriteError": "Sicherheit: Dateischreibfehler: {errorMessage}",
|
|
1301
1301
|
"jsonStringTooLarge": "Sicherheit: JSON-String zu groß",
|
|
1302
|
-
"jsonParseError": "Sicherheit:
|
|
1303
|
-
"inputContainsDisallowedCharacters": "Sicherheit: Eingabe enthält unzulässige Zeichen",
|
|
1302
|
+
"jsonParseError": "Sicherheit: JSON-Analysefehler: {errorMessage}",
|
|
1303
|
+
"inputContainsDisallowedCharacters": "Sicherheit: Die Eingabe enthält unzulässige Zeichen",
|
|
1304
1304
|
"unknownCommandArgument": "Sicherheit: Unbekanntes Befehlsargument: {key}",
|
|
1305
1305
|
"unknown_command_argument": "Sicherheit: Unbekanntes Befehlsargument: {key}",
|
|
1306
1306
|
"unknownConfigKey": "Sicherheit: Unbekannter Konfigurationsschlüssel: {key}",
|
|
1307
1307
|
"unknown_config_key": "Sicherheit: Unbekannter Konfigurationsschlüssel: {key}",
|
|
1308
|
-
"securityAlert": "[
|
|
1308
|
+
"securityAlert": "[SICHERHEITSWARNUNG] {timestamp}: {event}",
|
|
1309
1309
|
"contentTooLarge": "Sicherheit: Inhalt zu groß für Datei: {validatedPath}",
|
|
1310
|
-
"inputDisallowedCharacters": "Sicherheit: Eingabe enthält unzulässige Zeichen",
|
|
1310
|
+
"inputDisallowedCharacters": "Sicherheit: Die Eingabe enthält unzulässige Zeichen",
|
|
1311
1311
|
"unknownCommandArg": "Unbekanntes Befehlsargument",
|
|
1312
1312
|
"logMessage": "[SICHERHEIT {level}] {timestamp}: {event}",
|
|
1313
|
-
"alertMessage": "[
|
|
1313
|
+
"alertMessage": "[SICHERHEITSWARNUNG] {timestamp}: {event}",
|
|
1314
1314
|
"securityWarning": "[SICHERHEITSWARNUNG] {timestamp}: {event}",
|
|
1315
|
-
"json_parse_error": "Sicherheit:
|
|
1316
|
-
"file_too_large": "
|
|
1317
|
-
"file_read_error": "
|
|
1318
|
-
"content_too_large_for_file": "
|
|
1319
|
-
"file_write_error": "
|
|
1320
|
-
"json_string_too_large": "
|
|
1321
|
-
"recursion_detected": "
|
|
1322
|
-
"operation_timeout": "
|
|
1323
|
-
"operation_error": "
|
|
1324
|
-
"directory_read_error": "
|
|
1325
|
-
"security_alert": "
|
|
1315
|
+
"json_parse_error": "Sicherheit: JSON-Analysefehler: {errorMessage}",
|
|
1316
|
+
"file_too_large": "Datei zu groß",
|
|
1317
|
+
"file_read_error": "Fehler beim Lesen der Datei",
|
|
1318
|
+
"content_too_large_for_file": "Der Inhalt ist zu groß für die Datei",
|
|
1319
|
+
"file_write_error": "Fehler beim Schreiben der Datei",
|
|
1320
|
+
"json_string_too_large": "Json-String zu groß",
|
|
1321
|
+
"recursion_detected": "Rekursion erkannt in {operation}",
|
|
1322
|
+
"operation_timeout": "Betriebszeitüberschreitung: {operation}",
|
|
1323
|
+
"operation_error": "Bedienungsfehler in {operation}: {error}",
|
|
1324
|
+
"directory_read_error": "Fehler beim Lesen des Verzeichnisses: {errorMessage}",
|
|
1325
|
+
"security_alert": "Sicherheitswarnung"
|
|
1326
1326
|
},
|
|
1327
1327
|
"settings-cli": {
|
|
1328
1328
|
"settings": {
|
|
1329
1329
|
"mainMenu": {
|
|
1330
1330
|
"title": "Hauptmenü:",
|
|
1331
1331
|
"uiSettings": "UI-Einstellungen",
|
|
1332
|
-
"uiSettingsDesc": "Sprache,
|
|
1332
|
+
"uiSettingsDesc": "Optionen für Sprache, Thema und Benutzeroberfläche",
|
|
1333
1333
|
"directorySettings": "Verzeichniseinstellungen",
|
|
1334
|
-
"directorySettingsDesc": "Quell- und
|
|
1334
|
+
"directorySettingsDesc": "Quell- und Ausgabeverzeichnispfade",
|
|
1335
1335
|
"scriptDirectorySettings": "Skriptverzeichniseinstellungen",
|
|
1336
1336
|
"scriptDirectorySettingsDesc": "Verzeichnispfade für einzelne Skriptvorgänge",
|
|
1337
1337
|
"processingSettings": "Verarbeitungseinstellungen",
|
|
@@ -1340,240 +1340,240 @@
|
|
|
1340
1340
|
"advancedSettingsDesc": "Validierung, Protokollierung und Expertenoptionen",
|
|
1341
1341
|
"viewAllSettings": "Alle Einstellungen anzeigen",
|
|
1342
1342
|
"viewAllSettingsDesc": "Aktuelle Konfiguration anzeigen",
|
|
1343
|
-
"importExport": "
|
|
1343
|
+
"importExport": "Import/Export",
|
|
1344
1344
|
"importExportDesc": "Einstellungen sichern und wiederherstellen",
|
|
1345
|
-
"resetToDefaults": "
|
|
1345
|
+
"resetToDefaults": "Auf Standardeinstellungen zurücksetzen",
|
|
1346
1346
|
"resetToDefaultsDesc": "Werkseinstellungen wiederherstellen",
|
|
1347
1347
|
"reportBug": "Fehler melden",
|
|
1348
|
-
"reportBugDesc": "
|
|
1348
|
+
"reportBugDesc": "Senden Sie einen Problembericht auf GitHub",
|
|
1349
1349
|
"saveChanges": "Änderungen speichern",
|
|
1350
|
-
"saveChangesDesc": "
|
|
1350
|
+
"saveChangesDesc": "Speichern Sie die aktuellen Einstellungen in einer Datei",
|
|
1351
1351
|
"updatePackage": "Paket aktualisieren",
|
|
1352
|
-
"updatePackageDesc": "i18n-toolkit-Paket über npm
|
|
1353
|
-
"help": "
|
|
1354
|
-
"helpDesc": "Detaillierte
|
|
1355
|
-
"quit": "
|
|
1356
|
-
"quitDesc": "Einstellungen
|
|
1357
|
-
"unsavedChangesWarning": "⚠️
|
|
1358
|
-
"saveChangesBeforeQuit": "Möchten Sie Änderungen vor dem Beenden speichern? (
|
|
1359
|
-
"selectOption": "Option
|
|
1360
|
-
"goodbyeMessage": "Vielen Dank
|
|
1352
|
+
"updatePackageDesc": "Aktualisieren Sie das i18n-toolkit-Paket über npm",
|
|
1353
|
+
"help": "Helfen",
|
|
1354
|
+
"helpDesc": "Detaillierte Hilfeinformationen anzeigen",
|
|
1355
|
+
"quit": "Aufhören",
|
|
1356
|
+
"quitDesc": "Einstellungen beenden (bei Bedarf mit Speicheraufforderung)",
|
|
1357
|
+
"unsavedChangesWarning": "⚠️ Sie haben nicht gespeicherte Änderungen",
|
|
1358
|
+
"saveChangesBeforeQuit": "Möchten Sie die Änderungen vor dem Beenden speichern? (J/N):",
|
|
1359
|
+
"selectOption": "Wählen Sie eine Option:",
|
|
1360
|
+
"goodbyeMessage": "Vielen Dank, dass Sie den i18n-Einstellungsmanager verwenden!"
|
|
1361
1361
|
},
|
|
1362
|
-
"goodbyeMessage": "Vielen Dank
|
|
1363
|
-
"relativePathHint": "Verwenden Sie relative Pfade
|
|
1362
|
+
"goodbyeMessage": "Vielen Dank, dass Sie den i18n-Einstellungsmanager verwenden!",
|
|
1363
|
+
"relativePathHint": "Verwenden Sie relative Pfade aus diesem Verzeichnis (z. B. ./src/i18n/locales)",
|
|
1364
1364
|
"currentDirectory": "Aktuelles Projektverzeichnis"
|
|
1365
1365
|
},
|
|
1366
1366
|
"settings_manager": {
|
|
1367
1367
|
"error_loading_settings": "❌ Fehler beim Laden der Einstellungen:",
|
|
1368
1368
|
"error_saving_settings": "❌ Fehler beim Speichern der Einstellungen:",
|
|
1369
|
-
"error_setting_value": "❌
|
|
1369
|
+
"error_setting_value": "❌ Fehlereinstellungswert:",
|
|
1370
1370
|
"missing_required_setting": "❌ Fehlende erforderliche Einstellung: {prop}",
|
|
1371
1371
|
"invalid_language": "❌ Ungültige Sprache: {language}",
|
|
1372
|
-
"invalid_source_language": "❌ Ungültige
|
|
1373
|
-
"default_languages_must_be_array": "❌ defaultLanguages muss ein Array sein",
|
|
1372
|
+
"invalid_source_language": "❌ Ungültige Ausgangssprache: {sourceLanguage}",
|
|
1373
|
+
"default_languages_must_be_array": "❌ defaultLanguages muss ein Array sein",
|
|
1374
1374
|
"invalid_date_format": "❌ Ungültiges Datumsformat: {dateFormat}. Gültige Formate: {validFormats}",
|
|
1375
1375
|
"invalid_time_format": "❌ Ungültiges Zeitformat: {timeFormat}. Gültige Formate: {validFormats}",
|
|
1376
1376
|
"notifications_types_must_be_object": "❌ notifications.types muss ein Objekt sein",
|
|
1377
|
-
"exclude_files_must_be_array": "❌
|
|
1378
|
-
"exclude_dirs_must_be_array": "❌
|
|
1377
|
+
"exclude_files_must_be_array": "❌excludeFiles muss ein Array sein",
|
|
1378
|
+
"exclude_dirs_must_be_array": "❌excludeDirs muss ein Array sein",
|
|
1379
1379
|
"include_extensions_must_be_array": "❌ includeExtensions muss ein Array sein",
|
|
1380
|
-
"invalid_batch_size": "❌ Ungültige
|
|
1380
|
+
"invalid_batch_size": "❌ Ungültige Chargengröße. Muss eine positive Zahl sein",
|
|
1381
1381
|
"invalid_max_concurrent_files": "❌ Ungültige maximale Anzahl gleichzeitiger Dateien. Muss eine positive Zahl sein",
|
|
1382
|
-
"invalid_sizing_threshold": "❌ Ungültiger
|
|
1383
|
-
"invalid_timeout": "❌ Ungültiges Timeout.
|
|
1382
|
+
"invalid_sizing_threshold": "❌ Ungültiger Größenschwellenwert. Muss eine positive Zahl sein",
|
|
1383
|
+
"invalid_timeout": "❌ Ungültiges Timeout. Muss mindestens 1000 ms betragen",
|
|
1384
1384
|
"invalid_sizing_format": "❌ Ungültiges Größenformat: {sizingFormat}. Gültige Formate: {validFormats}",
|
|
1385
|
-
"error_validating_settings": "❌ Fehler
|
|
1386
|
-
"backup_created": "📋
|
|
1387
|
-
"error_creating_backup": "❌ Fehler beim Erstellen
|
|
1388
|
-
"language_not_supported": "Sprache '{language}' wird nicht unterstützt.
|
|
1389
|
-
"ui_language_set": "🌍 UI-Sprache
|
|
1385
|
+
"error_validating_settings": "❌ Fehler beim Validieren der Einstellungen:",
|
|
1386
|
+
"backup_created": "📋 Backup erstellt: {backupPath}",
|
|
1387
|
+
"error_creating_backup": "❌ Fehler beim Erstellen des Backups:",
|
|
1388
|
+
"language_not_supported": "Sprache '{language}' wird nicht unterstützt. Verfügbar: {availableLanguages}",
|
|
1389
|
+
"ui_language_set": "🌍 UI-Sprache eingestellt auf: {language}"
|
|
1390
1390
|
}
|
|
1391
1391
|
},
|
|
1392
1392
|
"settings": {
|
|
1393
|
-
"title": "⚙️
|
|
1394
|
-
"separator": "
|
|
1395
|
-
"goodbyeMessage": "Vielen Dank
|
|
1396
|
-
"relativePathHint": "
|
|
1393
|
+
"title": "⚙️ Einstellungsverwaltung",
|
|
1394
|
+
"separator": "=========================================================",
|
|
1395
|
+
"goodbyeMessage": "Vielen Dank, dass Sie den i18ntk-Einstellungsmanager verwenden!",
|
|
1396
|
+
"relativePathHint": "Verwenden Sie relative Pfade aus diesem Verzeichnis (z. B. ./src/i18n/locales)",
|
|
1397
1397
|
"currentDirectory": "Aktuelles Projektverzeichnis",
|
|
1398
|
-
"startingSettings": "
|
|
1398
|
+
"startingSettings": "Starteinstellungen:",
|
|
1399
1399
|
"pin": "STIFT:",
|
|
1400
1400
|
"reportBug": {
|
|
1401
1401
|
"title": "Fehler melden",
|
|
1402
|
-
"description": "Melden Sie alle
|
|
1403
|
-
"guidance": "
|
|
1404
|
-
"checkLogs": "1. Überprüfen Sie die
|
|
1405
|
-
"documentIssue": "2. Dokumentieren Sie das Problem mit
|
|
1406
|
-
"contactSupport": "3.
|
|
1407
|
-
"completed": "
|
|
1408
|
-
"instructions": "
|
|
1402
|
+
"description": "Melden Sie alle Probleme oder Fehler, auf die Sie stoßen",
|
|
1403
|
+
"guidance": "So melden Sie Probleme effektiv:",
|
|
1404
|
+
"checkLogs": "1. Überprüfen Sie die Debug-Protokolle in Ihrem Projektverzeichnis",
|
|
1405
|
+
"documentIssue": "2. Dokumentieren Sie das Problem mit Schritten zur Reproduktion",
|
|
1406
|
+
"contactSupport": "3. Wenden Sie sich an Ihren Systemadministrator oder Ihr Support-Team",
|
|
1407
|
+
"completed": "Anleitung zur Fehlerberichterstattung angezeigt",
|
|
1408
|
+
"instructions": "Befolgen Sie die obigen Anweisungen, um den Fehler zu melden."
|
|
1409
1409
|
},
|
|
1410
1410
|
"mainMenu": {
|
|
1411
1411
|
"title": "Hauptmenü:",
|
|
1412
1412
|
"uiSettings": "UI-Einstellungen",
|
|
1413
|
-
"uiSettingsDesc": "Sprache,
|
|
1413
|
+
"uiSettingsDesc": "Optionen für Sprache, Thema und Benutzeroberfläche",
|
|
1414
1414
|
"directorySettings": "Verzeichniseinstellungen",
|
|
1415
|
-
"directorySettingsDesc": "Quell- und
|
|
1415
|
+
"directorySettingsDesc": "Quell- und Ausgabeverzeichnispfade",
|
|
1416
1416
|
"processingSettings": "Verarbeitungseinstellungen",
|
|
1417
|
-
"processingSettingsDesc": "
|
|
1417
|
+
"processingSettingsDesc": "Stapelgröße, Parallelität und Leistung",
|
|
1418
1418
|
"advancedSettings": "Erweiterte Einstellungen",
|
|
1419
1419
|
"advancedSettingsDesc": "Validierung, Protokollierung und Expertenoptionen",
|
|
1420
1420
|
"viewAllSettings": "Alle Einstellungen anzeigen",
|
|
1421
1421
|
"viewAllSettingsDesc": "Aktuelle Konfiguration anzeigen",
|
|
1422
|
-
"importExport": "
|
|
1422
|
+
"importExport": "Import/Export",
|
|
1423
1423
|
"updatePackage": "Paket aktualisieren",
|
|
1424
|
-
"updatePackageDesc": "i18n-toolkit-Paket über npm
|
|
1424
|
+
"updatePackageDesc": "Aktualisieren Sie das i18n-toolkit-Paket über npm",
|
|
1425
1425
|
"importExportDesc": "Einstellungen sichern und wiederherstellen",
|
|
1426
|
-
"resetToDefaults": "
|
|
1426
|
+
"resetToDefaults": "Auf Standardeinstellungen zurücksetzen",
|
|
1427
1427
|
"resetToDefaultsDesc": "Werkseinstellungen wiederherstellen",
|
|
1428
1428
|
"reportBug": "Fehler melden",
|
|
1429
|
-
"reportBugDesc": "
|
|
1429
|
+
"reportBugDesc": "Senden Sie einen Problembericht auf GitHub",
|
|
1430
1430
|
"saveChanges": "Änderungen speichern",
|
|
1431
|
-
"saveChangesDesc": "
|
|
1432
|
-
"help": "
|
|
1433
|
-
"helpDesc": "Detaillierte
|
|
1434
|
-
"quit": "
|
|
1435
|
-
"quitDesc": "Einstellungen
|
|
1436
|
-
"unsavedChangesWarning": "⚠️
|
|
1437
|
-
"saveChangesBeforeQuit": "Möchten Sie Änderungen vor dem Beenden speichern? (
|
|
1438
|
-
"selectOption": "
|
|
1439
|
-
"goodbyeMessage": "Vielen Dank
|
|
1440
|
-
"selectSettingPrompt": "
|
|
1441
|
-
"enterNewValue": "
|
|
1431
|
+
"saveChangesDesc": "Speichern Sie die aktuellen Einstellungen in einer Datei",
|
|
1432
|
+
"help": "Helfen",
|
|
1433
|
+
"helpDesc": "Detaillierte Hilfeinformationen anzeigen",
|
|
1434
|
+
"quit": "Aufhören",
|
|
1435
|
+
"quitDesc": "Einstellungen beenden (bei Bedarf mit Speicheraufforderung)",
|
|
1436
|
+
"unsavedChangesWarning": "⚠️ Sie haben nicht gespeicherte Änderungen",
|
|
1437
|
+
"saveChangesBeforeQuit": "Möchten Sie die Änderungen vor dem Beenden speichern? (J/N):",
|
|
1438
|
+
"selectOption": "Wählen Sie eine Option:",
|
|
1439
|
+
"goodbyeMessage": "Vielen Dank, dass Sie den i18n-Einstellungsmanager verwenden!",
|
|
1440
|
+
"selectSettingPrompt": "Wählen Sie eine Einstellung zum Bearbeiten aus (oder „b“, um zurückzugehen):",
|
|
1441
|
+
"enterNewValue": "Geben Sie einen neuen Wert ein:",
|
|
1442
1442
|
"updatedSuccessfully": "{setting} erfolgreich aktualisiert!",
|
|
1443
1443
|
"scriptDirectorySettings": "Skriptverzeichniseinstellungen",
|
|
1444
|
-
"scriptDirectoryDesc": "
|
|
1445
|
-
"scriptDirectorySettingsDesc": "Wenn nicht
|
|
1444
|
+
"scriptDirectoryDesc": "Geben Sie benutzerdefinierte Verzeichnisse für jedes Skript an",
|
|
1445
|
+
"scriptDirectorySettingsDesc": "Sie können für jedes Skript benutzerdefinierte Verzeichnisse festlegen. Wenn nicht festgelegt, werden globale Einstellungen verwendet.",
|
|
1446
1446
|
"currentDirectory": "Aktuelles Projektverzeichnis",
|
|
1447
1447
|
"securitySettings": "Sicherheitseinstellungen",
|
|
1448
|
-
"securitySettingsDesc": "
|
|
1449
|
-
"backupSettings": "
|
|
1450
|
-
"backupSettingsDesc": "
|
|
1448
|
+
"securitySettingsDesc": "Admin-PIN und andere Sicherheitsoptionen",
|
|
1449
|
+
"backupSettings": "Sicherungseinstellungen",
|
|
1450
|
+
"backupSettingsDesc": "Konfigurationseinstellungen sichern und wiederherstellen"
|
|
1451
1451
|
},
|
|
1452
1452
|
"updatePackage": {
|
|
1453
1453
|
"title": "Paket aktualisieren",
|
|
1454
|
-
"description": "i18n-toolkit-Paket über npm
|
|
1455
|
-
"command": "npm
|
|
1456
|
-
"success": "
|
|
1457
|
-
"failed": "
|
|
1458
|
-
"prompt": "Möchten Sie das Paket jetzt aktualisieren? (
|
|
1459
|
-
"promptDesc": "Hinweis:
|
|
1454
|
+
"description": "Aktualisieren Sie das i18n-toolkit-Paket über npm",
|
|
1455
|
+
"command": "npm-Update i18ntk -g",
|
|
1456
|
+
"success": "Update erfolgreich abgeschlossen.",
|
|
1457
|
+
"failed": "Update fehlgeschlagen.",
|
|
1458
|
+
"prompt": "Möchten Sie das Paket jetzt aktualisieren? (J/N):",
|
|
1459
|
+
"promptDesc": "Hinweis: Dadurch wird das i18ntk-Paket auf die neueste Version aktualisiert.",
|
|
1460
1460
|
"confirm": "j",
|
|
1461
|
-
"cancelled": "
|
|
1461
|
+
"cancelled": "Update abgebrochen.",
|
|
1462
1462
|
"error": "Paket konnte nicht aktualisiert werden",
|
|
1463
1463
|
"updating": "Paket wird aktualisiert..."
|
|
1464
1464
|
},
|
|
1465
1465
|
"admin": {
|
|
1466
1466
|
"selectOption": "Option auswählen:",
|
|
1467
1467
|
"updateSuccess": "Admin-PIN erfolgreich aktualisiert!",
|
|
1468
|
-
"updateFailed": "
|
|
1468
|
+
"updateFailed": "Die Administrator-PIN konnte nicht aktualisiert werden.",
|
|
1469
1469
|
"protectionRemoved": "Admin-PIN-Schutz entfernt.",
|
|
1470
|
-
"configSuccess": "Admin-PIN erfolgreich
|
|
1471
|
-
"configFailed": "
|
|
1472
|
-
"setupPinPrompt": "Möchten Sie eine Admin-PIN einrichten? (
|
|
1470
|
+
"configSuccess": "Admin-PIN erfolgreich konfiguriert!",
|
|
1471
|
+
"configFailed": "Die Administrator-PIN konnte nicht konfiguriert werden.",
|
|
1472
|
+
"setupPinPrompt": "Möchten Sie eine Admin-PIN einrichten? (J/N):",
|
|
1473
1473
|
"pinUpdatedSuccess": "Admin-PIN erfolgreich aktualisiert!",
|
|
1474
|
-
"pinUpdatedFailed": "
|
|
1474
|
+
"pinUpdatedFailed": "Die Administrator-PIN konnte nicht aktualisiert werden.",
|
|
1475
1475
|
"pinRemoved": "Admin-PIN-Schutz entfernt.",
|
|
1476
1476
|
"pinConfiguredSuccess": "Admin-PIN erfolgreich konfiguriert!",
|
|
1477
|
-
"pinConfiguredFailed": "
|
|
1478
|
-
"accessDenied": "❌ Zugriff verweigert.
|
|
1479
|
-
"setupPin": "🔐 Admin-PIN
|
|
1480
|
-
"setupFailed": "❌
|
|
1481
|
-
"pinConfigured": "📌 Admin-PIN ist derzeit
|
|
1477
|
+
"pinConfiguredFailed": "Die Administrator-PIN konnte nicht konfiguriert werden.",
|
|
1478
|
+
"accessDenied": "❌ Zugriff verweigert. Rückkehr zum Menü.",
|
|
1479
|
+
"setupPin": "🔐 Admin-PIN einrichten...",
|
|
1480
|
+
"setupFailed": "❌ Administrator-PIN konnte nicht eingerichtet werden. Einstellung nicht geändert.",
|
|
1481
|
+
"pinConfigured": "📌 Admin-PIN ist derzeit konfiguriert.",
|
|
1482
1482
|
"options": "Optionen:",
|
|
1483
1483
|
"changePin": "1) Vorhandene PIN ändern",
|
|
1484
1484
|
"removePin": "2) PIN-Schutz entfernen",
|
|
1485
1485
|
"cancel": "3) Abbrechen",
|
|
1486
|
-
"verifyCurrentPin": "🔐
|
|
1487
|
-
"settingNewPin": "🔄 Neue PIN
|
|
1488
|
-
"verifyToRemove": "🔐
|
|
1489
|
-
"noPinConfigured": "🔓
|
|
1490
|
-
"pinBenefits": "Das Einrichten einer
|
|
1491
|
-
"benefitSecurity": "•
|
|
1492
|
-
"benefitAdvanced": "•
|
|
1486
|
+
"verifyCurrentPin": "🔐 Überprüfen Sie zuerst die aktuelle PIN:",
|
|
1487
|
+
"settingNewPin": "🔄 Neue PIN einrichten...",
|
|
1488
|
+
"verifyToRemove": "🔐 Überprüfen Sie die aktuelle PIN, um den Schutz aufzuheben:",
|
|
1489
|
+
"noPinConfigured": "🔓 Derzeit ist keine Admin-PIN konfiguriert.",
|
|
1490
|
+
"pinBenefits": "Das Einrichten einer Administrator-PIN erhöht die Sicherheit für:",
|
|
1491
|
+
"benefitSecurity": "• Sicherheitseinstellungen ändern",
|
|
1492
|
+
"benefitAdvanced": "• Erweiterte Konfigurationen ändern",
|
|
1493
1493
|
"benefitDebug": "• Zugriff auf Debug-Tools",
|
|
1494
|
-
"benefitReset": "•
|
|
1495
|
-
"setupCancelled": "⏭️
|
|
1494
|
+
"benefitReset": "• Einstellungen zurücksetzen",
|
|
1495
|
+
"setupCancelled": "⏭️ Einrichtung der Admin-PIN abgebrochen.",
|
|
1496
1496
|
"operationCancelled": "❌ Vorgang abgebrochen.",
|
|
1497
|
-
"startingSettings": "🎛️
|
|
1497
|
+
"startingSettings": "🎛️ Einstellungs-CLI starten...",
|
|
1498
1498
|
"authRequired": "🔒 Admin-Authentifizierung erforderlich für: {label}",
|
|
1499
1499
|
"pinSetupTitle": "Admin-PIN-Einrichtung",
|
|
1500
|
-
"browserOpenFailed": "Browser konnte nicht automatisch geöffnet werden.",
|
|
1501
|
-
"manualVisit": "Bitte
|
|
1500
|
+
"browserOpenFailed": "Der Browser konnte nicht automatisch geöffnet werden.",
|
|
1501
|
+
"manualVisit": "Bitte besuchen Sie manuell: {url}",
|
|
1502
1502
|
"browserOpened": "✅ Browser erfolgreich geöffnet!"
|
|
1503
1503
|
},
|
|
1504
1504
|
"importExport": {
|
|
1505
|
-
"title": "
|
|
1506
|
-
"export": "
|
|
1507
|
-
"import": "
|
|
1508
|
-
"backup": "
|
|
1509
|
-
"enterFilename": "Dateinamen
|
|
1505
|
+
"title": "Import-/Exporteinstellungen",
|
|
1506
|
+
"export": "Exporteinstellungen",
|
|
1507
|
+
"import": "Einstellungen importieren",
|
|
1508
|
+
"backup": "Backup erstellen",
|
|
1509
|
+
"enterFilename": "Geben Sie den Dateinamen ein (oder drücken Sie als Standard die Eingabetaste):",
|
|
1510
1510
|
"exportSuccess": "Einstellungen exportiert nach {file}",
|
|
1511
|
-
"exportFailed": "
|
|
1512
|
-
"importFilename": "
|
|
1511
|
+
"exportFailed": "Einstellungen konnten nicht exportiert werden: {error}",
|
|
1512
|
+
"importFilename": "Geben Sie den Namen der zu importierenden Datei ein:",
|
|
1513
1513
|
"fileNotFound": "Datei nicht gefunden.",
|
|
1514
|
-
"invalidFormat": "Ungültiges
|
|
1515
|
-
"confirmImport": "
|
|
1514
|
+
"invalidFormat": "Ungültiges Einstellungsdateiformat.",
|
|
1515
|
+
"confirmImport": "Dadurch werden alle aktuellen Einstellungen ersetzt. Weitermachen? (J/N):",
|
|
1516
1516
|
"importSuccess": "Einstellungen erfolgreich importiert.",
|
|
1517
|
-
"importFailed": "
|
|
1518
|
-
"backupSuccess": "
|
|
1519
|
-
"backupFailed": "
|
|
1517
|
+
"importFailed": "Einstellungen konnten nicht importiert werden: {error}",
|
|
1518
|
+
"backupSuccess": "Backup erstellt: {file}",
|
|
1519
|
+
"backupFailed": "Backup konnte nicht erstellt werden: {error}",
|
|
1520
1520
|
"exportFilenamePrompt": "Geben Sie den Namen der Exportdatei ein:",
|
|
1521
1521
|
"importConfirm": "Diese Einstellungsdatei importieren? (J/N):",
|
|
1522
1522
|
"importFilenamePrompt": "Geben Sie den Namen der Importdatei ein:",
|
|
1523
1523
|
"manageBackups": "Backups verwalten",
|
|
1524
1524
|
"restore": "Einstellungen wiederherstellen"
|
|
1525
1525
|
},
|
|
1526
|
-
"selectOption": "Option
|
|
1527
|
-
"resetToDefaultsTitle": "
|
|
1528
|
-
"resetWarning1": "⚠️
|
|
1529
|
-
"resetWarning2": "
|
|
1530
|
-
"resetConfirm": "Sind Sie sicher, dass Sie fortfahren möchten? (
|
|
1531
|
-
"resetSuccess": "Einstellungen wurden erfolgreich auf die
|
|
1532
|
-
"resetFailed": "
|
|
1533
|
-
"resetDone": "Einstellungen erfolgreich auf
|
|
1534
|
-
"resetScriptDirsDone": "Skriptverzeichnisse erfolgreich auf
|
|
1535
|
-
"saveSuccess": "Einstellungen
|
|
1536
|
-
"saveFailed": "
|
|
1537
|
-
"saveError": "
|
|
1526
|
+
"selectOption": "Wählen Sie eine Option:",
|
|
1527
|
+
"resetToDefaultsTitle": "Setzen Sie die Einstellungen auf die Standardeinstellungen zurück",
|
|
1528
|
+
"resetWarning1": "⚠️ Dadurch werden ALLE Einstellungen auf ihre Standardwerte zurückgesetzt.",
|
|
1529
|
+
"resetWarning2": "Diese Aktion kann nicht rückgängig gemacht werden.",
|
|
1530
|
+
"resetConfirm": "Sind Sie sicher, dass Sie fortfahren möchten? (J/N):",
|
|
1531
|
+
"resetSuccess": "Die Einstellungen wurden erfolgreich auf die Standardeinstellungen zurückgesetzt.",
|
|
1532
|
+
"resetFailed": "Einstellungen konnten nicht zurückgesetzt werden: {error}",
|
|
1533
|
+
"resetDone": "Die Einstellungen wurden erfolgreich auf die Standardeinstellungen zurückgesetzt.",
|
|
1534
|
+
"resetScriptDirsDone": "Skriptverzeichnisse wurden erfolgreich auf die Systemstandards zurückgesetzt.",
|
|
1535
|
+
"saveSuccess": "Einstellungen erfolgreich gespeichert.",
|
|
1536
|
+
"saveFailed": "Einstellungen konnten nicht gespeichert werden.",
|
|
1537
|
+
"saveError": "Ungültige Einstellungen angegeben",
|
|
1538
1538
|
"pressEnter": "Drücken Sie die Eingabetaste, um fortzufahren...",
|
|
1539
|
-
"initFailed": "
|
|
1540
|
-
"invalidValueFormat": "Ungültiges
|
|
1539
|
+
"initFailed": "Einstellungen konnten nicht initialisiert werden: {error}",
|
|
1540
|
+
"invalidValueFormat": "Ungültiges Werteformat.",
|
|
1541
1541
|
"help": {
|
|
1542
|
-
"title": "Hilfe
|
|
1543
|
-
"navigationTitle": "Navigation
|
|
1544
|
-
"navigation1": "1. Allgemeine Einstellungen
|
|
1545
|
-
"navigation2": "2. Verzeichniseinstellungen
|
|
1546
|
-
"navigation3": "3. Verarbeitungseinstellungen
|
|
1547
|
-
"navigation4": "4. Erweiterte Einstellungen
|
|
1548
|
-
"categoriesTitle": "
|
|
1549
|
-
"categoryUI": "• UI
|
|
1550
|
-
"categoryDirectory": "• Verzeichniseinstellungen:
|
|
1551
|
-
"categoryProcessing": "• Verarbeitungseinstellungen:
|
|
1552
|
-
"categoryAdvanced": "• Erweiterte Einstellungen:
|
|
1542
|
+
"title": "Hilfe zu den Einstellungen",
|
|
1543
|
+
"navigationTitle": "Navigation",
|
|
1544
|
+
"navigation1": "1. Allgemeine Einstellungen – Konfigurieren Sie die Sprache, das Design und die Grundeinstellungen der Benutzeroberfläche",
|
|
1545
|
+
"navigation2": "2. Verzeichniseinstellungen – Legen Sie Quell- und Ausgabeverzeichnisse für Übersetzungsdateien fest",
|
|
1546
|
+
"navigation3": "3. Verarbeitungseinstellungen – Konfigurieren Sie Stapelgröße, Parallelität und Leistungsoptionen",
|
|
1547
|
+
"navigation4": "4. Erweiterte Einstellungen – Zugriff auf Validierungs-, Protokollierungs- und Expertenkonfigurationsoptionen",
|
|
1548
|
+
"categoriesTitle": "Einstellungskategorien",
|
|
1549
|
+
"categoryUI": "• UI-Einstellungen: Sprache der Benutzeroberfläche, Farbthema und Anzeigeeinstellungen",
|
|
1550
|
+
"categoryDirectory": "• Verzeichniseinstellungen: Speicherort der Quelldateien und Verzeichnisse des Ausgabeberichts",
|
|
1551
|
+
"categoryProcessing": "• Verarbeitungseinstellungen: Stapelverarbeitung, Dateibeschränkungen und Leistungsoptimierung",
|
|
1552
|
+
"categoryAdvanced": "• Erweiterte Einstellungen: Debug-Modus, Audit-Protokollierung und Sicherheitsoptionen",
|
|
1553
1553
|
"envVarsTitle": "Umgebungsvariablen",
|
|
1554
1554
|
"envVar1": "• I18N_SOURCE_DIR: Standard-Quellverzeichnispfad überschreiben",
|
|
1555
1555
|
"envVar2": "• I18N_OUTPUT_DIR: Standard-Ausgabeverzeichnispfad überschreiben",
|
|
1556
|
-
"envVar3": "• I18N_DEBUG: Debug-Modus aktivieren (
|
|
1557
|
-
"cliUsageTitle": "CLI
|
|
1558
|
-
"cliUsage1": "• npx i18ntk --settings:
|
|
1556
|
+
"envVar3": "• I18N_DEBUG: Debug-Modus aktivieren (wahr/falsch)",
|
|
1557
|
+
"cliUsageTitle": "CLI-Nutzungsbeispiele",
|
|
1558
|
+
"cliUsage1": "• npx i18ntk --settings: Öffnet das interaktive Einstellungsmenü",
|
|
1559
1559
|
"cliUsage2": "• npx i18ntk --settings --lang de: Einstellungen auf Deutsch öffnen",
|
|
1560
|
-
"cliUsage3": "• npx i18ntk --reset-settings: Alle Einstellungen auf
|
|
1561
|
-
"navigation": "Verwenden Sie Zifferntasten
|
|
1562
|
-
"editing": "Geben Sie neue Werte ein wenn aufgefordert, oder drücken Sie
|
|
1563
|
-
"saving": "Verwenden Sie
|
|
1564
|
-
"reset": "Verwenden Sie Option 7 um alle Einstellungen zurückzusetzen"
|
|
1560
|
+
"cliUsage3": "• npx i18ntk --reset-settings: Alle Einstellungen auf die Standardwerte zurücksetzen",
|
|
1561
|
+
"navigation": "Verwenden Sie die Zifferntasten, um Optionen auszuwählen, und „b“, um zurück zu gehen",
|
|
1562
|
+
"editing": "Geben Sie neue Werte ein, wenn Sie dazu aufgefordert werden, oder drücken Sie die Eingabetaste, um den aktuellen Wert beizubehalten",
|
|
1563
|
+
"saving": "Verwenden Sie „s“, um Änderungen vor dem Beenden zu speichern",
|
|
1564
|
+
"reset": "Verwenden Sie Option 7, um alle Einstellungen auf die Standardeinstellungen zurückzusetzen"
|
|
1565
1565
|
},
|
|
1566
1566
|
"categories": {
|
|
1567
1567
|
"uiSettings": "UI-Einstellungen",
|
|
1568
1568
|
"directorySettings": "Verzeichniseinstellungen",
|
|
1569
1569
|
"processingSettings": "Verarbeitungseinstellungen",
|
|
1570
1570
|
"advancedSettings": "Erweiterte Einstellungen",
|
|
1571
|
-
"scriptDirectorySettings": "
|
|
1571
|
+
"scriptDirectorySettings": "Skriptverzeichniseinstellungen",
|
|
1572
1572
|
"securitySettings": "Sicherheitseinstellungen"
|
|
1573
1573
|
},
|
|
1574
1574
|
"security": {
|
|
1575
1575
|
"title": "🔐 Sicherheitseinstellungen",
|
|
1576
|
-
"description": "
|
|
1576
|
+
"description": "Konfigurieren Sie Administrator-PIN-Schutz und Sicherheitsoptionen",
|
|
1577
1577
|
"currentPin": "Aktuelle PIN:",
|
|
1578
1578
|
"pinConfigured": "✅ Konfiguriert",
|
|
1579
1579
|
"pinNotConfigured": "❌ Nicht konfiguriert",
|
|
@@ -1581,312 +1581,310 @@
|
|
|
1581
1581
|
"menu": {
|
|
1582
1582
|
"enableDisable": "1) Admin-PIN aktivieren/deaktivieren",
|
|
1583
1583
|
"setupChange": "2) Admin-PIN einrichten/ändern",
|
|
1584
|
-
"sessionTimeout": "3)
|
|
1585
|
-
"maxAttempts": "4)
|
|
1584
|
+
"sessionTimeout": "3) Sitzungszeitüberschreitung",
|
|
1585
|
+
"maxAttempts": "4) Max. fehlgeschlagene Versuche",
|
|
1586
1586
|
"lockoutDuration": "5) Sperrdauer",
|
|
1587
1587
|
"back": "b) Zurück zum Hauptmenü"
|
|
1588
1588
|
},
|
|
1589
1589
|
"prompts": {
|
|
1590
|
-
"enablePin": "
|
|
1591
|
-
"disablePin": "
|
|
1592
|
-
"enterTimeout": "
|
|
1593
|
-
"enterMaxAttempts": "
|
|
1594
|
-
"enterLockoutDuration": "Sperrdauer
|
|
1590
|
+
"enablePin": "Administrator-PIN-Schutz aktivieren? (J/N):",
|
|
1591
|
+
"disablePin": "Administrator-PIN-Schutz deaktivieren? (J/N):",
|
|
1592
|
+
"enterTimeout": "Geben Sie das Sitzungszeitlimit (Minuten) ein:",
|
|
1593
|
+
"enterMaxAttempts": "Geben Sie die maximale Anzahl fehlgeschlagener Versuche ein:",
|
|
1594
|
+
"enterLockoutDuration": "Geben Sie die Sperrdauer (Minuten) ein:"
|
|
1595
1595
|
},
|
|
1596
1596
|
"messages": {
|
|
1597
1597
|
"pinEnabled": "Admin-PIN-Schutz aktiviert",
|
|
1598
1598
|
"pinDisabled": "Admin-PIN-Schutz deaktiviert",
|
|
1599
|
-
"timeoutUpdated": "
|
|
1600
|
-
"maxAttemptsUpdated": "
|
|
1599
|
+
"timeoutUpdated": "Sitzungszeitüberschreitung aktualisiert auf {minutes} Minuten",
|
|
1600
|
+
"maxAttemptsUpdated": "Max. Fehlversuche aktualisiert auf {attempts}",
|
|
1601
1601
|
"lockoutDurationUpdated": "Sperrdauer aktualisiert auf {minutes} Minuten"
|
|
1602
1602
|
}
|
|
1603
1603
|
},
|
|
1604
1604
|
"fields": {
|
|
1605
|
-
"backup": {
|
|
1606
|
-
"
|
|
1607
|
-
|
|
1608
|
-
|
|
1609
|
-
|
|
1610
|
-
|
|
1611
|
-
"
|
|
1612
|
-
|
|
1613
|
-
|
|
1614
|
-
|
|
1615
|
-
|
|
1616
|
-
"
|
|
1617
|
-
|
|
1618
|
-
|
|
1619
|
-
|
|
1620
|
-
|
|
1621
|
-
"
|
|
1622
|
-
|
|
1623
|
-
|
|
1624
|
-
|
|
1625
|
-
|
|
1626
|
-
"
|
|
1627
|
-
|
|
1628
|
-
|
|
1629
|
-
|
|
1630
|
-
|
|
1631
|
-
"
|
|
1632
|
-
|
|
1633
|
-
|
|
1634
|
-
"help": "Bestätigen Sie den Sicherungsvorgang"
|
|
1635
|
-
}
|
|
1605
|
+
"backup.enabled": {
|
|
1606
|
+
"label": "Enable Backup",
|
|
1607
|
+
"description": "Enable automatic backup of settings",
|
|
1608
|
+
"help": "Enable/disable backup feature"
|
|
1609
|
+
},
|
|
1610
|
+
"backup.singleFileMode": {
|
|
1611
|
+
"label": "Single File Mode",
|
|
1612
|
+
"description": "Use single file for backups",
|
|
1613
|
+
"help": "Backup settings in a single file"
|
|
1614
|
+
},
|
|
1615
|
+
"backup.singleBackupFile": {
|
|
1616
|
+
"label": "Backup File Path",
|
|
1617
|
+
"description": "Path to the backup file",
|
|
1618
|
+
"help": "Path to the single backup file"
|
|
1619
|
+
},
|
|
1620
|
+
"backup.retentionDays": {
|
|
1621
|
+
"label": "Retention Period",
|
|
1622
|
+
"description": "Days to keep backup files",
|
|
1623
|
+
"help": "Number of days to retain old backup files"
|
|
1624
|
+
},
|
|
1625
|
+
"backup.maxBackups": {
|
|
1626
|
+
"label": "Maximum Backups",
|
|
1627
|
+
"description": "Maximum backup files to keep",
|
|
1628
|
+
"help": "Maximum number of backup files to keep"
|
|
1629
|
+
},
|
|
1630
|
+
"backup.confirm": {
|
|
1631
|
+
"label": "Confirm Backup",
|
|
1632
|
+
"description": "Require confirmation for backup operations",
|
|
1633
|
+
"help": "Confirm backup operation"
|
|
1636
1634
|
},
|
|
1637
1635
|
"i18nDir": {
|
|
1638
|
-
"label": "I18n
|
|
1636
|
+
"label": "I18n-Verzeichnis",
|
|
1639
1637
|
"description": "Verzeichnis mit Übersetzungsdateien",
|
|
1640
1638
|
"current": "Aktuell: {value}",
|
|
1641
1639
|
"help": "Pfad zum Verzeichnis mit Übersetzungsdateien"
|
|
1642
1640
|
},
|
|
1643
1641
|
"projectRoot": {
|
|
1644
|
-
"label": "
|
|
1645
|
-
"description": "
|
|
1642
|
+
"label": "Projektstamm",
|
|
1643
|
+
"description": "Stammverzeichnis des Projekts",
|
|
1646
1644
|
"current": "Aktuell: {value}",
|
|
1647
|
-
"help": "Pfad zum
|
|
1645
|
+
"help": "Pfad zum Projektstammverzeichnis"
|
|
1648
1646
|
},
|
|
1649
1647
|
"checkUsage": {
|
|
1650
|
-
"usage_analysis_failed": "Nutzungsanalyse fehlgeschlagen",
|
|
1648
|
+
"usage_analysis_failed": "Die Nutzungsanalyse ist fehlgeschlagen",
|
|
1651
1649
|
"usage_analysis_success": "Nutzungsanalyse erfolgreich",
|
|
1652
1650
|
"usage_analysis_complete": "Nutzungsanalyse abgeschlossen",
|
|
1653
|
-
"usage_analysis_in_progress": "Nutzungsanalyse
|
|
1651
|
+
"usage_analysis_in_progress": "Nutzungsanalyse läuft",
|
|
1654
1652
|
"usage_analysis_started": "Nutzungsanalyse gestartet",
|
|
1655
1653
|
"usage_analysis_skipped": "Nutzungsanalyse übersprungen"
|
|
1656
1654
|
},
|
|
1657
1655
|
"language": {
|
|
1658
|
-
"label": "
|
|
1656
|
+
"label": "Schnittstellensprache",
|
|
1659
1657
|
"description": "Sprache für die Benutzeroberfläche",
|
|
1660
1658
|
"current": "Aktuell: {value}",
|
|
1661
|
-
"help": "
|
|
1659
|
+
"help": "Wählen Sie Ihre bevorzugte Sprache für die Benutzeroberfläche aus"
|
|
1662
1660
|
},
|
|
1663
1661
|
"scriptDirectories": {
|
|
1664
|
-
"analyzeLabel": "
|
|
1665
|
-
"analyzeHelp": "
|
|
1666
|
-
"completeLabel": "Setup-Verzeichnisse
|
|
1662
|
+
"analyzeLabel": "Analysieren Sie Skriptverzeichnisse",
|
|
1663
|
+
"analyzeHelp": "Analysieren Sie Skriptverzeichnisse auf Probleme",
|
|
1664
|
+
"completeLabel": "Komplette Setup-Verzeichnisse",
|
|
1667
1665
|
"initLabel": "Skriptverzeichnisse initialisieren",
|
|
1668
1666
|
"manageLabel": "Skriptverzeichnisse verwalten",
|
|
1669
|
-
"sizingLabel": "
|
|
1670
|
-
"summaryLabel": "
|
|
1671
|
-
"usageLabel": "
|
|
1667
|
+
"sizingLabel": "Dimensionierung von Skriptverzeichnissen",
|
|
1668
|
+
"summaryLabel": "Zusammenfassende Berichtsverzeichnisse",
|
|
1669
|
+
"usageLabel": "Nutzungsberichtsverzeichnisse",
|
|
1672
1670
|
"validateLabel": "Skriptverzeichnisse validieren"
|
|
1673
1671
|
},
|
|
1674
1672
|
"theme": {
|
|
1675
|
-
"label": "
|
|
1673
|
+
"label": "Farbthema",
|
|
1676
1674
|
"description": "Bevorzugtes UI-Design",
|
|
1677
1675
|
"current": "Aktuell: {value}",
|
|
1678
|
-
"help": "
|
|
1676
|
+
"help": "Wählen Sie zwischen hellen und dunklen Themen"
|
|
1679
1677
|
},
|
|
1680
1678
|
"dateFormat": {
|
|
1681
1679
|
"label": "Datumsformat",
|
|
1682
|
-
"description": "Format
|
|
1680
|
+
"description": "Format zur Anzeige von Datumsangaben",
|
|
1683
1681
|
"current": "Aktuell: {value}",
|
|
1684
|
-
"help": "
|
|
1682
|
+
"help": "Wählen Sie aus, wie Datumsangaben in Berichten angezeigt werden"
|
|
1685
1683
|
},
|
|
1686
1684
|
"notifications": {
|
|
1687
1685
|
"enabled": {
|
|
1688
1686
|
"label": "Benachrichtigungen aktivieren",
|
|
1689
1687
|
"description": "Desktop-Benachrichtigungen anzeigen",
|
|
1690
1688
|
"current": "Aktuell: {value}",
|
|
1691
|
-
"help": "Desktop-Benachrichtigungen für abgeschlossene Vorgänge
|
|
1689
|
+
"help": "Aktivieren Sie Desktop-Benachrichtigungen für abgeschlossene Vorgänge"
|
|
1692
1690
|
}
|
|
1693
1691
|
},
|
|
1694
1692
|
"sourceDir": {
|
|
1695
1693
|
"label": "Quellverzeichnis",
|
|
1696
1694
|
"description": "Verzeichnis mit Übersetzungsdateien",
|
|
1697
1695
|
"current": "Aktuell: {value}",
|
|
1698
|
-
"help": "Pfad zum Verzeichnis mit Quellübersetzungsdateien"
|
|
1696
|
+
"help": "Pfad zum Verzeichnis mit den Quellübersetzungsdateien"
|
|
1699
1697
|
},
|
|
1700
1698
|
"sourceLanguage": {
|
|
1701
|
-
"label": "
|
|
1702
|
-
"description": "
|
|
1699
|
+
"label": "Quellsprache",
|
|
1700
|
+
"description": "Primärsprache für Übersetzungen",
|
|
1703
1701
|
"current": "Aktuell: {value}",
|
|
1704
|
-
"help": "Die
|
|
1702
|
+
"help": "Die primäre Sprache, die als Quelle für Übersetzungen verwendet wird"
|
|
1705
1703
|
},
|
|
1706
1704
|
"outputDir": {
|
|
1707
1705
|
"label": "Ausgabeverzeichnis",
|
|
1708
1706
|
"description": "Verzeichnis für generierte Berichte",
|
|
1709
1707
|
"current": "Aktuell: {value}",
|
|
1710
|
-
"help": "
|
|
1708
|
+
"help": "Wo Berichte und verarbeitete Dateien gespeichert werden"
|
|
1711
1709
|
},
|
|
1712
1710
|
"batchSize": {
|
|
1713
|
-
"label": "
|
|
1714
|
-
"description": "Anzahl der
|
|
1711
|
+
"label": "Chargengröße",
|
|
1712
|
+
"description": "Anzahl der pro Charge verarbeiteten Artikel",
|
|
1715
1713
|
"current": "Aktuell: {value}",
|
|
1716
|
-
"help": "Wie viele Dateien in jedem
|
|
1714
|
+
"help": "Wie viele Dateien in jedem Stapel verarbeitet werden sollen"
|
|
1717
1715
|
},
|
|
1718
1716
|
"maxConcurrentFiles": {
|
|
1719
1717
|
"label": "Max. gleichzeitige Dateien",
|
|
1720
|
-
"description": "Maximale Anzahl
|
|
1718
|
+
"description": "Maximale Anzahl gleichzeitig verarbeiteter Dateien",
|
|
1721
1719
|
"current": "Aktuell: {value}",
|
|
1722
|
-
"help": "Maximale Anzahl gleichzeitig
|
|
1720
|
+
"help": "Maximale Anzahl gleichzeitig zu verarbeitender Dateien"
|
|
1723
1721
|
},
|
|
1724
1722
|
"sizingThreshold": {
|
|
1725
1723
|
"label": "Größenschwelle (%)",
|
|
1726
|
-
"description": "
|
|
1724
|
+
"description": "Schwellenwert für Warnungen zu Größenabweichungen",
|
|
1727
1725
|
"current": "Aktuell: {value}%",
|
|
1728
|
-
"help": "Prozentualer Schwellenwert
|
|
1726
|
+
"help": "Prozentualer Schwellenwert zur Erkennung von Größenunterschieden"
|
|
1729
1727
|
},
|
|
1730
1728
|
"strictMode": {
|
|
1731
|
-
"label": "
|
|
1732
|
-
"description": "
|
|
1729
|
+
"label": "Strenger Validierungsmodus",
|
|
1730
|
+
"description": "Aktivieren Sie den strengen Validierungsmodus",
|
|
1733
1731
|
"current": "Aktuell: {value}",
|
|
1734
|
-
"help": "
|
|
1732
|
+
"help": "Aktivieren Sie die strikte Validierung für Übersetzungsdateien"
|
|
1735
1733
|
},
|
|
1736
1734
|
"enableAuditLog": {
|
|
1737
|
-
"label": "Audit-
|
|
1738
|
-
"description": "
|
|
1735
|
+
"label": "Aktivieren Sie das Audit-Protokoll",
|
|
1736
|
+
"description": "Verfolgen Sie alle Übersetzungsänderungen",
|
|
1739
1737
|
"current": "Aktuell: {value}",
|
|
1740
|
-
"help": "
|
|
1738
|
+
"help": "Protokollieren Sie alle an Übersetzungsdateien vorgenommenen Änderungen"
|
|
1741
1739
|
},
|
|
1742
1740
|
"backupBeforeChanges": {
|
|
1743
1741
|
"label": "Automatische Sicherung",
|
|
1744
|
-
"description": "
|
|
1742
|
+
"description": "Erstellen Sie vor Änderungen Backups",
|
|
1745
1743
|
"current": "Aktuell: {value}",
|
|
1746
|
-
"help": "
|
|
1744
|
+
"help": "Erstellen Sie automatisch Backups, bevor Sie Änderungen vornehmen"
|
|
1747
1745
|
},
|
|
1748
1746
|
"advanced_maxConcurrentFiles": {
|
|
1749
1747
|
"label": "Max. gleichzeitige Dateien",
|
|
1750
|
-
"description": "Maximale Anzahl
|
|
1748
|
+
"description": "Maximale Anzahl gleichzeitig verarbeiteter Dateien",
|
|
1751
1749
|
"current": "Aktuell: {value}",
|
|
1752
|
-
"help": "Maximale Anzahl gleichzeitig
|
|
1750
|
+
"help": "Maximale Anzahl gleichzeitig zu verarbeitender Dateien"
|
|
1753
1751
|
},
|
|
1754
1752
|
"advanced_strictMode": {
|
|
1755
|
-
"label": "
|
|
1756
|
-
"description": "
|
|
1753
|
+
"label": "Strenger Validierungsmodus",
|
|
1754
|
+
"description": "Aktivieren Sie den strengen Validierungsmodus",
|
|
1757
1755
|
"current": "Aktuell: {value}",
|
|
1758
|
-
"help": "
|
|
1756
|
+
"help": "Aktivieren Sie die strikte Validierung für Übersetzungsdateien"
|
|
1759
1757
|
},
|
|
1760
1758
|
"adminPinEnabled": {
|
|
1761
1759
|
"label": "Admin-PIN-Schutz",
|
|
1762
|
-
"description": "
|
|
1760
|
+
"description": "Aktivieren Sie die Administrator-PIN-Authentifizierung für vertrauliche Einstellungen",
|
|
1763
1761
|
"current": "Aktuell: {value}",
|
|
1764
|
-
"help": "
|
|
1762
|
+
"help": "Zum Ändern der Sicherheits- und erweiterten Einstellungen ist eine Administrator-PIN erforderlich"
|
|
1765
1763
|
},
|
|
1766
1764
|
"sessionTimeout": {
|
|
1767
|
-
"label": "
|
|
1768
|
-
"description": "
|
|
1765
|
+
"label": "Sitzungszeitüberschreitung",
|
|
1766
|
+
"description": "Zeitüberschreitung der Admin-Sitzung in Minuten",
|
|
1769
1767
|
"current": "Aktuell: {value} Minuten",
|
|
1770
|
-
"help": "Wie lange
|
|
1768
|
+
"help": "Wie lange Administratorsitzungen aktiv bleiben, bevor eine erneute Authentifizierung erforderlich ist"
|
|
1771
1769
|
},
|
|
1772
1770
|
"maxFailedAttempts": {
|
|
1773
|
-
"label": "
|
|
1774
|
-
"description": "Maximale PIN-
|
|
1771
|
+
"label": "Max. fehlgeschlagene Versuche",
|
|
1772
|
+
"description": "Maximale Anzahl fehlgeschlagener PIN-Versuche vor der Sperrung",
|
|
1775
1773
|
"current": "Aktuell: {value} Versuche",
|
|
1776
|
-
"help": "Anzahl
|
|
1774
|
+
"help": "Anzahl der zulässigen fehlgeschlagenen PIN-Versuche vor der vorübergehenden Sperrung"
|
|
1777
1775
|
},
|
|
1778
1776
|
"lockoutDuration": {
|
|
1779
1777
|
"label": "Sperrdauer",
|
|
1780
1778
|
"description": "Dauer der Sperrung nach Fehlversuchen",
|
|
1781
1779
|
"current": "Aktuell: {value} Minuten",
|
|
1782
|
-
"help": "Wie lange das System nach
|
|
1780
|
+
"help": "Wie lange das System nach maximal fehlgeschlagenen Versuchen gesperrt bleibt"
|
|
1783
1781
|
},
|
|
1784
1782
|
"scriptDirectories_analyze": {
|
|
1785
|
-
"label": "
|
|
1786
|
-
"description": "Benutzerdefinierte Verzeichnisse für
|
|
1783
|
+
"label": "Analysieren Sie Skriptverzeichnisse",
|
|
1784
|
+
"description": "Benutzerdefinierte Verzeichnisse für Analyseskripts",
|
|
1787
1785
|
"current": "Aktuell: {value}",
|
|
1788
|
-
"help": "
|
|
1786
|
+
"help": "Geben Sie ein benutzerdefiniertes Quellverzeichnis für das Analyseskript an. Lassen Sie das Feld leer, um die globale Einstellung zu verwenden."
|
|
1789
1787
|
},
|
|
1790
1788
|
"scriptDirectories_complete": {
|
|
1791
|
-
"label": "Setup-Verzeichnisse
|
|
1792
|
-
"description": "Benutzerdefinierte Verzeichnisse für Setup-Skript",
|
|
1789
|
+
"label": "Komplette Setup-Verzeichnisse",
|
|
1790
|
+
"description": "Benutzerdefinierte Verzeichnisse für das vollständige Setup-Skript",
|
|
1793
1791
|
"current": "Aktuell: {value}",
|
|
1794
|
-
"help": "
|
|
1792
|
+
"help": "Geben Sie ein benutzerdefiniertes Quellverzeichnis für das vollständige Setup-Skript an. Lassen Sie das Feld leer, um die globale Einstellung zu verwenden."
|
|
1795
1793
|
},
|
|
1796
1794
|
"scriptDirectories_init": {
|
|
1797
1795
|
"label": "Skriptverzeichnisse initialisieren",
|
|
1798
|
-
"description": "Benutzerdefinierte Verzeichnisse für
|
|
1796
|
+
"description": "Benutzerdefinierte Verzeichnisse für das Initialisierungsskript",
|
|
1799
1797
|
"current": "Aktuell: {value}",
|
|
1800
|
-
"help": "
|
|
1798
|
+
"help": "Geben Sie ein benutzerdefiniertes Quellverzeichnis für das Initialisierungsskript an. Lassen Sie das Feld leer, um die globale Einstellung zu verwenden."
|
|
1801
1799
|
},
|
|
1802
1800
|
"scriptDirectories_manage": {
|
|
1803
1801
|
"label": "Skriptverzeichnisse verwalten",
|
|
1804
|
-
"description": "Benutzerdefinierte Verzeichnisse für
|
|
1802
|
+
"description": "Benutzerdefinierte Verzeichnisse für Verwaltungsskripte",
|
|
1805
1803
|
"current": "Aktuell: {value}",
|
|
1806
|
-
"help": "
|
|
1804
|
+
"help": "Geben Sie ein benutzerdefiniertes Quellverzeichnis für das Verwaltungsskript an. Lassen Sie das Feld leer, um die globale Einstellung zu verwenden."
|
|
1807
1805
|
},
|
|
1808
1806
|
"scriptDirectories_sizing": {
|
|
1809
|
-
"label": "
|
|
1810
|
-
"description": "Benutzerdefinierte Verzeichnisse für
|
|
1807
|
+
"label": "Dimensionierung von Skriptverzeichnissen",
|
|
1808
|
+
"description": "Benutzerdefinierte Verzeichnisse für das Größenanpassungsskript",
|
|
1811
1809
|
"current": "Aktuell: {value}",
|
|
1812
|
-
"help": "
|
|
1810
|
+
"help": "Geben Sie ein benutzerdefiniertes Quellverzeichnis für das Größenskript an. Lassen Sie das Feld leer, um die globale Einstellung zu verwenden."
|
|
1813
1811
|
},
|
|
1814
1812
|
"scriptDirectories_summary": {
|
|
1815
|
-
"label": "
|
|
1816
|
-
"description": "Benutzerdefinierte Verzeichnisse für
|
|
1813
|
+
"label": "Zusammenfassende Berichtsverzeichnisse",
|
|
1814
|
+
"description": "Benutzerdefinierte Verzeichnisse für zusammenfassende Berichtsskripte",
|
|
1817
1815
|
"current": "Aktuell: {value}",
|
|
1818
|
-
"help": "
|
|
1816
|
+
"help": "Geben Sie ein benutzerdefiniertes Quellverzeichnis für das Zusammenfassungsberichtsskript an. Lassen Sie das Feld leer, um die globale Einstellung zu verwenden."
|
|
1819
1817
|
},
|
|
1820
1818
|
"scriptDirectories_usage": {
|
|
1821
|
-
"label": "
|
|
1822
|
-
"description": "Benutzerdefinierte Verzeichnisse für das
|
|
1819
|
+
"label": "Nutzungsberichtsverzeichnisse",
|
|
1820
|
+
"description": "Benutzerdefinierte Verzeichnisse für das Nutzungsberichtsskript",
|
|
1823
1821
|
"current": "Aktuell: {value}",
|
|
1824
|
-
"help": "
|
|
1822
|
+
"help": "Geben Sie ein benutzerdefiniertes Quellverzeichnis für das Nutzungsberichtsskript an. Lassen Sie das Feld leer, um die globale Einstellung zu verwenden."
|
|
1825
1823
|
},
|
|
1826
1824
|
"scriptDirectories_validate": {
|
|
1827
1825
|
"label": "Skriptverzeichnisse validieren",
|
|
1828
|
-
"description": "Benutzerdefinierte Verzeichnisse für
|
|
1826
|
+
"description": "Benutzerdefinierte Verzeichnisse für das Validierungsskript",
|
|
1829
1827
|
"current": "Aktuell: {value}",
|
|
1830
|
-
"help": "
|
|
1828
|
+
"help": "Geben Sie ein benutzerdefiniertes Quellverzeichnis für das Validierungsskript an. Lassen Sie das Feld leer, um die globale Einstellung zu verwenden."
|
|
1831
1829
|
},
|
|
1832
1830
|
"security_adminPinEnabled": {
|
|
1833
1831
|
"label": "Admin-PIN-Schutz",
|
|
1834
|
-
"description": "
|
|
1832
|
+
"description": "Aktivieren Sie die Administrator-PIN-Authentifizierung für vertrauliche Einstellungen",
|
|
1835
1833
|
"current": "Aktuell: {value}",
|
|
1836
|
-
"help": "
|
|
1834
|
+
"help": "Zum Ändern der Sicherheits- und erweiterten Einstellungen ist eine Administrator-PIN erforderlich"
|
|
1837
1835
|
},
|
|
1838
1836
|
"fields": {
|
|
1839
1837
|
"adminPinEnabled": {
|
|
1840
1838
|
"label": "Admin-PIN-Schutz",
|
|
1841
|
-
"description": "
|
|
1842
|
-
"help": "
|
|
1839
|
+
"description": "Aktivieren Sie die Administrator-PIN-Authentifizierung für vertrauliche Einstellungen",
|
|
1840
|
+
"help": "Zum Ändern der Sicherheits- und erweiterten Einstellungen ist eine Administrator-PIN erforderlich"
|
|
1843
1841
|
}
|
|
1844
1842
|
},
|
|
1845
1843
|
"security_pinProtection_enabled": {
|
|
1846
1844
|
"label": "PIN-Schutz",
|
|
1847
|
-
"description": "PIN-Schutz für
|
|
1845
|
+
"description": "Aktivieren Sie den PIN-Schutz für vertrauliche Einstellungen",
|
|
1848
1846
|
"current": "Aktuell: {value}",
|
|
1849
|
-
"help": "PIN
|
|
1847
|
+
"help": "PIN zum Ändern der Sicherheits- und erweiterten Einstellungen erforderlich"
|
|
1850
1848
|
},
|
|
1851
1849
|
"pinProtection_configure": {
|
|
1852
|
-
"label": "PIN-geschützte Skripte
|
|
1853
|
-
"description": "Konfigurieren, welche Skripte PIN-Schutz
|
|
1854
|
-
"help": "
|
|
1850
|
+
"label": "Konfigurieren Sie PIN-geschützte Skripte",
|
|
1851
|
+
"description": "Konfigurieren Sie, welche Skripte einen PIN-Schutz erfordern",
|
|
1852
|
+
"help": "Wählen Sie einzelne Skripte aus, die eine PIN-Authentifizierung erfordern"
|
|
1855
1853
|
},
|
|
1856
1854
|
"pinProtection_debugMenu": {
|
|
1857
|
-
"label": "Debug-
|
|
1858
|
-
"description": "
|
|
1855
|
+
"label": "Menü „Debug-Tools“.",
|
|
1856
|
+
"description": "Für das Menü „Debug-Tools“ ist eine PIN erforderlich",
|
|
1859
1857
|
"current": "Aktuell: {value}",
|
|
1860
|
-
"help": "PIN-Schutz für Zugriff auf Debug-Tools
|
|
1858
|
+
"help": "Aktivieren Sie den PIN-Schutz für den Zugriff auf Debug-Tools"
|
|
1861
1859
|
},
|
|
1862
1860
|
"pinProtection_deleteReports": {
|
|
1863
1861
|
"label": "Berichte löschen",
|
|
1864
|
-
"description": "PIN
|
|
1862
|
+
"description": "PIN zum Löschen von Berichten erforderlich",
|
|
1865
1863
|
"current": "Aktuell: {value}",
|
|
1866
|
-
"help": "PIN-Schutz
|
|
1864
|
+
"help": "Aktivieren Sie den PIN-Schutz zum Löschen von Berichten"
|
|
1867
1865
|
},
|
|
1868
1866
|
"pinProtection_summaryReports": {
|
|
1869
|
-
"label": "
|
|
1870
|
-
"description": "
|
|
1867
|
+
"label": "Zusammenfassende Berichte",
|
|
1868
|
+
"description": "Für zusammenfassende Berichte ist eine PIN erforderlich",
|
|
1871
1869
|
"current": "Aktuell: {value}",
|
|
1872
|
-
"help": "PIN-Schutz für Erstellung
|
|
1870
|
+
"help": "Aktivieren Sie den PIN-Schutz für die Erstellung zusammenfassender Berichte"
|
|
1873
1871
|
},
|
|
1874
1872
|
"pinProtection_settingsMenu": {
|
|
1875
1873
|
"label": "Einstellungsmenü",
|
|
1876
|
-
"description": "
|
|
1874
|
+
"description": "Für das Einstellungsmenü ist eine PIN erforderlich",
|
|
1877
1875
|
"current": "Aktuell: {value}",
|
|
1878
|
-
"help": "PIN-Schutz für den Zugriff auf Einstellungen
|
|
1876
|
+
"help": "Aktivieren Sie den PIN-Schutz für den Zugriff auf Einstellungen"
|
|
1879
1877
|
},
|
|
1880
1878
|
"pinProtection_initScript": {
|
|
1881
|
-
"label": "
|
|
1882
|
-
"description": "PIN für
|
|
1879
|
+
"label": "Skript initialisieren",
|
|
1880
|
+
"description": "PIN für Initialisierungsskript erforderlich",
|
|
1883
1881
|
"current": "Aktuell: {value}",
|
|
1884
|
-
"help": "PIN-Schutz für
|
|
1882
|
+
"help": "Aktivieren Sie den PIN-Schutz für die Ausführung des Initialisierungsskripts"
|
|
1885
1883
|
},
|
|
1886
1884
|
"pinProtection_resetDefaults": {
|
|
1887
1885
|
"label": "PIN-Schutz zurücksetzen",
|
|
1888
|
-
"description": "
|
|
1889
|
-
"help": "
|
|
1886
|
+
"description": "Setzen Sie alle PIN-Schutzeinstellungen auf die Standardeinstellungen zurück",
|
|
1887
|
+
"help": "Setzen Sie alle individuellen Skript-PIN-Schutzmaßnahmen auf die Standardwerte zurück"
|
|
1890
1888
|
},
|
|
1891
1889
|
"removeUiLanguages": {
|
|
1892
1890
|
"label": "Entfernen Sie UI-Sprachen",
|
|
@@ -1894,36 +1892,68 @@
|
|
|
1894
1892
|
"help": "Entfernen Sie UI-Sprachen, die nicht auf dem System installiert sind"
|
|
1895
1893
|
},
|
|
1896
1894
|
"${helperKey}": {
|
|
1897
|
-
"help": "
|
|
1895
|
+
"help": "Helfen"
|
|
1896
|
+
},
|
|
1897
|
+
"backup": {
|
|
1898
|
+
"enabled": {
|
|
1899
|
+
"label": "Aktivieren Sie die Sicherung",
|
|
1900
|
+
"description": "Aktivieren Sie die automatische Sicherung der Einstellungen",
|
|
1901
|
+
"help": "Backup-Funktion aktivieren/deaktivieren"
|
|
1902
|
+
},
|
|
1903
|
+
"singleFileMode": {
|
|
1904
|
+
"label": "Einzeldateimodus",
|
|
1905
|
+
"description": "Verwenden Sie eine einzelne Datei für Backups",
|
|
1906
|
+
"help": "Sicherungseinstellungen in einer einzigen Datei"
|
|
1907
|
+
},
|
|
1908
|
+
"singleBackupFile": {
|
|
1909
|
+
"label": "Pfad der Sicherungsdatei",
|
|
1910
|
+
"description": "Pfad zur Sicherungsdatei",
|
|
1911
|
+
"help": "Pfad zur einzelnen Sicherungsdatei"
|
|
1912
|
+
},
|
|
1913
|
+
"retentionDays": {
|
|
1914
|
+
"label": "Aufbewahrungsfrist",
|
|
1915
|
+
"description": "Tage, um Sicherungsdateien aufzubewahren",
|
|
1916
|
+
"help": "Anzahl der Tage, die alte Sicherungsdateien aufbewahrt werden sollen"
|
|
1917
|
+
},
|
|
1918
|
+
"maxBackups": {
|
|
1919
|
+
"label": "Maximale Backups",
|
|
1920
|
+
"description": "Maximal aufzubewahrende Sicherungsdateien",
|
|
1921
|
+
"help": "Maximale Anzahl der aufzubewahrenden Sicherungsdateien"
|
|
1922
|
+
},
|
|
1923
|
+
"confirm": {
|
|
1924
|
+
"label": "Bestätigen Sie die Sicherung",
|
|
1925
|
+
"description": "Für Sicherungsvorgänge ist eine Bestätigung erforderlich",
|
|
1926
|
+
"help": "Bestätigen Sie den Sicherungsvorgang"
|
|
1927
|
+
}
|
|
1898
1928
|
}
|
|
1899
1929
|
},
|
|
1900
1930
|
"actions": {
|
|
1901
|
-
"editSetting": "{setting}
|
|
1902
|
-
"settingUpdated": "✅ {setting}
|
|
1903
|
-
"invalidValue": "❌ Ungültiger Wert. Bitte
|
|
1904
|
-
"pressEnter": "
|
|
1931
|
+
"editSetting": "Bearbeiten {setting}:",
|
|
1932
|
+
"settingUpdated": "✅ {setting} erfolgreich aktualisiert!",
|
|
1933
|
+
"invalidValue": "❌ Ungültiger Wert. Bitte versuchen Sie es erneut.",
|
|
1934
|
+
"pressEnter": "Drücken Sie die Eingabetaste, um fortzufahren...",
|
|
1905
1935
|
"backToMenu": "Zurück zum Hauptmenü",
|
|
1906
1936
|
"saveSuccess": "✅ Einstellungen erfolgreich gespeichert!",
|
|
1907
1937
|
"saveFailed": "❌ Einstellungen konnten nicht gespeichert werden: {error}",
|
|
1908
|
-
"resetConfirm": "
|
|
1909
|
-
"resetSuccess": "✅ Einstellungen
|
|
1938
|
+
"resetConfirm": "Sind Sie sicher, dass Sie alle Einstellungen auf die Standardeinstellungen zurücksetzen möchten? (J/N):",
|
|
1939
|
+
"resetSuccess": "✅ Einstellungen erfolgreich auf Standard zurückgesetzt!",
|
|
1910
1940
|
"importSuccess": "✅ Einstellungen erfolgreich importiert!",
|
|
1911
1941
|
"exportSuccess": "✅ Einstellungen erfolgreich exportiert!",
|
|
1912
1942
|
"fileNotFound": "❌ Datei nicht gefunden: {path}",
|
|
1913
|
-
"invalidFormat": "❌ Ungültiges
|
|
1914
|
-
"pinProtectionUpdated": "✅ PIN-Schutz für {script}
|
|
1915
|
-
"pinProtectionReset": "✅ Alle PIN-
|
|
1916
|
-
"pinProtectionConfigure": "PIN-Schutz für einzelne Skripte
|
|
1917
|
-
"pinProtectionSelectScript": "
|
|
1918
|
-
"pinProtectionCurrentStatus": "Aktueller
|
|
1919
|
-
"pinProtectionEnabled": "
|
|
1943
|
+
"invalidFormat": "❌ Ungültiges Einstellungsdateiformat",
|
|
1944
|
+
"pinProtectionUpdated": "✅ PIN-Schutz für {script} erfolgreich aktualisiert!",
|
|
1945
|
+
"pinProtectionReset": "✅ Alle PIN-Schutzeinstellungen auf die Standardeinstellungen zurückgesetzt!",
|
|
1946
|
+
"pinProtectionConfigure": "Konfigurieren Sie den PIN-Schutz für einzelne Skripte",
|
|
1947
|
+
"pinProtectionSelectScript": "Wählen Sie ein Skript aus, um den PIN-Schutz umzuschalten:",
|
|
1948
|
+
"pinProtectionCurrentStatus": "Aktueller Stand: {status}",
|
|
1949
|
+
"pinProtectionEnabled": "Ermöglicht",
|
|
1920
1950
|
"pinProtectionDisabled": "Deaktiviert",
|
|
1921
1951
|
"pinProtectionToggle": "PIN-Schutz umschalten",
|
|
1922
|
-
"pinProtectionResetAll": "
|
|
1952
|
+
"pinProtectionResetAll": "Alles auf die Standardeinstellungen zurücksetzen",
|
|
1923
1953
|
"pinProtectionBack": "Zurück zu den Sicherheitseinstellungen"
|
|
1924
1954
|
},
|
|
1925
1955
|
"themes": {
|
|
1926
|
-
"light": "
|
|
1956
|
+
"light": "Licht",
|
|
1927
1957
|
"dark": "Dunkel",
|
|
1928
1958
|
"system": "System"
|
|
1929
1959
|
},
|
|
@@ -1933,45 +1963,45 @@
|
|
|
1933
1963
|
"es": "Spanisch",
|
|
1934
1964
|
"fr": "Französisch",
|
|
1935
1965
|
"ru": "Russisch",
|
|
1936
|
-
"ja": "
|
|
1937
|
-
"zh": "
|
|
1966
|
+
"ja": "japanisch",
|
|
1967
|
+
"zh": "chinesisch"
|
|
1938
1968
|
},
|
|
1939
1969
|
"viewAll": {
|
|
1940
1970
|
"title": "Alle Einstellungen anzeigen"
|
|
1941
1971
|
},
|
|
1942
1972
|
"current": "Aktuell",
|
|
1943
1973
|
"back": "Zurück zum Hauptmenü",
|
|
1944
|
-
"selectSettingPrompt": "
|
|
1974
|
+
"selectSettingPrompt": "Wählen Sie die Einstellung zum Bearbeiten aus (oder b für Zurück, r für Zurücksetzen):",
|
|
1945
1975
|
"invalidOption": "Ungültige Option.",
|
|
1946
|
-
"editing": "
|
|
1947
|
-
"enterNewValue": "
|
|
1976
|
+
"editing": "Bearbeitung",
|
|
1977
|
+
"enterNewValue": "Geben Sie einen neuen Wert ein (oder drücken Sie die Eingabetaste, um den aktuellen Wert beizubehalten, geben Sie „default“ ein, um den Systemstandard zu verwenden):",
|
|
1948
1978
|
"validOptions": "Gültige Optionen",
|
|
1949
1979
|
"updatedSuccessfully": "erfolgreich aktualisiert!",
|
|
1950
|
-
"noHelp": "
|
|
1980
|
+
"noHelp": "Für diese Einstellung ist keine Hilfe verfügbar",
|
|
1951
1981
|
"resetScriptDirectories": "Auf Standardwerte zurücksetzen",
|
|
1952
|
-
"resetScriptDirectoriesTitle": "Skriptverzeichnisse auf
|
|
1953
|
-
"resetScriptDirectoriesWarning1": "
|
|
1982
|
+
"resetScriptDirectoriesTitle": "Setzen Sie die Skriptverzeichnisse auf die Standardeinstellungen zurück",
|
|
1983
|
+
"resetScriptDirectoriesWarning1": "Dadurch werden alle Skriptverzeichniskonfigurationen auf ihre Systemstandardeinstellungen zurückgesetzt.",
|
|
1954
1984
|
"resetScriptDirectoriesWarning2": "Alle benutzerdefinierten Verzeichnispfade werden gelöscht. Diese Aktion kann nicht rückgängig gemacht werden.",
|
|
1955
1985
|
"resetScriptDirectoriesConfirm": "Sind Sie sicher, dass Sie alle Skriptverzeichnisse auf die Standardeinstellungen zurücksetzen möchten? (J/N):",
|
|
1956
1986
|
"backup": {
|
|
1957
1987
|
"title": "Sicherungseinstellungen",
|
|
1958
|
-
"description": "Aktuelle Einstellungen in
|
|
1959
|
-
"confirm": "Sind Sie sicher, dass Sie die aktuellen Einstellungen sichern möchten? (
|
|
1960
|
-
"success": "✅ Einstellungen erfolgreich gesichert
|
|
1961
|
-
"failed": "❌
|
|
1962
|
-
"enabled": "
|
|
1963
|
-
"enabledHelp": "
|
|
1988
|
+
"description": "Aktuelle Einstellungen in einer Datei sichern",
|
|
1989
|
+
"confirm": "Sind Sie sicher, dass Sie die aktuellen Einstellungen sichern möchten? (J/N):",
|
|
1990
|
+
"success": "✅ Einstellungen erfolgreich gesichert {backupFile}",
|
|
1991
|
+
"failed": "❌ Einstellungen konnten nicht gesichert werden: {error}",
|
|
1992
|
+
"enabled": "Aktivieren Sie die Sicherung",
|
|
1993
|
+
"enabledHelp": "Backup-Funktion aktivieren/deaktivieren",
|
|
1964
1994
|
"singleFileMode": "Einzeldateimodus",
|
|
1965
|
-
"singleFileModeHelp": "
|
|
1995
|
+
"singleFileModeHelp": "Sicherungseinstellungen in einer einzigen Datei",
|
|
1966
1996
|
"singleBackupFile": "Einzelne Sicherungsdatei",
|
|
1967
1997
|
"singleBackupFileHelp": "Pfad zur einzelnen Sicherungsdatei",
|
|
1968
1998
|
"retentionDays": "Aufbewahrungstage",
|
|
1969
|
-
"retentionDaysHelp": "Anzahl der Tage
|
|
1970
|
-
"maxBackups": "
|
|
1971
|
-
"maxBackupsHelp": "Maximale Anzahl
|
|
1972
|
-
"confirmHelp": "Sicherungsvorgang
|
|
1999
|
+
"retentionDaysHelp": "Anzahl der Tage, die alte Sicherungsdateien aufbewahrt werden sollen",
|
|
2000
|
+
"maxBackups": "Max. Backups",
|
|
2001
|
+
"maxBackupsHelp": "Maximale Anzahl der aufzubewahrenden Sicherungsdateien",
|
|
2002
|
+
"confirmHelp": "Bestätigen Sie den Sicherungsvorgang",
|
|
1973
2003
|
"confirmYes": "Ja",
|
|
1974
|
-
"confirmNo": "
|
|
2004
|
+
"confirmNo": "NEIN"
|
|
1975
2005
|
},
|
|
1976
2006
|
"validation": {
|
|
1977
2007
|
"valid": "Gültig",
|
|
@@ -1980,242 +2010,242 @@
|
|
|
1980
2010
|
}
|
|
1981
2011
|
},
|
|
1982
2012
|
"summary": {
|
|
1983
|
-
"separator": "
|
|
2013
|
+
"separator": "=========================================================",
|
|
1984
2014
|
"configurationTitle": "🔧 Konfiguration:",
|
|
1985
|
-
"sourceLanguage": "
|
|
2015
|
+
"sourceLanguage": "Quellsprache: {sourceLanguage}",
|
|
1986
2016
|
"supportedExtensions": "Unterstützte Erweiterungen: {extensions}",
|
|
1987
2017
|
"excludedFiles": "Ausgeschlossene Dateien: {files}",
|
|
1988
2018
|
"reportContent": "{report}",
|
|
1989
2019
|
"fatalError": "❌ Schwerwiegender Fehler: {error}",
|
|
1990
|
-
"helpTitle": "📊 I18NTK
|
|
1991
|
-
"helpDescription": "Analysiert die i18n-Ordnerstruktur und erstellt einen umfassenden
|
|
1992
|
-
"helpUsage": "Verwendung:
|
|
1993
|
-
"helpOptions": "--source-dir <dir>
|
|
1994
|
-
"helpSourceDir": "--source-dir <dir>
|
|
1995
|
-
"helpOutput": "--
|
|
1996
|
-
"helpVerbose": "--verbose, -v
|
|
1997
|
-
"helpKeepReports": "--keep-reports
|
|
1998
|
-
"helpDeleteReports": "--delete-reports
|
|
1999
|
-
"helpHelp": "--help, -h
|
|
2020
|
+
"helpTitle": "📊 I18NTK-ZUSAMMENFASSUNGSBERICHTS-GENERATOR",
|
|
2021
|
+
"helpDescription": "Analysiert die i18n-Ordnerstruktur und erstellt einen umfassenden zusammenfassenden Bericht mit wichtigen Statistiken, Dateistrukturanalyse und Validierungsprüfungen.",
|
|
2022
|
+
"helpUsage": "Verwendung: Knoten i18ntk-summary.js [Optionen]",
|
|
2023
|
+
"helpOptions": "--source-dir <dir> Zu analysierendes Quellverzeichnis",
|
|
2024
|
+
"helpSourceDir": "--source-dir <dir> Zu analysierendes Quellverzeichnis",
|
|
2025
|
+
"helpOutput": "--Ausgabe <file> Ausgabedatei für den Bericht",
|
|
2026
|
+
"helpVerbose": "--verbose, -v Detaillierte Informationen anzeigen",
|
|
2027
|
+
"helpKeepReports": "--keep-reports Bestehende Berichte beibehalten",
|
|
2028
|
+
"helpDeleteReports": "--delete-reports Vorhandene Berichte löschen",
|
|
2029
|
+
"helpHelp": "--help, -h Diese Hilfe anzeigen",
|
|
2000
2030
|
"helpExamples": "Beispiele:",
|
|
2001
|
-
"helpExample1": "
|
|
2002
|
-
"helpExample2": "
|
|
2003
|
-
"helpExample3": "
|
|
2004
|
-
"helpExample4": "
|
|
2005
|
-
"helpExample5": "
|
|
2006
|
-
"couldNotReadFile": "⚠️
|
|
2007
|
-
"couldNotParseJSFile": "⚠️
|
|
2008
|
-
"errorReadingFile": "⚠️
|
|
2009
|
-
"analyzingFolder": "🔍
|
|
2010
|
-
"noLanguageDirectoriesFound": "❌
|
|
2011
|
-
"foundLanguages": "✅ {count} Sprachen
|
|
2012
|
-
"referenceLanguageFiles": "📁 Referenzsprache '{language}'
|
|
2013
|
-
"analyzingLanguage": "🌍
|
|
2014
|
-
"keysInFiles": "📊 {keys} Schlüssel
|
|
2015
|
-
"checkingInconsistentKeys": "
|
|
2016
|
-
"generatingSummaryReport": "📝
|
|
2017
|
-
"reportTitle": "📊 I18NTK
|
|
2018
|
-
"generated": "Erstellt
|
|
2031
|
+
"helpExample1": "Knoten i18ntk-summary.js",
|
|
2032
|
+
"helpExample2": "Knoten i18ntk-summary.js --source-dir ./locales",
|
|
2033
|
+
"helpExample3": "Knoten i18ntk-summary.js --output summary-report.txt",
|
|
2034
|
+
"helpExample4": "Knoten i18ntk-summary.js --verbose",
|
|
2035
|
+
"helpExample5": "Knoten i18ntk-summary.js --source-dir ./locales --output report.json",
|
|
2036
|
+
"couldNotReadFile": "⚠️ Datei konnte nicht gelesen werden: {filePath}",
|
|
2037
|
+
"couldNotParseJSFile": "⚠️ JS/TS-Datei konnte nicht geparst werden: {filePath}",
|
|
2038
|
+
"errorReadingFile": "⚠️ Fehler beim Lesen der Datei {filePath}: {error}",
|
|
2039
|
+
"analyzingFolder": "🔍 Ordnerstruktur analysieren...",
|
|
2040
|
+
"noLanguageDirectoriesFound": "❌ Im angegebenen Quellverzeichnis wurden keine Sprachverzeichnisse gefunden.",
|
|
2041
|
+
"foundLanguages": "✅ Gefunden {count} Sprachen: {languages}",
|
|
2042
|
+
"referenceLanguageFiles": "📁 Referenzsprache '{language}' hat {count} Dateien",
|
|
2043
|
+
"analyzingLanguage": "🌍 Sprache analysieren: {language}",
|
|
2044
|
+
"keysInFiles": "📊 Gefunden {keys} Schlüssel quer {files} Dateien",
|
|
2045
|
+
"checkingInconsistentKeys": "🔍Überprüfung auf inkonsistente Schlüssel in allen Sprachen...",
|
|
2046
|
+
"generatingSummaryReport": "📝 Zusammenfassender Bericht wird erstellt...",
|
|
2047
|
+
"reportTitle": "📊 I18NTK ZUSAMMENFASSIGER BERICHT",
|
|
2048
|
+
"generated": "Erstellt: {timestamp}",
|
|
2019
2049
|
"sourceDirectory": "Quellverzeichnis: {dir}",
|
|
2020
2050
|
"overview": "📈 ÜBERSICHT",
|
|
2021
2051
|
"languagesCount": "Sprachen: {count}",
|
|
2022
2052
|
"totalFiles": "Gesamtdateien: {count}",
|
|
2023
2053
|
"totalKeys": "Gesamtschlüssel: {count}",
|
|
2024
2054
|
"avgKeysPerLanguage": "Durchschnittliche Schlüssel pro Sprache: {count}",
|
|
2025
|
-
"languagesBreakdown": "🌍
|
|
2055
|
+
"languagesBreakdown": "🌍 SPRACHENAUFTEILUNG",
|
|
2026
2056
|
"languageBreakdown": "{language}: {files} Dateien, {keys} Schlüssel",
|
|
2027
2057
|
"fileStructure": "📁 DATEISTRUKTUR",
|
|
2028
2058
|
"fileKeys": "{file}: {keys} Schlüssel",
|
|
2029
2059
|
"missingInLanguages": "⚠️ Fehlt in: {languages}",
|
|
2030
|
-
"issuesFound": "❌
|
|
2060
|
+
"issuesFound": "❌ PROBLEME GEFUNDEN",
|
|
2031
2061
|
"missingFiles": "📁 Fehlende Dateien:",
|
|
2032
2062
|
"emptyFiles": "📄 Leere Dateien:",
|
|
2033
2063
|
"malformedFiles": "⚠️ Fehlerhafte Dateien:",
|
|
2034
2064
|
"duplicateKeys": "🔑 Doppelte Schlüssel:",
|
|
2035
2065
|
"inconsistentKeys": "🔍 Inkonsistente Schlüssel:",
|
|
2036
|
-
"missingKeys": "
|
|
2037
|
-
"extraKeys": "
|
|
2066
|
+
"missingKeys": "Fehlen: {keys}{more}",
|
|
2067
|
+
"extraKeys": "Extra: {keys}{more}",
|
|
2038
2068
|
"noIssuesFound": "✅ KEINE PROBLEME GEFUNDEN",
|
|
2039
|
-
"allFilesConsistent": "Alle Übersetzungsdateien sind
|
|
2069
|
+
"allFilesConsistent": "Alle Übersetzungsdateien sind sprachübergreifend konsistent.",
|
|
2040
2070
|
"recommendations": "💡 EMPFEHLUNGEN",
|
|
2041
2071
|
"createMissingFiles": "• Fehlende Übersetzungsdateien erstellen",
|
|
2042
2072
|
"addContentToEmptyFiles": "• Inhalte zu leeren Übersetzungsdateien hinzufügen",
|
|
2043
|
-
"fixMalformedFiles": "•
|
|
2044
|
-
"removeDuplicateKeys": "•
|
|
2045
|
-
"synchronizeKeys": "• Schlüssel
|
|
2046
|
-
"splitLargeFiles": "•
|
|
2047
|
-
"addMoreLanguages": "•
|
|
2073
|
+
"fixMalformedFiles": "• Korrigieren Sie fehlerhafte JSON/JS-Dateien",
|
|
2074
|
+
"removeDuplicateKeys": "• Entfernen Sie doppelte Schlüssel aus Dateien",
|
|
2075
|
+
"synchronizeKeys": "• Schlüssel in allen Sprachen synchronisieren",
|
|
2076
|
+
"splitLargeFiles": "• Erwägen Sie die Aufteilung großer Dateien in kleinere Namespaces",
|
|
2077
|
+
"addMoreLanguages": "• Erwägen Sie das Hinzufügen weiterer Sprachen",
|
|
2048
2078
|
"nextSteps": "🎯 NÄCHSTE SCHRITTE",
|
|
2049
|
-
"nextStep1": "1.
|
|
2050
|
-
"nextStep2": "2.
|
|
2051
|
-
"nextStep3": "3.
|
|
2052
|
-
"nextStep4": "4. Regelmäßige
|
|
2053
|
-
"couldNotFindI18nDirectory": "❌
|
|
2079
|
+
"nextStep1": "1. Beheben Sie alle oben identifizierten Probleme",
|
|
2080
|
+
"nextStep2": "2. Führen Sie eine Validierung durch, um die Konsistenz sicherzustellen",
|
|
2081
|
+
"nextStep3": "3. Erwägen Sie die Verwendung von i18ntk-validate für eine detaillierte Validierung",
|
|
2082
|
+
"nextStep4": "4. Regelmäßige Überwachung empfohlen",
|
|
2083
|
+
"couldNotFindI18nDirectory": "❌ Das i18n-Verzeichnis konnte nicht gefunden werden. Bitte geben Sie --source-dir an.",
|
|
2054
2084
|
"sourceDirectoryDoesNotExist": "❌ Quellverzeichnis existiert nicht: {dir}",
|
|
2055
|
-
"i18nSummaryReportGenerator": "📊
|
|
2085
|
+
"i18nSummaryReportGenerator": "📊 I18N-Zusammenfassungsberichtsgenerator",
|
|
2056
2086
|
"analysisComplete": "✅ Analyse abgeschlossen",
|
|
2057
2087
|
"analyzedLanguages": "📊 Analysierte Sprachen: {count}",
|
|
2058
2088
|
"processedFiles": "📁 Verarbeitete Dateien: {count}",
|
|
2059
2089
|
"foundTranslationKeys": "🔑 Gefundene Übersetzungsschlüssel: {count}",
|
|
2060
|
-
"foundIssues": "❌ {count} Probleme
|
|
2090
|
+
"foundIssues": "❌ Gefunden {count} Probleme",
|
|
2061
2091
|
"noIssuesConsole": "✅ Keine Probleme gefunden – alle Dateien sind konsistent!",
|
|
2062
|
-
"errorDuringAnalysis": "❌ Fehler
|
|
2063
|
-
"usageReportTitle": "📊 I18NTK
|
|
2064
|
-
"usageReportGenerated": "Erstellt
|
|
2092
|
+
"errorDuringAnalysis": "❌ Fehler bei der Analyse: {error}",
|
|
2093
|
+
"usageReportTitle": "📊 I18NTK-NUTZUNGSBERICHT",
|
|
2094
|
+
"usageReportGenerated": "Erstellt: {timestamp}",
|
|
2065
2095
|
"usageReportSourceDir": "Quellverzeichnis: {sourceDir}",
|
|
2066
2096
|
"usageReportI18nDir": "I18n-Verzeichnis: {i18nDir}",
|
|
2067
2097
|
"usageReportSummary": "📈 ZUSAMMENFASSUNG",
|
|
2068
|
-
"usageReportSourceFilesScanned": "
|
|
2069
|
-
"usageReportTranslationFilesFound": "
|
|
2098
|
+
"usageReportSourceFilesScanned": "Gescannte Quelldateien: {count}",
|
|
2099
|
+
"usageReportTranslationFilesFound": "Übersetzungsdateien gefunden: {count}",
|
|
2070
2100
|
"usageReportAvailableKeys": "Verfügbare Übersetzungsschlüssel: {count}",
|
|
2071
2101
|
"usageReportUsedKeys": "Verwendete Übersetzungsschlüssel: {count}",
|
|
2072
2102
|
"usageReportDynamicKeys": "Dynamische Übersetzungsschlüssel: {count}",
|
|
2073
|
-
"usageReportUnusedKeys": "
|
|
2103
|
+
"usageReportUnusedKeys": "Nicht verwendete Übersetzungsschlüssel: {count}",
|
|
2074
2104
|
"usageReportMissingKeys": "Fehlende Übersetzungsschlüssel: {count}",
|
|
2075
2105
|
"usageReportNotTranslatedKeys": "Nicht übersetzte Schlüssel: {count}",
|
|
2076
|
-
"usageReportTranslationCompleteness": "🌍
|
|
2106
|
+
"usageReportTranslationCompleteness": "🌍 VOLLSTÄNDIGKEIT DER ÜBERSETZUNG",
|
|
2077
2107
|
"usageReportLanguageCompleteness": "{language}: {completeness}% ({translated}/{total})",
|
|
2078
2108
|
"usageReportNotTranslatedInLanguage": "Nicht übersetzt: {count} Schlüssel",
|
|
2079
2109
|
"usageReportTranslationFilesDiscovered": "📁 ÜBERSETZUNGSDATEIEN",
|
|
2080
|
-
"usageReportFileInfo": "{relativePath} (
|
|
2110
|
+
"usageReportFileInfo": "{relativePath} (Namensraum: {namespace}, Typ: {type})",
|
|
2081
2111
|
"usageReportUnusedTranslationKeys": "🗑️ UNBENUTZTE ÜBERSETZUNGSSCHLÜSSEL",
|
|
2082
|
-
"usageReportUnusedKeysDescription": "Diese Schlüssel
|
|
2112
|
+
"usageReportUnusedKeysDescription": "Diese Schlüssel sind in Übersetzungsdateien vorhanden, werden jedoch nicht im Quellcode verwendet:",
|
|
2083
2113
|
"usageReportUnusedKey": "• {key}",
|
|
2084
|
-
"usageReportMoreUnusedKeys": "...
|
|
2114
|
+
"usageReportMoreUnusedKeys": "... Und {count} mehr ungenutzte Schlüssel",
|
|
2085
2115
|
"usageReportMissingTranslationKeys": "❌ FEHLENDE ÜBERSETZUNGSSCHLÜSSEL",
|
|
2086
|
-
"usageReportMissingKeysDescription": "Diese Schlüssel werden im Quellcode verwendet, fehlen aber in
|
|
2116
|
+
"usageReportMissingKeysDescription": "Diese Schlüssel werden im Quellcode verwendet, fehlen aber in Übersetzungsdateien:",
|
|
2087
2117
|
"usageReportMissingKey": "• {key}",
|
|
2088
2118
|
"usageReportUsedIn": "Verwendet in: {filePath}",
|
|
2089
|
-
"usageReportMoreFiles": "...
|
|
2090
|
-
"usageReportDynamicTranslationKeys": "⚡ DYNAMISCHE
|
|
2091
|
-
"usageReportDynamicKeysDescription": "Diese Schlüssel werden dynamisch (zur Laufzeit)
|
|
2119
|
+
"usageReportMoreFiles": "... Und {count} weitere Dateien",
|
|
2120
|
+
"usageReportDynamicTranslationKeys": "⚡ DYNAMISCHE ÜBERSETZUNGSTASTEN",
|
|
2121
|
+
"usageReportDynamicKeysDescription": "Diese Schlüssel werden dynamisch verwendet (zur Laufzeit erstellt):",
|
|
2092
2122
|
"usageReportDynamicKey": "• {key}",
|
|
2093
|
-
"usageReportFileUsageBreakdown": "📊
|
|
2123
|
+
"usageReportFileUsageBreakdown": "📊 AUFTEILUNG DER DATEIENNUTZUNG",
|
|
2094
2124
|
"usageReportFileUsage": "{filePath}: {count} Schlüssel",
|
|
2095
2125
|
"status": {
|
|
2096
|
-
"generating": "⏳
|
|
2126
|
+
"generating": "⏳ Generieren...",
|
|
2097
2127
|
"completed": "✅ Abgeschlossen"
|
|
2098
2128
|
},
|
|
2099
2129
|
"help": {
|
|
2100
|
-
"usage": "Verwendung:
|
|
2101
|
-
"interactiveMode": "💡
|
|
2130
|
+
"usage": "Verwendung: Knoten main/manage/index.js [Optionen]",
|
|
2131
|
+
"interactiveMode": "💡 Verwenden Sie: node main/manage/index.js --command=<command> zur direkten Ausführung",
|
|
2102
2132
|
"initProject": "🚀 Neue Sprachen initialisieren",
|
|
2103
2133
|
"analyzeTranslations": "🔍 Übersetzungen analysieren",
|
|
2104
2134
|
"validateTranslations": "✅ Übersetzungen validieren",
|
|
2105
|
-
"checkUsage": "📊 Schlüsselverwendung
|
|
2106
|
-
"showHelp": "📖
|
|
2135
|
+
"checkUsage": "📊 Überprüfen Sie die Schlüsselverwendung",
|
|
2136
|
+
"showHelp": "📖 Verwenden Sie: node main/manage/index.js --help für verfügbare Befehle",
|
|
2107
2137
|
"availableCommands": "📖 Verfügbare Befehle:",
|
|
2108
|
-
"initCommand": "init
|
|
2109
|
-
"analyzeCommand": "
|
|
2110
|
-
"validateCommand": "
|
|
2111
|
-
"usageCommand": "
|
|
2112
|
-
"sizingCommand": "
|
|
2113
|
-
"completeCommand": "
|
|
2114
|
-
"summaryCommand": "
|
|
2115
|
-
"scannerCommand": "
|
|
2116
|
-
"translateCommand": "
|
|
2117
|
-
"debugCommand": "debug
|
|
2138
|
+
"initCommand": "init – Neue Sprachen initialisieren",
|
|
2139
|
+
"analyzeCommand": "analysieren – Übersetzungen analysieren",
|
|
2140
|
+
"validateCommand": "validieren – Übersetzungen validieren",
|
|
2141
|
+
"usageCommand": "Verwendung – Überprüfen Sie die Schlüsselverwendung",
|
|
2142
|
+
"sizingCommand": "Dimensionierung – Analysieren Sie die Dimensionierung",
|
|
2143
|
+
"completeCommand": "vollständig – Vollständige Übersetzungen (100 % Abdeckung)",
|
|
2144
|
+
"summaryCommand": "Zusammenfassung – Projektstatus anzeigen",
|
|
2145
|
+
"scannerCommand": "Scanner – Nach i18n-Problemen suchen",
|
|
2146
|
+
"translateCommand": "Translate – Gebietsschemadateien automatisch übersetzen (Beta)",
|
|
2147
|
+
"debugCommand": "debug – Übersetzungsprobleme debuggen"
|
|
2118
2148
|
},
|
|
2119
2149
|
"test_complete_system": {
|
|
2120
|
-
"starting_test": "
|
|
2121
|
-
"separator": "
|
|
2122
|
-
"testing_ui_translations": "
|
|
2123
|
-
"testing_settings_manager": "
|
|
2124
|
-
"testing_main_scripts": "
|
|
2125
|
-
"checking_translation_consistency": "
|
|
2126
|
-
"non_critical_missing_keys": "
|
|
2127
|
-
"extra_keys": "
|
|
2128
|
-
"generating_report": "
|
|
2129
|
-
"final_test_report_title": "
|
|
2130
|
-
"passed": "✅
|
|
2131
|
-
"failed": "❌ Fehlgeschlagen",
|
|
2132
|
-
"warnings": "⚠️
|
|
2133
|
-
"missing_translations_title": "
|
|
2134
|
-
"missing_translation_key": "
|
|
2135
|
-
"missing_translations_more": "...
|
|
2136
|
-
"errors_title": "❌
|
|
2137
|
-
"error_message": "
|
|
2138
|
-
"overall_status": "
|
|
2139
|
-
"success_message": "✅
|
|
2140
|
-
"failure_message": "❌
|
|
2141
|
-
"failure_error_message": "
|
|
2142
|
-
"warning_message": "⚠️
|
|
2143
|
-
"test_runner_failed": "❌ Testläufer fehlgeschlagen:
|
|
2150
|
+
"starting_test": "🧪 Kompletter Systemtest wird gestartet",
|
|
2151
|
+
"separator": "=",
|
|
2152
|
+
"testing_ui_translations": "📝 UI-Übersetzungen testen...",
|
|
2153
|
+
"testing_settings_manager": "⚙️ Einstellungsmanager testen...",
|
|
2154
|
+
"testing_main_scripts": "🔧 Hauptskripte testen...",
|
|
2155
|
+
"checking_translation_consistency": "🌐Überprüfung der Übersetzungskonsistenz...",
|
|
2156
|
+
"non_critical_missing_keys": "ℹ️ {file}: {count} unkritische fehlende Schlüssel",
|
|
2157
|
+
"extra_keys": "ℹ️ {file}: {count} zusätzliche Schlüssel",
|
|
2158
|
+
"generating_report": "📊 Bericht wird erstellt...",
|
|
2159
|
+
"final_test_report_title": "📋 ABSCHLUSSTESTBERICHT",
|
|
2160
|
+
"passed": "✅ Bestanden: {passed}",
|
|
2161
|
+
"failed": "❌ Fehlgeschlagen: {failed}",
|
|
2162
|
+
"warnings": "⚠️ Warnungen: {warnings}",
|
|
2163
|
+
"missing_translations_title": "🔍 Fehlende Übersetzungen ({count}):",
|
|
2164
|
+
"missing_translation_key": "- {key}",
|
|
2165
|
+
"missing_translations_more": "... Und {count} mehr",
|
|
2166
|
+
"errors_title": "❌ Fehler:",
|
|
2167
|
+
"error_message": "- {error}",
|
|
2168
|
+
"overall_status": "📊 Gesamtstatus: {status}",
|
|
2169
|
+
"success_message": "✅ {message}",
|
|
2170
|
+
"failure_message": "❌ {message}",
|
|
2171
|
+
"failure_error_message": "{errorMessage}",
|
|
2172
|
+
"warning_message": "⚠️ {message}",
|
|
2173
|
+
"test_runner_failed": "❌ Testläufer fehlgeschlagen:",
|
|
2144
2174
|
"recommendations": {
|
|
2145
|
-
"add_missing_translation_keys": "
|
|
2146
|
-
"fix_failing_scripts": "
|
|
2147
|
-
"review_warning_messages": "
|
|
2148
|
-
"system_ready_for_deployment": "
|
|
2175
|
+
"add_missing_translation_keys": "Fügen Sie fehlende Übersetzungsschlüssel hinzu, um die Konsistenz zu gewährleisten",
|
|
2176
|
+
"fix_failing_scripts": "Beheben Sie fehlerhafte Skripte vor der Bereitstellung",
|
|
2177
|
+
"review_warning_messages": "Überprüfen und beheben Sie Warnmeldungen",
|
|
2178
|
+
"system_ready_for_deployment": "Das System ist einsatzbereit"
|
|
2149
2179
|
},
|
|
2150
2180
|
"hardcodedTexts": {
|
|
2151
|
-
"addMissingTranslationKeys": "
|
|
2152
|
-
"fixFailingScripts": "
|
|
2153
|
-
"reviewWarningMessages": "
|
|
2154
|
-
"systemReadyForDeployment": "
|
|
2181
|
+
"addMissingTranslationKeys": "Fügen Sie fehlende Übersetzungsschlüssel hinzu, um die Konsistenz zu gewährleisten",
|
|
2182
|
+
"fixFailingScripts": "Beheben Sie fehlerhafte Skripte vor der Bereitstellung",
|
|
2183
|
+
"reviewWarningMessages": "Überprüfen und beheben Sie Warnmeldungen",
|
|
2184
|
+
"systemReadyForDeployment": "Das System ist einsatzbereit"
|
|
2155
2185
|
}
|
|
2156
2186
|
},
|
|
2157
2187
|
"testConsoleI18n": {
|
|
2158
|
-
"found_target_file": "
|
|
2159
|
-
"scanning_files_for_console_statements": "
|
|
2160
|
-
"found_javascript_files": "
|
|
2161
|
-
"console_i18n_analysis_results": "
|
|
2162
|
-
"total_console_statements": "
|
|
2163
|
-
"translated_statements": "
|
|
2164
|
-
"hardcoded_statements": "
|
|
2165
|
-
"translation_coverage": "
|
|
2166
|
-
"coverage_by_file": "
|
|
2167
|
-
"file_coverage_stats": "
|
|
2168
|
-
"hardcoded_console_statements": "
|
|
2169
|
-
"file_header": "
|
|
2170
|
-
"line_statement": "
|
|
2171
|
-
"suggested_key": "
|
|
2172
|
-
"suggested_replacement": "
|
|
2173
|
-
"recommendations": "
|
|
2174
|
-
"recommendation_1": "
|
|
2175
|
-
"recommendation_2": "
|
|
2176
|
-
"recommendation_3": "
|
|
2177
|
-
"recommendation_4": "
|
|
2178
|
-
"translation_keys_to_add": "
|
|
2179
|
-
"add_keys_instruction": "
|
|
2180
|
-
"perfect_translation_coverage": "
|
|
2181
|
-
"all_statements_using_translation": "
|
|
2182
|
-
"i18n_console_translation_checker": "
|
|
2183
|
-
"script_description_line1": "
|
|
2184
|
-
"script_description_line2": "
|
|
2185
|
-
"analysis_completed_in_duration": "
|
|
2186
|
-
"report_saved_to_path": "
|
|
2187
|
-
"found_hardcoded_messages": "
|
|
2188
|
-
"all_console_messages_use_translation": "
|
|
2189
|
-
"consoleTranslationsCheck": "
|
|
2188
|
+
"found_target_file": "Zieldatei gefunden: {fileName}",
|
|
2189
|
+
"scanning_files_for_console_statements": "Dateien werden nach Konsolenanweisungen durchsucht...",
|
|
2190
|
+
"found_javascript_files": "Gefunden {count} JavaScript-Dateien.",
|
|
2191
|
+
"console_i18n_analysis_results": "Konsolen-I18n-Analyseergebnisse",
|
|
2192
|
+
"total_console_statements": "Gesamte Konsolenanweisungen: {count}",
|
|
2193
|
+
"translated_statements": "Übersetzte Aussagen: {count}",
|
|
2194
|
+
"hardcoded_statements": "Hartcodierte Anweisungen: {count}",
|
|
2195
|
+
"translation_coverage": "Übersetzungsumfang: {percentage}%",
|
|
2196
|
+
"coverage_by_file": "Abdeckung nach Datei:",
|
|
2197
|
+
"file_coverage_stats": "{emoji} {fileName}: {coverage}% ({translated}/{total})",
|
|
2198
|
+
"hardcoded_console_statements": "Hartcodierte Konsolenanweisungen:",
|
|
2199
|
+
"file_header": "Datei: {file}",
|
|
2200
|
+
"line_statement": "Linie {line}: {statement}",
|
|
2201
|
+
"suggested_key": "Vorgeschlagener Schlüssel: {key}",
|
|
2202
|
+
"suggested_replacement": "Empfohlener Ersatz: {replacement}",
|
|
2203
|
+
"recommendations": "Empfehlungen:",
|
|
2204
|
+
"recommendation_1": "1. Ersetzen Sie hartcodierte Zeichenfolgen durch i18n.t()-Aufrufe.",
|
|
2205
|
+
"recommendation_2": "2. Fügen Sie neue Schlüssel zu den relevanten JSON-Übersetzungsdateien hinzu.",
|
|
2206
|
+
"recommendation_3": "3. Stellen Sie sicher, dass alle Konsolenmeldungen für den Benutzer bestimmt sind und übersetzt werden müssen.",
|
|
2207
|
+
"recommendation_4": "4. Verwenden Sie Vorlagenliterale oder Zeichenfolgenverkettung für dynamische Nachrichten und übergeben Sie Variablen an i18n.t().",
|
|
2208
|
+
"translation_keys_to_add": "Vorgeschlagene Übersetzungsschlüssel zum Hinzufügen:",
|
|
2209
|
+
"add_keys_instruction": "Kopieren Sie die folgende JSON-Struktur in Ihre Übersetzungsdateien:",
|
|
2210
|
+
"perfect_translation_coverage": "Perfekte Übersetzungsabdeckung!",
|
|
2211
|
+
"all_statements_using_translation": "Alle Konsolenanweisungen verwenden das Übersetzungssystem.",
|
|
2212
|
+
"i18n_console_translation_checker": "I18n-Konsolenübersetzungsprüfer",
|
|
2213
|
+
"script_description_line1": "Dieses Skript durchsucht alle JavaScript-Dateien nach Konsolenanweisungen",
|
|
2214
|
+
"script_description_line2": "und prüft, ob sie das Übersetzungssystem verwenden.",
|
|
2215
|
+
"analysis_completed_in_duration": "Analyse abgeschlossen in {duration} Sekunden.",
|
|
2216
|
+
"report_saved_to_path": "Bericht gespeichert unter: {path}",
|
|
2217
|
+
"found_hardcoded_messages": "Gefunden {count} hartcodierte Nachrichten. Beenden mit Fehlercode 1.",
|
|
2218
|
+
"all_console_messages_use_translation": "Alle Konsolennachrichten verwenden eine Übersetzung. Beenden mit Code 0.",
|
|
2219
|
+
"consoleTranslationsCheck": "Überprüfung der Konsolenübersetzungen"
|
|
2190
2220
|
},
|
|
2191
2221
|
"translate_mismatches": {
|
|
2192
|
-
"title": "
|
|
2193
|
-
"separator": "
|
|
2194
|
-
"processing_file": "
|
|
2195
|
-
"translation_summary_title": "📊
|
|
2196
|
-
"total_translations_applied": "
|
|
2197
|
-
"run_with_apply_instruction": "
|
|
2198
|
-
"no_translation_mappings": "
|
|
2199
|
-
"translation_applied": "✅
|
|
2200
|
-
"saved_translations": "
|
|
2201
|
-
"found_translatable_items": "🔍
|
|
2202
|
-
"no_automatic_translations": "
|
|
2203
|
-
"error_processing_file": "❌
|
|
2204
|
-
"coverage_report_title": "📊
|
|
2205
|
-
"coverage_report_separator": "
|
|
2206
|
-
"file_header": "📄
|
|
2207
|
-
"total_keys": "
|
|
2208
|
-
"translated_keys": "
|
|
2209
|
-
"untranslated_markers": "
|
|
2210
|
-
"contains_english": "
|
|
2211
|
-
"coverage_percentage": "
|
|
2212
|
-
"error_general": "
|
|
2213
|
-
"use_help": "
|
|
2222
|
+
"title": "🌐 Übersetzungshelfer {dryRun}",
|
|
2223
|
+
"separator": "====================================",
|
|
2224
|
+
"processing_file": "📄Verarbeitung {language}.json...",
|
|
2225
|
+
"translation_summary_title": "📊 Übersetzungszusammenfassung:",
|
|
2226
|
+
"total_translations_applied": "Insgesamt angewendete Übersetzungen: {totalTranslations}",
|
|
2227
|
+
"run_with_apply_instruction": "💡 Führen Sie mit --apply aus, um diese Übersetzungen anzuwenden",
|
|
2228
|
+
"no_translation_mappings": "⚠️ Keine Übersetzungszuordnungen verfügbar für {language}",
|
|
2229
|
+
"translation_applied": "✅ {key}: \"{oldValue}\" → \"{newValue}\"",
|
|
2230
|
+
"saved_translations": "💾 Gespeichert {count} Übersetzungen zu {filename}",
|
|
2231
|
+
"found_translatable_items": "🔍Gefunden {count} übersetzbare Elemente",
|
|
2232
|
+
"no_automatic_translations": "✨ Keine automatischen Übersetzungen verfügbar",
|
|
2233
|
+
"error_processing_file": "❌ Fehlerbearbeitung {filename}: {errorMessage}",
|
|
2234
|
+
"coverage_report_title": "📊 Übersetzungsabdeckungsbericht",
|
|
2235
|
+
"coverage_report_separator": "===============================",
|
|
2236
|
+
"file_header": "📄 {filename}:",
|
|
2237
|
+
"total_keys": "Gesamtschlüssel: {total}",
|
|
2238
|
+
"translated_keys": "Übersetzt: {translated}",
|
|
2239
|
+
"untranslated_markers": "Nicht übersetzte Markierungen: {untranslated}",
|
|
2240
|
+
"contains_english": "Enthält Englisch: {hasEnglish}",
|
|
2241
|
+
"coverage_percentage": "Abdeckung: {coverage}%",
|
|
2242
|
+
"error_general": "❌ Fehler:",
|
|
2243
|
+
"use_help": "Verwenden Sie --help für Nutzungsinformationen"
|
|
2214
2244
|
},
|
|
2215
2245
|
"cleaningUpReportFiles": "Alte Berichtsdateien bereinigen...",
|
|
2216
|
-
"couldNotDelete": "
|
|
2217
|
-
"deletedOldReportFiles": "{count} alte Berichtsdatei(en)
|
|
2218
|
-
"errorCleaningUpReports": "Fehler beim Bereinigen
|
|
2246
|
+
"couldNotDelete": "Konnte nicht gelöscht werden {file}: {error}",
|
|
2247
|
+
"deletedOldReportFiles": "Gelöscht {count} alte Berichtsdatei(en).",
|
|
2248
|
+
"errorCleaningUpReports": "Fehler beim Bereinigen von Berichten: {error}",
|
|
2219
2249
|
"noOldReportFilesToDelete": "Keine alten Berichtsdateien zum Löschen.",
|
|
2220
2250
|
"reportFilesPreserved": "Berichtsdateien bleiben erhalten.",
|
|
2221
2251
|
"reportSaveFailed": "Der Bericht konnte nicht gespeichert werden unter: {reportPath}",
|
|
@@ -2223,49 +2253,49 @@
|
|
|
2223
2253
|
},
|
|
2224
2254
|
"ui": {
|
|
2225
2255
|
"autoDetectedI18nDirectory": "Automatisch erkanntes i18n-Verzeichnis: {path}",
|
|
2226
|
-
"executingCommand": "
|
|
2227
|
-
"unknownCommand": "
|
|
2228
|
-
"errorExecutingCommand": "
|
|
2229
|
-
"errorLoadingTranslationFile": "
|
|
2230
|
-
"errorSavingLanguagePreference": "
|
|
2231
|
-
"noActiveReadlineInterface": "
|
|
2232
|
-
"uiLanguageUpdated": "
|
|
2233
|
-
"selectOptionPrompt": "
|
|
2234
|
-
"pressEnterToReturn": "
|
|
2256
|
+
"executingCommand": "Befehl ausführen: {command}",
|
|
2257
|
+
"unknownCommand": "Unbekannter Befehl: {command}",
|
|
2258
|
+
"errorExecutingCommand": "Fehler beim Ausführen des Befehls: {error}",
|
|
2259
|
+
"errorLoadingTranslationFile": "Fehler beim Laden der Übersetzungsdatei für „{language}': {error}",
|
|
2260
|
+
"errorSavingLanguagePreference": "Fehler beim Speichern der Spracheinstellung: {error}",
|
|
2261
|
+
"noActiveReadlineInterface": "Keine aktive Readline-Schnittstelle verfügbar",
|
|
2262
|
+
"uiLanguageUpdated": "UI-Sprache aktualisiert auf: {language}",
|
|
2263
|
+
"selectOptionPrompt": "Wählen Sie eine Option:",
|
|
2264
|
+
"pressEnterToReturn": "Drücken Sie die Eingabetaste, um zum Hauptmenü zurückzukehren...",
|
|
2235
2265
|
"detectedSourceDirectory": "Erkanntes Quellverzeichnis: {sourceDir}",
|
|
2236
2266
|
"detectedI18nDirectory": "Erkanntes i18n-Verzeichnis: {directory}",
|
|
2237
|
-
"toolkitTitle": "
|
|
2238
|
-
"versionInfo": "
|
|
2239
|
-
"releaseDate": "
|
|
2240
|
-
"maintainer": "
|
|
2241
|
-
"nodeVersion": "
|
|
2242
|
-
"license": "
|
|
2243
|
-
"whatsNew": "✨
|
|
2267
|
+
"toolkitTitle": "i18ntk – Enterprise i18n Management Toolkit",
|
|
2268
|
+
"versionInfo": "Version: {version}",
|
|
2269
|
+
"releaseDate": "Veröffentlichungsdatum: {date}",
|
|
2270
|
+
"maintainer": "Betreuer: {maintainer}",
|
|
2271
|
+
"nodeVersion": "Node.js: {version}",
|
|
2272
|
+
"license": "Lizenz: {license}",
|
|
2273
|
+
"whatsNew": "✨ Was ist neu in v{version}:",
|
|
2244
2274
|
"changeItem": "{change}",
|
|
2245
2275
|
"documentation": "📚 Dokumentation: {url}",
|
|
2246
2276
|
"issues": "🐛 Probleme: {url}",
|
|
2247
|
-
"versionInfoUnavailable": "Versionsinformationen
|
|
2277
|
+
"versionInfoUnavailable": "i18ntk-Versionsinformationen nicht verfügbar",
|
|
2248
2278
|
"versionInfoError": "Fehler: {error}"
|
|
2249
2279
|
},
|
|
2250
2280
|
"validateLanguagePurity": {
|
|
2251
|
-
"phrase_debug_tools": "Debug-
|
|
2281
|
+
"phrase_debug_tools": "Debug-Tools",
|
|
2252
2282
|
"phrase_settings": "Einstellungen",
|
|
2253
2283
|
"phrase_configuration": "Konfiguration",
|
|
2254
2284
|
"phrase_invalid_choice": "ungültige Auswahl",
|
|
2255
|
-
"phrase_please_select": "
|
|
2285
|
+
"phrase_please_select": "Bitte auswählen",
|
|
2256
2286
|
"phrase_back_to_main_menu": "zurück zum Hauptmenü",
|
|
2257
2287
|
"phrase_error": "Fehler",
|
|
2258
2288
|
"phrase_warning": "Warnung",
|
|
2259
2289
|
"phrase_success": "Erfolg",
|
|
2260
2290
|
"phrase_failed": "fehlgeschlagen",
|
|
2261
|
-
"phrase_loading": "
|
|
2262
|
-
"phrase_saving": "
|
|
2263
|
-
"phrase_full_system_debug": "
|
|
2291
|
+
"phrase_loading": "Laden",
|
|
2292
|
+
"phrase_saving": "sparen",
|
|
2293
|
+
"phrase_full_system_debug": "Vollständiges System-Debug",
|
|
2264
2294
|
"phrase_configuration_debug": "Konfigurations-Debug",
|
|
2265
2295
|
"phrase_translation_debug": "Übersetzungs-Debug",
|
|
2266
|
-
"phrase_performance_debug": "
|
|
2267
|
-
"phrase_admin_pin_setup": "Admin-
|
|
2268
|
-
"phrase_enter_admin_pin": "Admin-PIN
|
|
2296
|
+
"phrase_performance_debug": "Leistungsdebug",
|
|
2297
|
+
"phrase_admin_pin_setup": "Admin-Pin-Setup",
|
|
2298
|
+
"phrase_enter_admin_pin": "Geben Sie die Admin-PIN ein",
|
|
2269
2299
|
"phrase_confirm_admin_pin": "Admin-PIN bestätigen",
|
|
2270
2300
|
"phrase_authentication_failed": "Authentifizierung fehlgeschlagen",
|
|
2271
2301
|
"phrase_access_denied": "Zugriff verweigert",
|
|
@@ -2274,125 +2304,125 @@
|
|
|
2274
2304
|
"language_french": "Französisch",
|
|
2275
2305
|
"language_spanish": "Spanisch",
|
|
2276
2306
|
"language_russian": "Russisch",
|
|
2277
|
-
"language_japanese": "
|
|
2278
|
-
"language_chinese": "
|
|
2279
|
-
"validator_title": "🔍
|
|
2280
|
-
"validating_file": "📄 Validierung
|
|
2281
|
-
"valid_file_message": "✅ Gültig –
|
|
2282
|
-
"invalid_file_message": "❌ Ungültig
|
|
2283
|
-
"no_validation_rules": "
|
|
2307
|
+
"language_japanese": "japanisch",
|
|
2308
|
+
"language_chinese": "chinesisch",
|
|
2309
|
+
"validator_title": "🔍 Sprachreinheitsvalidator",
|
|
2310
|
+
"validating_file": "📄 Validierung {language}.json ({name})...",
|
|
2311
|
+
"valid_file_message": "✅ Gültig – Keine Verstöße gegen die Sprachreinheit",
|
|
2312
|
+
"invalid_file_message": "❌ Ungültig - {count} Verstöße gefunden",
|
|
2313
|
+
"no_validation_rules": "Für die Sprache sind keine Validierungsregeln definiert: {language}",
|
|
2284
2314
|
"error_reading_file": "Fehler beim Lesen der Datei: {errorMessage}",
|
|
2285
|
-
"issue_forbidden_marker": "Enthält
|
|
2286
|
-
"issue_english_phrase": "Enthält
|
|
2315
|
+
"issue_forbidden_marker": "Enthält verbotene Markierung: {marker}",
|
|
2316
|
+
"issue_english_phrase": "Enthält den englischen Satz: „{phrase}\"",
|
|
2287
2317
|
"issue_english_words": "Enthält englische Wörter: {words}",
|
|
2288
2318
|
"issue_missing_cyrillic": "Langer Text sollte kyrillische Zeichen für Russisch enthalten",
|
|
2289
2319
|
"issue_missing_japanese": "Langer Text sollte japanische Zeichen enthalten",
|
|
2290
|
-
"issue_missing_chinese": "Langer Text sollte chinesische
|
|
2320
|
+
"issue_missing_chinese": "Langer Text sollte chinesische Schriftzeichen enthalten",
|
|
2291
2321
|
"summary_title": "📊 VALIDIERUNGSZUSAMMENFASSUNG",
|
|
2292
2322
|
"overall_results_header": "📋 Gesamtergebnisse:",
|
|
2293
|
-
"total_files_validated": "Gesamtzahl
|
|
2323
|
+
"total_files_validated": "Gesamtzahl der validierten Dateien: {count}",
|
|
2294
2324
|
"valid_files": "Gültige Dateien: {count}",
|
|
2295
2325
|
"invalid_files": "Ungültige Dateien: {count}",
|
|
2296
|
-
"total_violations": "
|
|
2297
|
-
"violations_by_file_header": "❌
|
|
2326
|
+
"total_violations": "Gesamtzahl der Verstöße: {count}",
|
|
2327
|
+
"violations_by_file_header": "❌ VERLETZUNGEN DURCH DATEI:"
|
|
2298
2328
|
},
|
|
2299
2329
|
"workflow": {
|
|
2300
2330
|
"title": "Workflow-Management",
|
|
2301
|
-
"description": "
|
|
2302
|
-
"select_workflow_file": "
|
|
2303
|
-
"no_workflow_files": "
|
|
2304
|
-
"invalid_selection": "Ungültige Auswahl. Bitte
|
|
2305
|
-
"workflow_execution_started": "
|
|
2331
|
+
"description": "Verwalten Sie i18n-Workflows.",
|
|
2332
|
+
"select_workflow_file": "Wählen Sie eine Workflow-Datei zum Ausführen aus:",
|
|
2333
|
+
"no_workflow_files": "Im Workflows-Verzeichnis wurden keine Workflow-Dateien gefunden.",
|
|
2334
|
+
"invalid_selection": "Ungültige Auswahl. Bitte geben Sie eine Nummer ein, die einer Workflow-Datei entspricht.",
|
|
2335
|
+
"workflow_execution_started": "Workflow starten: {workflowName}",
|
|
2306
2336
|
"workflow_execution_completed": "Workflow abgeschlossen: {workflowName}",
|
|
2307
|
-
"workflow_execution_failed": "Workflow fehlgeschlagen: {workflowName}
|
|
2337
|
+
"workflow_execution_failed": "Workflow fehlgeschlagen: {workflowName} - {error}",
|
|
2308
2338
|
"workflow_cancelled": "Workflow-Ausführung abgebrochen.",
|
|
2309
|
-
"press_enter_to_continue": "
|
|
2310
|
-
"starting": "🚀
|
|
2311
|
-
"completed": "✅
|
|
2312
|
-
"checkReports": "📄 Berichte
|
|
2313
|
-
"exitingCompleted": "📝
|
|
2339
|
+
"press_enter_to_continue": "Drücken Sie die Eingabetaste, um fortzufahren!",
|
|
2340
|
+
"starting": "🚀 Workflow wird gestartet...",
|
|
2341
|
+
"completed": "✅Workflow erfolgreich abgeschlossen!",
|
|
2342
|
+
"checkReports": "📄 Überprüfen Sie die Berichte auf Details.",
|
|
2343
|
+
"exitingCompleted": "📝Arbeitsablauf abgeschlossen. Verlassen...",
|
|
2314
2344
|
"summary": {
|
|
2315
2345
|
"title": "📋 WORKFLOW-ZUSAMMENFASSUNG",
|
|
2316
2346
|
"separator": "===================",
|
|
2317
|
-
"completedAt": "🕐 Workflow abgeschlossen
|
|
2318
|
-
"initialViolations": "📊
|
|
2319
|
-
"finalViolations": "📉
|
|
2320
|
-
"totalFixes": "🔧
|
|
2347
|
+
"completedAt": "🕐 Workflow abgeschlossen am: {timestamp}",
|
|
2348
|
+
"initialViolations": "📊 Erste Verstöße: {count}",
|
|
2349
|
+
"finalViolations": "📉 Letzte Verstöße: {count}",
|
|
2350
|
+
"totalFixes": "🔧 Insgesamt angewendete Korrekturen: {count}",
|
|
2321
2351
|
"improvement": "📈 Verbesserung: {percentage}%",
|
|
2322
|
-
"stepResults": "📝
|
|
2352
|
+
"stepResults": "📝 SCHRITTERGEBNISSE:",
|
|
2323
2353
|
"stepDetail": "{number}. {status} {stepName}",
|
|
2324
2354
|
"violations": "Verstöße: {count}",
|
|
2325
2355
|
"fixesApplied": "Angewandte Korrekturen: {count}",
|
|
2326
2356
|
"nextSteps": "💡 NÄCHSTE SCHRITTE:",
|
|
2327
|
-
"congratulations": "🎉 Glückwunsch! Alle
|
|
2328
|
-
"cicdIntegration": "✅ Integration des Validators in
|
|
2329
|
-
"automatedChecks": "✅
|
|
2330
|
-
"greatProgress": "🎯 Toller Fortschritt! Die meisten Probleme wurden
|
|
2331
|
-
"manualReview": "🔍
|
|
2332
|
-
"addMappings": "🌐
|
|
2333
|
-
"goodProgress": "📈
|
|
2334
|
-
"expandMappings": "🔧
|
|
2335
|
-
"professionalReview": "👥
|
|
2336
|
-
"runAgain": "🔄 Workflow erneut
|
|
2337
|
-
"limitedProgress": "⚠️
|
|
2338
|
-
"reviewMappings": "🔍
|
|
2339
|
-
"professionalServices": "👥
|
|
2340
|
-
"checkIssues": "🔧
|
|
2357
|
+
"congratulations": "🎉 Herzlichen Glückwunsch! Alle Gebietsschemadateien verfügen jetzt über perfekte Sprachreinheit!",
|
|
2358
|
+
"cicdIntegration": "✅ Erwägen Sie die Integration des Validators in Ihre CI/CD-Pipeline",
|
|
2359
|
+
"automatedChecks": "✅ Richten Sie automatische Prüfungen für neue Übersetzungen ein",
|
|
2360
|
+
"greatProgress": "🎯 Toller Fortschritt! Die meisten Probleme wurden gelöst.",
|
|
2361
|
+
"manualReview": "🔍 Überprüfen Sie die verbleibenden Verstöße manuell",
|
|
2362
|
+
"addMappings": "🌐 Erwägen Sie das Hinzufügen weiterer Übersetzungszuordnungen für Randfälle",
|
|
2363
|
+
"goodProgress": "📈 Es wurden gute Fortschritte erzielt, aber es ist noch mehr Arbeit nötig.",
|
|
2364
|
+
"expandMappings": "🔧 Erweitern Sie die automatischen Übersetzungszuordnungen",
|
|
2365
|
+
"professionalReview": "👥 Erwägen Sie die manuelle Überprüfung komplexer Übersetzungen",
|
|
2366
|
+
"runAgain": "🔄 Führen Sie den Workflow erneut aus, nachdem Sie weitere Zuordnungen hinzugefügt haben",
|
|
2367
|
+
"limitedProgress": "⚠️ Begrenzter Fortschritt. Möglicherweise ist ein manueller Eingriff erforderlich.",
|
|
2368
|
+
"reviewMappings": "🔍 Überprüfen Sie die Übersetzungszuordnungen und fügen Sie fehlende hinzu",
|
|
2369
|
+
"professionalServices": "👥 Ziehen Sie professionelle Übersetzungsdienste in Betracht",
|
|
2370
|
+
"checkIssues": "🔧 Überprüfen Sie die Gebietsschemadateien auf systematische Probleme",
|
|
2341
2371
|
"success": "✅",
|
|
2342
2372
|
"warning": "⚠️"
|
|
2343
2373
|
}
|
|
2344
2374
|
},
|
|
2345
2375
|
"consoleI18nTester": {
|
|
2346
2376
|
"found_target_file": "Zieldatei gefunden",
|
|
2347
|
-
"scanning_files_for_console_statements": "
|
|
2348
|
-
"found_javascript_files": "
|
|
2349
|
-
"console_i18n_analysis_results": "Konsolen-i18n-
|
|
2350
|
-
"total_console_statements": "
|
|
2351
|
-
"translated_statements": "Übersetzte
|
|
2352
|
-
"hardcoded_statements": "
|
|
2353
|
-
"translation_coverage": "
|
|
2354
|
-
"coverage_by_file": "
|
|
2355
|
-
"file_coverage_stats": "
|
|
2356
|
-
"hardcoded_console_statements": "
|
|
2357
|
-
"file_header": "
|
|
2358
|
-
"line_statement": "
|
|
2359
|
-
"suggested_key": "
|
|
2360
|
-
"suggested_replacement": "
|
|
2377
|
+
"scanning_files_for_console_statements": "Durchsuchen von Dateien nach Konsolenanweisungen",
|
|
2378
|
+
"found_javascript_files": "Javascript-Dateien gefunden",
|
|
2379
|
+
"console_i18n_analysis_results": "Ergebnisse der Konsolen-i18n-Analyse",
|
|
2380
|
+
"total_console_statements": "Gesamte Konsolenanweisungen",
|
|
2381
|
+
"translated_statements": "Übersetzte Aussagen",
|
|
2382
|
+
"hardcoded_statements": "Hartcodierte Anweisungen",
|
|
2383
|
+
"translation_coverage": "Übersetzungsumfang",
|
|
2384
|
+
"coverage_by_file": "Berichterstattung nach Akte",
|
|
2385
|
+
"file_coverage_stats": "Statistiken zur Dateiabdeckung",
|
|
2386
|
+
"hardcoded_console_statements": "Hartcodierte Konsolenanweisungen",
|
|
2387
|
+
"file_header": "Dateikopf",
|
|
2388
|
+
"line_statement": "Zeilenanweisung",
|
|
2389
|
+
"suggested_key": "Vorgeschlagener Schlüssel",
|
|
2390
|
+
"suggested_replacement": "Empfohlener Ersatz",
|
|
2361
2391
|
"recommendations": "Empfehlungen",
|
|
2362
2392
|
"recommendation_1": "Empfehlung 1",
|
|
2363
2393
|
"recommendation_2": "Empfehlung 2",
|
|
2364
2394
|
"recommendation_3": "Empfehlung 3",
|
|
2365
2395
|
"recommendation_4": "Empfehlung 4",
|
|
2366
|
-
"translation_keys_to_add": "Übersetzungsschlüssel
|
|
2367
|
-
"add_keys_instruction": "Hinzufügen von Schlüsseln",
|
|
2396
|
+
"translation_keys_to_add": "Übersetzungsschlüssel zum Hinzufügen",
|
|
2397
|
+
"add_keys_instruction": "Anweisungen zum Hinzufügen von Schlüsseln",
|
|
2368
2398
|
"perfect_translation_coverage": "Perfekte Übersetzungsabdeckung",
|
|
2369
|
-
"all_statements_using_translation": "Alle
|
|
2370
|
-
"i18n_console_translation_checker": "
|
|
2371
|
-
"script_description_line1": "
|
|
2372
|
-
"script_description_line2": "
|
|
2373
|
-
"analysis_completed_in_duration": "Analyse
|
|
2374
|
-
"report_saved_to_path": "Bericht
|
|
2375
|
-
"found_hardcoded_messages": "
|
|
2376
|
-
"all_console_messages_use_translation": "Alle Konsolennachrichten verwenden Übersetzung"
|
|
2399
|
+
"all_statements_using_translation": "Alle Aussagen mit Übersetzung",
|
|
2400
|
+
"i18n_console_translation_checker": "I18n-Konsolenübersetzungsprüfer",
|
|
2401
|
+
"script_description_line1": "Skriptbeschreibung Zeile1",
|
|
2402
|
+
"script_description_line2": "Skriptbeschreibung Zeile2",
|
|
2403
|
+
"analysis_completed_in_duration": "Analyse in Dauer abgeschlossen",
|
|
2404
|
+
"report_saved_to_path": "Bericht im Pfad gespeichert",
|
|
2405
|
+
"found_hardcoded_messages": "Hartcodierte Nachrichten gefunden",
|
|
2406
|
+
"all_console_messages_use_translation": "Alle Konsolennachrichten verwenden eine Übersetzung"
|
|
2377
2407
|
},
|
|
2378
2408
|
"exportTranslations": {
|
|
2379
|
-
"createdDirectory": "
|
|
2409
|
+
"createdDirectory": "Verzeichnis erstellt",
|
|
2380
2410
|
"foundFiles": "Gefundene Dateien",
|
|
2381
|
-
"createdTemplate": "
|
|
2382
|
-
"skippedExisting": "
|
|
2383
|
-
"title": "
|
|
2384
|
-
"creatingTemplates": "
|
|
2411
|
+
"createdTemplate": "Vorlage erstellt",
|
|
2412
|
+
"skippedExisting": "Vorhandene übersprungen",
|
|
2413
|
+
"title": "Titel",
|
|
2414
|
+
"creatingTemplates": "Erstellen von Vorlagen",
|
|
2385
2415
|
"summary": "Zusammenfassung",
|
|
2386
2416
|
"summaryLanguages": "Zusammenfassung Sprachen",
|
|
2387
|
-
"summaryFilesPerLanguage": "
|
|
2388
|
-
"summaryTotalFiles": "Zusammenfassung
|
|
2417
|
+
"summaryFilesPerLanguage": "Zusammenfassungsdateien pro Sprache",
|
|
2418
|
+
"summaryTotalFiles": "Zusammenfassung Gesamtdateien",
|
|
2389
2419
|
"success": "Erfolg",
|
|
2390
|
-
"location": "
|
|
2420
|
+
"location": "Standort",
|
|
2391
2421
|
"nextSteps": "Nächste Schritte"
|
|
2392
2422
|
},
|
|
2393
2423
|
"dashboard": {
|
|
2394
2424
|
"title": "Titel",
|
|
2395
|
-
"overview": "
|
|
2425
|
+
"overview": "Überblick"
|
|
2396
2426
|
},
|
|
2397
2427
|
"auth": {
|
|
2398
2428
|
"title": "Titel",
|
|
@@ -2400,7 +2430,7 @@
|
|
|
2400
2430
|
"password": "Passwort",
|
|
2401
2431
|
"signIn": "Anmelden",
|
|
2402
2432
|
"forgotPassword": "Passwort vergessen",
|
|
2403
|
-
"signUp": "
|
|
2433
|
+
"signUp": "Melden Sie sich an"
|
|
2404
2434
|
},
|
|
2405
2435
|
"checkUsage": {
|
|
2406
2436
|
"usage_analysis_failed": "Die Nutzungsanalyse ist fehlgeschlagen."
|