i18ntk 4.7.0 → 4.7.2

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.
Files changed (40) hide show
  1. package/CHANGELOG.md +34 -1
  2. package/README.md +15 -4
  3. package/main/i18ntk-ui.js +35 -30
  4. package/main/i18ntk-usage.js +2 -2
  5. package/main/i18ntk-validate.js +1 -1
  6. package/main/manage/commands/ValidateCommand.js +1 -1
  7. package/main/manage/index.js +52 -47
  8. package/main/manage/managers/LanguageMenu.js +3 -1
  9. package/main/manage/services/ConfigurationService.js +1 -1
  10. package/main/manage/services/FrameworkDetectionService.js +1 -1
  11. package/main/manage/services/UsageService.js +2 -2
  12. package/package.json +11 -7
  13. package/settings/settings-manager.js +19 -3
  14. package/ui-locales/ar.json +2636 -0
  15. package/ui-locales/cs.json +2636 -0
  16. package/ui-locales/de.json +17 -1
  17. package/ui-locales/el.json +2636 -0
  18. package/ui-locales/en.json +17 -1
  19. package/ui-locales/es.json +17 -1
  20. package/ui-locales/fr.json +17 -1
  21. package/ui-locales/he.json +2636 -0
  22. package/ui-locales/hi.json +2636 -0
  23. package/ui-locales/hu.json +2636 -0
  24. package/ui-locales/it.json +2636 -0
  25. package/ui-locales/ja.json +17 -1
  26. package/ui-locales/ko.json +2636 -0
  27. package/ui-locales/nl.json +2636 -0
  28. package/ui-locales/pl.json +2636 -0
  29. package/ui-locales/pt.json +2636 -0
  30. package/ui-locales/ru.json +17 -1
  31. package/ui-locales/sv.json +2636 -0
  32. package/ui-locales/th.json +2636 -0
  33. package/ui-locales/tr.json +2636 -0
  34. package/ui-locales/uk.json +2636 -0
  35. package/ui-locales/vi.json +2636 -0
  36. package/ui-locales/zh.json +17 -1
  37. package/utils/config-helper.js +2 -2
  38. package/utils/config-manager.js +3 -4
  39. package/utils/env-manager.js +1 -1
  40. package/utils/locale-optimizer.js +1 -1
@@ -0,0 +1,2636 @@
1
+ {
2
+ "meta": {
3
+ "version": "4.7.0",
4
+ "updated": "2026-07-07",
5
+ "lang": "it"
6
+ },
7
+ "common": {
8
+ "welcome": "Benvenuto",
9
+ "hello": "Ciao",
10
+ "goodbye": "Arrivederci",
11
+ "yes": "SÌ",
12
+ "no": "NO",
13
+ "save": "Salva",
14
+ "cancel": "Cancellare",
15
+ "delete": "Eliminare",
16
+ "edit": "Modificare",
17
+ "loading": "Caricamento...",
18
+ "offlineTitle": "Sei offline",
19
+ "offlineMessage": "Controlla la tua connessione Internet",
20
+ "tryReconnect": "Prova a riconnetterti",
21
+ "logout": "Esci",
22
+ "login": "Login",
23
+ "amount": "Quantità",
24
+ "success": "Successo",
25
+ "error": "Errore",
26
+ "warning": "Avvertimento",
27
+ "info": "Informazioni:",
28
+ "debug": "Debug",
29
+ "progress": "Progressi:",
30
+ "remaining": "Rimanente:",
31
+ "total": "Totale:",
32
+ "completed": "7. Completato con successo!",
33
+ "missing": "Mancante",
34
+ "partial": "Parziale",
35
+ "sameAsSource": "Uguale alla fonte:",
36
+ "formatMismatch": "Mancata corrispondenza del formato:",
37
+ "typeMismatch": "Tipo non corrispondente:",
38
+ "structureMismatch": "Mancata corrispondenza della struttura:",
39
+ "invalidOption": "Opzione non valida",
40
+ "separator": "==================================================",
41
+ "initializationFailed": "❌ Inizializzazione non riuscita: {error}",
42
+ "stackTrace": "Traccia dello stack: {stack}",
43
+ "pressEnterToContinue": "Premi Invio per continuare...",
44
+ "pressEnterToReturn": "Premere Invio per tornare al menu principale...",
45
+ "stepCompleted": "Fare un passo '{stepName}' completato.",
46
+ "stepFailed": "Fare un passo '{stepName}' fallito.",
47
+ "runningStep": "Fase di esecuzione: {stepName}",
48
+ "command": "Comando: {command}",
49
+ "startingWorkflow": "Avvio del flusso di lavoro...",
50
+ "workflowCompleted": "Flusso di lavoro completato.",
51
+ "checkReports": "Controlla i rapporti per i dettagli.",
52
+ "errorExecutingCommand": "Errore durante l'esecuzione del comando: {error}",
53
+ "genericError": "❌ Errore: {error}",
54
+ "errors": {
55
+ "errors": "Errori:",
56
+ "genericError": "❌ Errore: {error}",
57
+ "initializationFailed": "❌ Inizializzazione non riuscita: {error}",
58
+ "initializationCancelled": "❌ Inizializzazione annullata dall'utente.",
59
+ "translationKeyNotFound": "Chiave di traduzione non trovata: {key}",
60
+ "sourceDirectoryNotFound": "Directory di origine non trovata: {directory}",
61
+ "configLoadingFailed": "Caricamento della configurazione non riuscito",
62
+ "invalidSourceDirectory": "Directory di origine non valida: {directory}",
63
+ "securityViolation": "Rilevata violazione della sicurezza",
64
+ "authenticationFailed": "Autenticazione non riuscita",
65
+ "sourceEqualsI18nWarn": "⚠️ sourceDir è uguale a i18nDir ({sourceDir}). Ricadere a {fallback} per la scansione della sorgente."
66
+ },
67
+ "errorGeneratingStatusSummary": "Errore durante la generazione del riepilogo dello stato: {error}",
68
+ "errorRunningDebugTool": "Errore durante l'esecuzione dello strumento di debug '{displayName}': {error}",
69
+ "errorReadingDebugLogs": "Errore durante la lettura dei log di debug: {error}",
70
+ "errorAnalyzingLogFile": "Errore durante l'analisi del file di registro: {error}",
71
+ "errorAnalyzingTranslationKeys": "Errore durante l'analisi delle chiavi di traduzione: {error}",
72
+ "errorAnalyzingTranslationCompleteness": "Errore durante l'analisi della completezza della traduzione: {error}",
73
+ "analyzingTranslationCompleteness": "Analisi della completezza della traduzione in tutte le lingue...",
74
+ "i18nDirectoryNotFound": "⚠️ Directory i18n non trovata: {i18nDir}",
75
+ "translationCompletenessAnalysisFailed": "⚠️ L'analisi della completezza della traduzione non è riuscita: {error}",
76
+ "failedToAnalyzeLanguage": "❌ Impossibile analizzare la lingua {language}: {error}",
77
+ "errorReadingI18nDirectory": "❌ Errore durante la lettura della directory i18n:",
78
+ "languageCompletenessTitle": "📈 COMPLETEZZA DELLA TRADUZIONE PER LINGUA",
79
+ "errorAnalyzingTranslationFormat": "Errore durante l'analisi del formato di traduzione: {error}",
80
+ "errorAnalyzingTranslationType": "Errore durante l'analisi del tipo di traduzione: {error}",
81
+ "errorAnalyzingTranslationStructure": "Errore durante l'analisi della struttura della traduzione: {error}",
82
+ "errorAnalyzingTranslationFormatMismatch": "Errore durante l'analisi della mancata corrispondenza del formato di traduzione: {error}",
83
+ "errorAnalyzingTranslationTypeMismatch": "Errore durante l'analisi della mancata corrispondenza del tipo di traduzione: {error}",
84
+ "errorAnalyzingTranslationStructureMismatch": "Errore durante l'analisi della mancata corrispondenza della struttura della traduzione: {error}",
85
+ "errorAnalyzingTranslationSameAsSource": "Errore nell'analisi della traduzione uguale all'origine: {error}",
86
+ "title": "Stato",
87
+ "nextStep1": "1. Controlla l'analisi dell'utilizzo:",
88
+ "nextStep2": "2. Convalida delle traduzioni:",
89
+ "nextStep3": "3. Analizzare la completezza:",
90
+ "nextStep4": "4. Completa le traduzioni mancanti:",
91
+ "nextStep5": "5. Genera un rapporto di riepilogo:",
92
+ "nextStep6": "6. Revisione e finalizzazione delle traduzioni:",
93
+ "generating": "Generazione del rapporto di riepilogo in corso...",
94
+ "review": "Revisione delle traduzioni...",
95
+ "finalizing": "Finalizzazione delle traduzioni...",
96
+ "finalized": "Finalizzato con successo!",
97
+ "warnings": "Avvertenze:",
98
+ "completedKeys": "Chiavi completate:",
99
+ "missingKeys": "Chiavi mancanti:",
100
+ "partialKeys": "Chiavi parziali:",
101
+ "home": "Casa",
102
+ "settings": "Impostazioni",
103
+ "startingSettings": "🎛️ Avvio della CLI delle impostazioni...",
104
+ "confirm": "Confermare",
105
+ "errorExiting": "Errore durante l'uscita."
106
+ },
107
+ "errors": {
108
+ "invalidOption": "❌ Opzione non valida: {option}. Per favore riprova.",
109
+ "readlineClosed": "Il flusso di input è chiuso; in esecuzione in modalità non interattiva.",
110
+ "noPackageJson": "Nessun pacchetto.json trovato. Impossibile rilevare automaticamente il framework i18n.",
111
+ "noI18nDir": "Nessuna directory i18n trovata nella root del progetto.",
112
+ "noI18nConfig": "Nessun file di configurazione i18n trovato nella root del progetto.",
113
+ "errorReadingDebugLogs": "Errore durante la lettura dei log di debug: {error}"
114
+ },
115
+ "scanner": {
116
+ "help_message": "Utilizzo dello scanner di testo I18n: nodo i18ntk-scanner.js [opzioni] Opzioni: --source-dir <dir> Directory di origine da scansionare (impostazione predefinita: ./src) --output <file> File di output per i risultati della scansione (impostazione predefinita: ./i18ntk-scanner-report.json) --framework <name> Framework da target (react, vue, angular, vanilla) --patterns <patterns> Modelli regex personalizzati (separati da virgole) --include-tests Includi file di test nella scansione --exclude-dirs <dirs> Directory da escludere (separate da virgole) --help Mostra questo aiuto Esempi: 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",
117
+ "help_options": {
118
+ "source_dir": "Directory di origine per la scansione dei problemi i18n",
119
+ "output_dir": "Directory per i rapporti e i risultati della scansione",
120
+ "framework": "Framework di destinazione (react, vue, angular, vanilla)",
121
+ "patterns": "Modelli regex personalizzati per il rilevamento del testo",
122
+ "exclude": "Modelli di file da escludere dalla scansione",
123
+ "output_report": "Genera un rapporto di scansione dettagliato",
124
+ "min_length": "Lunghezza minima del testo da considerare per la traduzione",
125
+ "max_length": "Lunghezza massima del testo da considerare per la traduzione",
126
+ "include_tests": "Includere file di prova nel processo di scansione"
127
+ },
128
+ "starting": "🔍 Avvio dello scanner di testo per il framework: {framework}",
129
+ "sourceDirectory": "📁 Directory di scansione: {sourceDir}",
130
+ "frameworkDetected": "🎯 Quadro rilevato: {framework}",
131
+ "scanningFiles": "📊 Scansione {fileCount} file...",
132
+ "foundTexts": "📝 Trovato {textCount} testi che necessitano di traduzione",
133
+ "generatingReport": "📊 Generazione di un rapporto dettagliato...",
134
+ "reportSaved": "💾 Rapporto di scansione salvato in: {reportPath}",
135
+ "noTextsFound": "✅ Nessun testo inglese codificato trovato",
136
+ "scanComplete": "🎉 Scansione completata con successo!",
137
+ "analysisTitle": "🔍 ANALISI SCANSIONE DELLA TRADUZIONE",
138
+ "fileSummary": "📄 {file}: {count} testi trovati",
139
+ "textLocation": "📍Linea {line}: {text}",
140
+ "foundText": "Trovato {count} potenziali istanze di testo hardcoded",
141
+ "context": "📝 Contesto: {context}",
142
+ "severity": "⚠️ Gravità: {severity}",
143
+ "recommendation": "💡 Raccomandazione: {recommendation}",
144
+ "welcome": {
145
+ "title": "🎯 Benvenuto nello scanner di testo!",
146
+ "description": "Questo strumento esegue la scansione del codice sorgente alla ricerca di testo inglese codificato che potrebbe richiedere una traduzione."
147
+ },
148
+ "frameworkPrompt": {
149
+ "title": "🎯 Seleziona Quadro",
150
+ "available": "Framework disponibili: react, vue, angular, vanilla",
151
+ "description": "Inserisci il tipo di framework (o premi Invio per il rilevamento automatico):",
152
+ "input": "Struttura:"
153
+ },
154
+ "directoryPrompt": {
155
+ "title": "📁 Seleziona Directory di origine",
156
+ "current": "Directory corrente: {dir}",
157
+ "description": "Immettere la directory da scansionare (o premere Invio per quella corrente):",
158
+ "input": "Rubrica:"
159
+ },
160
+ "options": {
161
+ "includeTests": "Includere file di test?",
162
+ "excludeDirs": "Directory da escludere (separate da virgole):",
163
+ "customPatterns": "Modelli personalizzati da scansionare (regex):"
164
+ },
165
+ "reportGenerated": "Rapporto di scansione generato: {path}"
166
+ },
167
+ "fixer": {
168
+ "help_message": "Utilizzo del Fixer traduzione I18n: nodo i18ntk-fixer.js [opzioni] Opzioni: --source-dir <dir> Directory di origine da scansionare (impostazione predefinita: ./locales) --linguals <langs> Elenco di lingue separate da virgole da correggere --markers <markers> Indicatori separati da virgole da considerare come non tradotti --no-backup Salta la creazione automatica del backup --help Mostra questo aiuto Esempi: node i18ntk-fixer.js --linguals de,fr node i18ntk-fixer.js --source-dir=./locales --markers NOT_TRANSLATED node i18ntk-fixer.js --no-backup",
169
+ "starting": "🚀 Avvio della correzione della traduzione per le lingue: {languages}",
170
+ "sourceDirectory": "📁 Directory di origine: {sourceDir}",
171
+ "sourceLanguage": "🔤 Lingua di partenza: {sourceLanguage}",
172
+ "markers": "🏷️ Marker da sistemare: {markers}",
173
+ "scanningLanguage": "📊 Scansione {language}...",
174
+ "noLanguages": "❌ Nessuna lingua specificata per la correzione.",
175
+ "allComplete": "🎉 Tutte le traduzioni sono già complete!",
176
+ "fullReportSaved": "📊 Rapporto completo salvato in: {reportPath}",
177
+ "reviewReport": "Si prega di rivedere il rapporto prima di procedere.",
178
+ "backupCreated": "💾 Backup creato con successo.",
179
+ "applyingFixes": "🔄 Applicazione delle correzioni...",
180
+ "fixingComplete": "✅ Correzione della traduzione completata!",
181
+ "operationCancelled": "❌Operazione annullata dall'utente.",
182
+ "analysisTitle": "🔍ANALISI DELLA FISSAZIONE DELLA TRADUZIONE",
183
+ "analysisSeparator": "==================================================",
184
+ "totalIssues": "Problemi totali rilevati: {totalIssues}",
185
+ "missingTranslations": "Traduzioni mancanti: {missing}",
186
+ "placeholderTranslations": "Traduzioni dei segnaposto: {placeholder}",
187
+ "noIssues": "✅ Nessun problema riscontrato. Tutte le traduzioni sono complete.",
188
+ "detailedIssues": "📋 DETAILED ISSUES:",
189
+ "detailedSeparator": "--------------------------------------------------",
190
+ "filePath": "📄 {file} → {path}",
191
+ "missingKey": "❌ MANCANO: {source} → {new}",
192
+ "placeholderKey": "⚠️ SEGNAPOSTO: \"{target}\" → \"{new}\"",
193
+ "moreIssues": "... E {count} più problemi. Controlla il file del rapporto per i dettagli completi.",
194
+ "confirmationTitle": "🤔 Vuoi procedere con queste correzioni?",
195
+ "confirmationOptions": "Opzioni:",
196
+ "optionYes": "y - Sì, applica tutte le correzioni",
197
+ "optionNo": "n - No, annulla l'operazione",
198
+ "optionShow": "s: mostra i problemi dettagliati",
199
+ "choicePrompt": "La tua scelta (sì/n/s):",
200
+ "nonInteractiveMode": "⚡ Rilevata modalità non interattiva: applicazione automatica delle correzioni...",
201
+ "reportGenerated": "📊 Report del riparatore generato: {path}",
202
+ "summary": "Riepilogo del riparatore:",
203
+ "welcome": {
204
+ "title": "🎯 Benvenuto in Translation Fixer!",
205
+ "description": "Questo strumento ti aiuterà a correggere traduzioni e segnaposto interrotti nei file locali."
206
+ },
207
+ "markerPrompt": {
208
+ "title": "🏷️ Configura i marcatori segnaposto",
209
+ "description": "Inserisci gli indicatori che indicano il testo non tradotto (separato da virgole):",
210
+ "currentDefaults": "Indicatori predefiniti: {markers}",
211
+ "input": "Marker (o premere Invio per le impostazioni predefinite):"
212
+ },
213
+ "languagePrompt": {
214
+ "title": "🌍 Seleziona le lingue da correggere",
215
+ "available": "Lingue disponibili: {languages}",
216
+ "description": "Inserisci le lingue da correggere (separate da virgole) o premi Invio per tutte:",
217
+ "input": "Lingue:",
218
+ "noLanguages": "Nessuna lingua trovata da correggere."
219
+ },
220
+ "directoryPrompt": {
221
+ "title": "📁 Seleziona Rubrica",
222
+ "current": "Directory corrente: {dir}",
223
+ "description": "Inserisci la directory contenente i file locali (o premi Invio per quelli correnti):",
224
+ "input": "Rubrica:"
225
+ },
226
+ "backupLocation": "Posizione del backup: {dir}",
227
+ "completed": "Correzione completata.",
228
+ "creatingBackup": "Creazione del backup in {dir}...",
229
+ "dryRunMode": "Modalità di funzionamento a secco: {mode}",
230
+ "error": "Il riparatore non è riuscito: {error}",
231
+ "fixing": "Fissaggio {language}...",
232
+ "foundLanguages": "Trovato {count} lingue: {languages}",
233
+ "languageFixed": "{language}: fisso {fixed} tasto/i saltato {skipped}.",
234
+ "running": "Esecuzione del correttore di traduzione...",
235
+ "totalFixed": "Totale fisso: {count}"
236
+ },
237
+ "autorun": {
238
+ "stepAnalyzeTranslations": "Analizzare le traduzioni",
239
+ "stepCompletedWithIcon": "✅ Completato: {stepName}",
240
+ "stepValidateTranslations": "Convalida le traduzioni",
241
+ "stepRunning": "▶️ Passo {stepNumber}/{totalSteps}: {stepName}",
242
+ "separator": "==================================================",
243
+ "stepFailed": "❌ Non riuscito: {stepName}",
244
+ "errorLabel": "Errore",
245
+ "autoRunScriptTitle": "🧪 Flusso di lavoro con esecuzione automatica",
246
+ "usageTitle": "Utilizzo",
247
+ "runAllSteps": "Esegui: nodo i18ntk-autorun.js",
248
+ "configureSettingsFirst": "Configurazione: i18ntk-config.json o flag CLI",
249
+ "runSpecificSteps": "Utilizza --steps=1,3 o --list per mostrare i passaggi",
250
+ "showHelp": "--aiuto per maggiori informazioni",
251
+ "examplesTitle": "Esempi",
252
+ "configExample": "nodo i18ntk-autorun.js --ui-lingual=zh",
253
+ "stepsExample1": "nodo i18ntk-autorun.js --steps=analyze,validate",
254
+ "stepsExample2": "nodo i18ntk-autorun.js --list",
255
+ "customSettingsConfiguration": "Impostazioni di esecuzione automatica personalizzate",
256
+ "availableSteps": "Passaggi disponibili",
257
+ "startingAutoRunWorkflow": "🚀 Avvio del flusso di lavoro con esecuzione automatica...",
258
+ "workflowIncludesSteps": "Il flusso di lavoro include {count} passaggi:",
259
+ "missingRequiredFile": "File richiesto mancante: {file}",
260
+ "workflowStopped": "Il flusso di lavoro è stato interrotto a causa di un errore.",
261
+ "workflowCompleted": "🎉 Flusso di lavoro completato!",
262
+ "successfulSteps": "Passaggi riusciti: {count}",
263
+ "failedSteps": "Passaggi non riusciti: {count}",
264
+ "stepInitializeProject": "Inizializza progetto",
265
+ "stepCheckUsage": "Controlla l'utilizzo della chiave",
266
+ "stepGenerateSummary": "Genera un rapporto di riepilogo",
267
+ "runInitializationFirst": "Eseguire prima l'inizializzazione.",
268
+ "initializationCheckPassed": "Controllo di inizializzazione superato.",
269
+ "runningStep": "Fase di esecuzione: {stepName}",
270
+ "commandLabel": "Comando: {command}",
271
+ "stepCompletedWithTime": "Fare un passo '{stepName}' completato dentro {duration}SM.",
272
+ "stepCompleted": "Fare un passo '{stepName}' completato.",
273
+ "stepFailedWithError": "Fare un passo '{stepName}' fallito con errore: {error}",
274
+ "requiredStepFailed": "Passaggio obbligatorio non riuscito. Interruzione del flusso di lavoro.",
275
+ "optionalStepFailed": "Passaggio facoltativo non riuscito. Flusso di lavoro continuo.",
276
+ "stepRequired": "(Necessario)",
277
+ "stepOptional": "(Opzionale)",
278
+ "startingExecution": "Avvio dell'esecuzione...",
279
+ "pressEnterToContinue": "Premi Invio per continuare...",
280
+ "runningSelectedSteps": "Esecuzione dei passaggi selezionati...",
281
+ "invalidStepNumber": "Numero di passaggio non valido: {stepNum}",
282
+ "executionReport": "Rapporto di esecuzione:",
283
+ "requiredFailedSteps": "I passaggi richiesti non sono riusciti: {count}",
284
+ "stepDetails": "Dettagli del passaggio:",
285
+ "reportSavedTo": "Rapporto salvato in: {path}",
286
+ "overallStatusSuccess": "SUCCESS",
287
+ "overallStatusFailed": "FAILED",
288
+ "overallStatus": "Stato generale: {status}",
289
+ "pressEnterForDefaults": "Premere Invio per utilizzare le impostazioni predefinite per qualsiasi prompt.",
290
+ "sourceDirPrompt": "Inserisci la directory di origine (impostazione predefinita: {default}):",
291
+ "sourceLangPrompt": "Inserisci la lingua di origine (predefinita: {default}):",
292
+ "targetLangsPrompt": "Inserisci le lingue di destinazione (separate da virgole, impostazione predefinita: {default}):",
293
+ "translationMarkerPrompt": "Inserisci l'indicatore di traduzione (predefinito: {default}):",
294
+ "outputDirPrompt": "Inserisci la directory di output per i report (impostazione predefinita: {default}):",
295
+ "settingsUpdatedSuccessfully": "Impostazioni aggiornate con successo!",
296
+ "errorConfiguringSettings": "Errore durante la configurazione delle impostazioni: {error}",
297
+ "configurationComplete": "Configurazione completata.",
298
+ "runAutoRunCommand": "Ora puoi eseguire il comando di esecuzione automatica.",
299
+ "configurationFailed": "Configurazione non riuscita: {error}",
300
+ "noValidStepNumbers": "Nessun numero di passaggio valido fornito.",
301
+ "autoRunFailed": "Esecuzione automatica non riuscita: {error}",
302
+ "stepCompleteTranslations": "Traduzioni complete",
303
+ "stepAnalyzeSizing": "Analizza il dimensionamento",
304
+ "stepCompletedIcon": "✅",
305
+ "stepRunningWithNumber": "[{stepNumber}/{totalSteps}] Fare un passo '{stepName}' corsa...",
306
+ "stepFailedIcon": "❌",
307
+ "translationLoadWarning": "Avviso: impossibile caricare {lang} traduzioni",
308
+ "configReadError": "Errore durante la lettura {file}"
309
+ },
310
+ "analyze": {
311
+ "help_message": "Utilizzo dell'analizzatore di traduzione I18n: nodo i18ntk-analyze.js [opzioni] Opzioni: --source-dir <dir> Directory di origine da scansionare (impostazione predefinita: ./src) --i18n-dir <dir> Directory I18n (default: ./src/locales) --output-report Genera report dettagliato --output-dir <dir> Directory di output per i report (impostazione predefinita: ./reports) --help Mostra questo aiuto Esempi: 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",
312
+ "source_directory": "📁 Directory di origine: {sourceDir}",
313
+ "i18n_directory": "🌐 Rubrica I18n: {i18nDir}",
314
+ "loading_translation_files": "📋 Caricamento dei file di traduzione...",
315
+ "sourceDirectoryLabel": "📁 Directory di origine: {sourceDir}",
316
+ "sourceLanguageLabel": "🌍 Lingua originale: {sourceLanguage}",
317
+ "strictModeLabel": "⚙️ Modalità rigorosa: {mode}",
318
+ "found_translation_files_count": "✅Trovato {count} file di traduzione",
319
+ "analyzing_translations": "🔍 Analizzando le traduzioni...",
320
+ "analysis_completed_successfully": "🎉 Analisi completata con successo!",
321
+ "analysis_results": "📊 ANALYSIS RESULTS",
322
+ "language_analysis_stats": "{language}: {translatedKeys}/{totalKeys} ({percentage}% tradotto)",
323
+ "sample_missing_keys": "Esempio di chiavi mancanti:",
324
+ "missing_key": "- {key}",
325
+ "and_more_missing": "...E {count} Di più.",
326
+ "sample_unused_keys": "Chiavi inutilizzate di esempio:",
327
+ "unused_key": "- {key}",
328
+ "and_more_unused": "...E {count} Di più.",
329
+ "recommendations": "📋 RACCOMANDAZIONI",
330
+ "add_missing_translations": "💡 Aggiungi le traduzioni mancanti per migliorare la copertura.",
331
+ "remove_unused_translations": "💡 Rimuovi le traduzioni inutilizzate per mantenere pulito il tuo progetto.",
332
+ "next_steps": "📋 NEXT STEPS",
333
+ "review_analysis_results": "1. Esaminare i risultati dell'analisi nella console o nel report generato.",
334
+ "run_with_output_report": "2. Esegui con --output-report per un rapporto dettagliato.",
335
+ "add_or_remove_translations": "3. Aggiungi le traduzioni mancanti o rimuovi quelle inutilizzate.",
336
+ "rerun_analysis": "4. Eseguire nuovamente l'analisi per verificare i miglioramenti.",
337
+ "analysis_summary": "📊 ANALYSIS SUMMARY",
338
+ "source_files_scanned": "File di origine scansionati: {fileCount}",
339
+ "translation_files_checked": "File di traduzione controllati: {translationFileCount}",
340
+ "total_keys": "Chiavi totali: {totalKeys}",
341
+ "translated_keys": "Chiavi tradotte: {translatedKeys}",
342
+ "missing_keys": "Chiavi mancanti: {missingKeys}",
343
+ "unused_keys": "Chiavi non utilizzate: {unusedKeys}",
344
+ "translation_coverage": "Copertura della traduzione: {coverage}%",
345
+ "analysis_passed_for_language": "✅Analisi superate {language}",
346
+ "analysis_failed_for_language": "❌ Analisi fallita per {language} ({missingKeys} mancante, {unusedKeys} inutilizzato)",
347
+ "starting": "🔍 Avvio dell'analisi della traduzione...",
348
+ "foundLanguages": "📋 Trovato {count} lingue da analizzare: {languages}",
349
+ "analyzing": "🔄 Analizzando {language}...",
350
+ "reportTitle": "📊 RAPPORTO DI ANALISI DELLA TRADUZIONE",
351
+ "generated": "generato: {timestamp}",
352
+ "status": "Stato: {translated}/{total} chiavi ({percentage}% tradotto)",
353
+ "filesAnalyzed": "File analizzati: {analyzed}/{total}",
354
+ "keysNeedingTranslation": "Chiavi da tradurre: {count}",
355
+ "fileBreakdown": "📋 RIPARTIZIONE DEL FILE",
356
+ "error": "Errore",
357
+ "completed": "✅ Analisi completata per {language}",
358
+ "progress": "📊 Progressi complessivi: {translated}/{total} lingue elaborate",
359
+ "reportSaved": "Rapporto salvato: {reportPath}",
360
+ "summary": "📊 ANALYSIS SUMMARY",
361
+ "finished": "✅ Analisi completata con successo!",
362
+ "statusFileMissing": "❌ Manca il file di traduzione",
363
+ "sourceKeys": "📊 Chiavi sorgente: {count}",
364
+ "translation": "📊 Traduzione: {translated}/{total} ({percentage}%)",
365
+ "structure": "🗂️ Struttura: {status}",
366
+ "consistent": "Coerente",
367
+ "inconsistent": "Incoerente",
368
+ "missingKeys": "Chiavi mancanti: {count}",
369
+ "extraKeys": "Chiavi aggiuntive: {count}",
370
+ "issues": "⚠️ Problemi riscontrati: {count}",
371
+ "issueType": {
372
+ "not_translated": "Non tradotto: {count}",
373
+ "empty_value": "Valori vuoti: {count}",
374
+ "partial_translation": "Traduzioni parziali: {count}",
375
+ "format_mismatch": "Mancate corrispondenze di formato: {count}",
376
+ "type_mismatch": "Mancate corrispondenze di tipo: {count}",
377
+ "structure_mismatch": "Disadattamenti della struttura: {count}",
378
+ "same_as_source": "Uguale alla fonte: {count}"
379
+ },
380
+ "keysToTranslate": "📋 CHIAVI PER TRADURRE",
381
+ "key": "Chiave",
382
+ "english": "Inglese",
383
+ "needsTranslation": "NECESSITA DI TRADUZIONE",
384
+ "andMoreKeys": "...E {count} più chiavi.",
385
+ "noLanguages": "⚠️ Nessuna lingua di destinazione trovata.",
386
+ "languageStats": "{language}: {percentage}% completato ({translated}/{total} chiavi)",
387
+ "invalidReportFilePath": "Percorso del file di rapporto non valido",
388
+ "failedToWriteReportFile": "Impossibile scrivere il file del rapporto in modo sicuro"
389
+ },
390
+ "complete": {
391
+ "configLoadedSuccessfully": "Configurazione caricata correttamente",
392
+ "configLoadingFailed": "Caricamento della configurazione non riuscito",
393
+ "sourceLanguageNotFound": "Directory della lingua di origine non trovata: {sourceLanguage}",
394
+ "couldNotParseTarget": "Impossibile analizzare il file di destinazione: {file}",
395
+ "couldNotParseSource": "Impossibile analizzare il file di origine: {file}",
396
+ "reportGenerated": "Rapporto generato: {path}",
397
+ "generateReportPrompt": "Desideri che venga generato un report?",
398
+ "title": "🌍 COMPLETAMENTO DELLA TRADUZIONE I18NTK",
399
+ "separator": "============================================================",
400
+ "sourceDir": "📁 Directory di origine: {sourceDir}",
401
+ "sourceLanguage": "🌐 Lingua di partenza: {sourceLanguage}",
402
+ "dryRunMode": "🧪 Modalità prova: non verranno apportate modifiche",
403
+ "languages": "🌍 Lingue disponibili: {languages}",
404
+ "addingMissingKeys": "➕ Aggiunta delle chiavi mancanti ai file di traduzione...",
405
+ "processing": "🔄 Elaborazione {language}...",
406
+ "addedKeys": "✅ Aggiunto {count} chiavi mancanti",
407
+ "noChangesNeeded": "✅ Non sono necessarie modifiche per {language}",
408
+ "summaryTitle": "📊 RIEPILOGO COMPLETAMENTO",
409
+ "totalChanges": "📝 Modifiche totali: {totalChanges}",
410
+ "languagesProcessed": "🌍 Lingue trattate: {languagesProcessed}",
411
+ "missingKeysAdded": "➕ Chiavi mancanti aggiunte: {missingKeysAdded}",
412
+ "nextStepsTitle": "📋 NEXT STEPS",
413
+ "nextStep1": "1. Esegui l'analisi dell'utilizzo:",
414
+ "nextStep2": "nodo i18ntk-usage.js --output-report",
415
+ "nextStep3": "2. Convalida delle traduzioni:",
416
+ "nextStep4": "nodo i18ntk-validate.js",
417
+ "nextStep5": "3. Analizza i modelli:",
418
+ "nextStep6": "nodo i18ntk-analyze.js",
419
+ "allKeysAvailable": "🎉 Tutte le chiavi di traduzione sono ora disponibili!",
420
+ "runWithoutDryRun": "💡 Esegui senza --dry-run per applicare le modifiche",
421
+ "deletingOldReport": "🗑️ Eliminazione del vecchio report...",
422
+ "generatingFreshAnalysis": "📊 Generazione di nuove analisi sull'utilizzo...",
423
+ "couldNotGenerate": "❌ Impossibile generare l'analisi dell'utilizzo",
424
+ "reportNotFound": "📋 Rapporto sull'utilizzo non trovato. Utilizzo delle chiavi comuni...",
425
+ "foundMissingKeys": "📋 Trovato {count} chiavi mancanti dall'analisi dell'utilizzo",
426
+ "couldNotParse": "❌ Impossibile analizzare il rapporto sull'utilizzo. Utilizzo delle chiavi comuni...",
427
+ "errorDuringCompletion": "❌ Errore durante il completamento: {error}",
428
+ "fatalError": "❌ Errore fatale: {error}",
429
+ "configurationValidationFailed": "Convalida della configurazione non riuscita: campi obbligatori mancanti"
430
+ },
431
+ "sizing": {
432
+ "separator": "================================================================================",
433
+ "lineSeparator": "--------------------------------------------------------------------------------",
434
+ "analysisStats": "{stats}",
435
+ "sourceDirectoryLabel": "📁 Directory di origine: {sourceDir}",
436
+ "sourceLanguageLabel": "🌍 Lingua di partenza: {sourceLanguage}",
437
+ "strictModeLabel": "⚙️ Modalità rigorosa: {mode}",
438
+ "invalidSourceDirectoryError": "Percorso della directory di origine non valido: {sourceDir}",
439
+ "sourceDirectoryNotFoundError": "Directory di origine non trovata: {sourceDir}",
440
+ "invalidOutputDirectoryError": "Percorso della directory di output non valido: {outputDir}",
441
+ "invalidReportFileError": "Percorso del file di rapporto non valido",
442
+ "problematic_keys": "Tasti problematici: {problematicKeys}",
443
+ "problematicKeysLabel": "Tasti problematici: {problematicKeys}",
444
+ "long_translations": "Traduzioni lunghe: {longTranslations}",
445
+ "failedToSaveReportError": "Impossibile salvare il rapporto in modo sicuro",
446
+ "invalidCsvFileError": "Percorso file CSV non valido",
447
+ "failedToSaveCsvError": "Impossibile salvare il rapporto CSV in modo sicuro",
448
+ "fatalError": "❌ Analisi dimensionale fallita: {error}",
449
+ "starting_i18n_sizing_analysis": "Avvio dell'analisi del dimensionamento i18n...",
450
+ "source_directory": "Directory di origine: {sourceDir}",
451
+ "found_languages": "Lingue trovate: {languages}",
452
+ "analyzing_file_sizes": "Analisi delle dimensioni dei file in corso...",
453
+ "analyzing_translation_content": "Analisi del contenuto della traduzione...",
454
+ "generating_size_comparisons": "Generazione confronti di dimensioni in corso...",
455
+ "no_languages_found_for_comparison": "Nessuna lingua trovata per il confronto",
456
+ "sizing_analysis_results": "Risultati dell'analisi del dimensionamento I18n",
457
+ "file_sizes_title": "Dimensioni dei file",
458
+ "file_sizes_header": "Dimensioni lingua (KB) Righe Caratteri",
459
+ "file_size_row": "{lang} {sizeKB} {lines} {characters}",
460
+ "language_statistics_title": "Statistiche della lingua",
461
+ "language_stats_header": "Tasti lingua Caratteri Lunghezza media Lunghezza massima Vuoto Lungo",
462
+ "language_stats_row": "{lang} {totalKeys} {totalCharacters} {averageKeyLength} {maxKeyLength} {emptyKeys} {longKeys}",
463
+ "size_variations_title": "Variazioni di dimensioni",
464
+ "size_variations_header": "Lingua Char Diff % Diff Problema",
465
+ "size_variation_row": "{lang} {characterDifference} {percentageDifference}% {problematic}",
466
+ "problematic_yes": "SÌ",
467
+ "problematic_no": "NO",
468
+ "recommendations_title": "Raccomandazioni",
469
+ "recommendation_item": "{index}. {recommendation}",
470
+ "problematic_key_detail": "{index}. Chiave: '{key}' - Variazioni: {variations}",
471
+ "generating_detailed_report": "Generazione del rapporto dettagliato...",
472
+ "keysHaveSignificantSizeVariations": "le chiavi presentano variazioni di dimensioni significative",
473
+ "longTranslationsDetected": "${lang} ha traduzioni ${data.longKeys} più lunghe di 100 caratteri: valuta la possibilità di suddividerle",
474
+ "longer": "più a lungo",
475
+ "shorter": "più breve",
476
+ "review_translations": "Considera la possibilità di rivedere {lang} traduzioni - lo sono {percentageDifference}% {comparison} rispetto al basale",
477
+ "report_saved_to": "Rapporto salvato in: {reportPath}",
478
+ "considerReviewingTranslations": "Considera la possibilità di rivedere ${lang} traduzioni: sono ${data.percentageDifference}% più lunghe rispetto alla linea di base",
479
+ "csv_report_saved_to": "Rapporto CSV salvato in: {csvPath}",
480
+ "human_report_saved": "Rapporto leggibile salvato: {reportPath}",
481
+ "folder_summary_title": "Riepilogo della cartella",
482
+ "folder_summary_table_header": "Dimensione lingua (KB) Chiavi Lunghezza media Caratteri totali",
483
+ "folder_summary_row": "{lang} {sizeKB} {totalKeys} {avgLength} {totalChars}",
484
+ "language_comparison_title": "Confronto linguistico",
485
+ "language_comparison_row": "{lang}: {diff} caratteri ({percent}%) {status}",
486
+ "summary_stats": "📊 Riepilogo: {totalLanguages} lingue, {totalKeys} tasti: report salvati in {reportPath}",
487
+ "detailedKeysDescription": "Mostra un'analisi dettagliata a livello di chiave nella console",
488
+ "too_many_keys_warning": "⚠️ Troppi tasti da visualizzare nella console: controlla il file del rapporto dettagliato per un'analisi completa",
489
+ "no_translation_files_found": "Nessun file di traduzione trovato",
490
+ "analysis_completed": "Analisi completata nel {duration}SM",
491
+ "analysis_failed": "Analisi fallita: {errorMessage}",
492
+ "starting_analysis": "Inizio analisi...",
493
+ "found_files": "Trovato {count} file",
494
+ "failed_to_parse_language_error": "Impossibile analizzare {language} traduzioni: {errorMessage}",
495
+ "recommendations": {
496
+ "keys_have_significant_size_variations": "le chiavi presentano variazioni di dimensioni significative",
497
+ "consider_reviewing_translations": "Considera la possibilità di rivedere {lang} traduzioni - lo sono {percentageDifference}% {comparison} rispetto al basale",
498
+ "long_translations_detected": "{lang} ha {longKeys} traduzioni più lunghe di {threshold} personaggi: considera la possibilità di scomporli"
499
+ },
500
+ "detailed_key_analysis_title": "Analisi chiave dettagliata",
501
+ "key_analysis_detail": "{lang}: {length} caratteri ({status}) - {translation}",
502
+ "key_analysis_header": "Chiave: {key}",
503
+ "status_empty": "vuoto",
504
+ "status_long": "lungo",
505
+ "status_ok": "OK"
506
+ },
507
+ "usage": {
508
+ "help_message": "Utilizzo dell'analizzatore di utilizzo I18n: nodo i18ntk-usage.js [opzioni] Opzioni: --source-dir <dir> Directory di origine da scansionare (impostazione predefinita: ./src) --i18n-dir <dir> Directory I18n (default: ./src/locales) --output-report Genera report dettagliato --output-dir <dir> Directory di output per i report (impostazione predefinita: ./reports) --help Mostra questo aiuto Esempi: 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",
509
+ "source_directory_thissourcedir": "📁 Directory di origine: {sourceDir}",
510
+ "translationCompletenessTitle": "🌍 Completezza della traduzione:",
511
+ "i18n_directory_thisi18ndir": "🌐 Rubrica I18n: {i18nDir}",
512
+ "failed_to_parse_filename_error": "⚠️ Impossibile analizzare {fileName}: {errorMessage}",
513
+ "analyzing_source_files": "🔍 Analisi dei file sorgente...",
514
+ "found_files_in_source": "📂 Trovato {numFiles} file nella directory di origine",
515
+ "found_thisusedkeyssize_unique_": "🎯 Trovato {usedKeysSize} chiavi usate univoche",
516
+ "total_key_usages_totalkeysfoun": "📊 Totale utilizzi chiave: {totalKeysFound}",
517
+ "loading_available_translation_": "📋 Caricamento delle chiavi di traduzione disponibili...",
518
+ "found_thisavailablekeyssize_av": "✅Trovato {availableKeysSize} chiavi disponibili",
519
+ "foundTranslationFiles": "✅Trovato {count} file di traduzione",
520
+ "errorReadingI18nDirectory": "⚠️ Errore durante la lettura della directory i18n: {error}",
521
+ "pressEnterToReturnToMenu": "📝 Premi Invio per tornare al menu principale...",
522
+ "notTranslatedKeysTotal": "⚠️ Chiavi non tradotte: {total}",
523
+ "noSourceFilesFound": "⚠️ Nessun file sorgente trovato nella directory sorgente.",
524
+ "reviewNotTranslatedKeys": "💡 Chiavi della recensione non tradotte",
525
+ "analysisCompletedSuccessfully": "🎉 Analisi completata con successo!",
526
+ "detectedSourceDirectory": "Directory di origine rilevata: {sourceDir}",
527
+ "detectedI18nDirectory": "Directory i18n rilevata: {i18nDir}",
528
+ "fileInfo": "📄 {namespace}: {keys} chiavi",
529
+ "failedToAnalyzeUsage": "❌ Impossibile analizzare l'utilizzo: {error}",
530
+ "failedToAnalyzeFile": "❌ Impossibile analizzare il file: {error}",
531
+ "failedToExtractKeys": "❌ Impossibile estrarre le chiavi da {filePath}: {error}",
532
+ "analysisFailedError": "❌ Analisi fallita: {error}",
533
+ "analyzerInitialized": "Analizzatore inizializzato",
534
+ "analyzerInitFailed": "Inizializzazione dell'analizzatore non riuscita: {error}",
535
+ "argsParsed": "Argomenti analizzati",
536
+ "processedFiles": "Elaborato {processedFiles} Di {totalFiles} file.",
537
+ "argsParseFailed": "Analisi dell'argomento non riuscita: {error}",
538
+ "translationDiscoveryError": "Errore di rilevamento della traduzione: {error}",
539
+ "fileTraversalError": "Errore di attraversamento del file: {error}",
540
+ "sourceEqualsI18nWarn": "{reason}. L'analisi dell'utilizzo non analizzerà i file locali come codice sorgente.",
541
+ "i18nEqualsSourceWarn": "⚠️ La directory I18n e la directory dei sorgenti sono le stesse. Ciò potrebbe causare problemi con l'analisi.",
542
+ "usageAnalysisFailed": "⚠️ Analisi dell'utilizzo non riuscita: {error}",
543
+ "translationFileParseError": "⚠️ Errore di analisi del file di traduzione: {error}",
544
+ "translationKeysLoadError": "⚠️ Errore di caricamento delle chiavi di traduzione: {error}",
545
+ "languageCompletenessStats": "🌐 {language}: {translated}/{total} ({completeness}% tradotto)",
546
+ "missingKeysCount": "⚠️ Chiavi mancanti: {count}",
547
+ "analyzingTranslationCompleteness": "Analisi della completezza della traduzione...",
548
+ "unusedKeysCount": "Chiavi non utilizzate: {count}",
549
+ "usedKeysCount": "Chiavi usate: {count}",
550
+ "availableKeysCount": "Chiavi disponibili: {count}",
551
+ "analysisResults": "Risultati dell'analisi:",
552
+ "i18nDirectoryNotFound": "⚠️ Directory I18n non trovata. Si prega di controllare il percorso.",
553
+ "sourceDirectoryNotFound": "⚠️ Directory di origine non trovata: {dir}",
554
+ "checkUsage": {
555
+ "title": "🔍 I18NTK USAGE ANALYSIS",
556
+ "analyzing_source_files": "🔍 Analisi dei file sorgente...",
557
+ "source_directory_thissourcedir": "📁 Directory di origine: {sourceDir}",
558
+ "i18n_directory_thisi18ndir": "📁 Rubrica i18n: {i18nDir}",
559
+ "found_files_in_source": "✅Trovato {numFiles} file nella directory di origine",
560
+ "no_source_files_found": "⚠️ Nessun file sorgente trovato nella directory specificata",
561
+ "processedFiles": "📊 Elaborato {processedFiles} Di {totalFiles} file",
562
+ "failedToProcessFile": "❌ Elaborazione non riuscita",
563
+ "found_thisusedkeyssize_unique_": "🔍Trovato {usedKeysSize} chiavi usate univoche",
564
+ "total_key_usages_totalkeysfoun": "📊 Totale utilizzi chiave: {totalKeysFound}",
565
+ "loading_available_translation_": "📂 Caricamento delle chiavi di traduzione disponibili...",
566
+ "found_thisavailablekeyssize_av": "✅Trovato {availableKeysSize} chiavi disponibili",
567
+ "message": "Analisi dell'utilizzo della chiave di traduzione nel progetto...",
568
+ "usage_analysis_results": "📊 USAGE ANALYSIS RESULTS",
569
+ "source_files_scanned_thisfileu": "📁 File di origine scansionati: {fileUsageSize}",
570
+ "available_translation_keys_thi": "✅ Chiavi di traduzione disponibili: {availableKeysSize}",
571
+ "used_translation_keys_thisused": "🔍 Chiavi di traduzione utilizzate: {usedKeysSize}",
572
+ "dynamic_keys_detected_dynamick": "⚡ Tasti dinamici rilevati: {dynamicKeysLength}",
573
+ "unused_keys_unusedkeyslength": "🗑️ Chiavi non utilizzate: {unusedKeysLength}",
574
+ "missing_keys_missingkeyslength": "❌ Chiavi mancanti: {missingKeysLength}",
575
+ "translation_completeness_title": "📈 COMPLETEZZA DELLA TRADUZIONE",
576
+ "language_completeness_stats": "{language}: {translated}/{total} chiavi ({percentage}%)",
577
+ "n_sample_unused_keys": "🗑️ ESEMPIO DI CHIAVI NON UTILIZZATE (le prime 5):",
578
+ "key": "🔑 {key}",
579
+ "and_unusedkeyslength_5_more": "... E {count} più chiavi inutilizzate",
580
+ "n_sample_missing_keys": "❌ ESEMPIO DI CHIAVI MANCANTI (prime 5):",
581
+ "and_missingkeyslength_5_more": "... E {count} altre chiavi mancanti",
582
+ "n_generating_detailed_report": "📊 Generazione di un rapporto dettagliato...",
583
+ "report_saved_reportpath": "📄 Rapporto salvato: {reportPath}",
584
+ "n_recommendations": "💡 RACCOMANDAZIONI:",
585
+ "consider_removing_unused_trans": "🗑️ Valuta la possibilità di rimuovere le traduzioni inutilizzate per ridurre le dimensioni del pacchetto",
586
+ "add_missing_translation_keys_t": "➕ Aggiungi le chiavi di traduzione mancanti per mantenere la coerenza",
587
+ "review_dynamic_keys_manually_t": "🔍 Rivedi manualmente le chiavi dinamiche (potrebbero essere valide)",
588
+ "all_translation_keys_are_prope": "✅ Tutte le chiavi di traduzione sono utilizzate correttamente!",
589
+ "n_next_steps": "🎯 NEXT STEPS:",
590
+ "2_check_the_detailed_report_fo": "2. Controlla il rapporto dettagliato per problemi specifici",
591
+ "help_message": "Utilizzo dell'analizzatore di utilizzo I18n: nodo i18ntk-usage.js [opzioni] Opzioni: --source-dir <dir> Directory di origine da scansionare (impostazione predefinita: ./src) --i18n-dir <dir> Directory I18n (default: ./src/locales) --output-report Genera report dettagliato --output-dir <dir> Directory di output per i report (impostazione predefinita: ./reports) --help Mostra questo aiuto Esempi: 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",
592
+ "1_review_the_analysis_results": "1. Esaminare i risultati dell'analisi nella console o nel report generato.",
593
+ "2_run_with_outputreport_for_de": "2. Esegui con --output-report per un rapporto dettagliato.",
594
+ "3_remove_unused_keys_or_add_mi": "3. Rimuovi le chiavi non utilizzate o aggiungi le chiavi mancanti al codice sorgente.",
595
+ "4_rerun_analysis_to_verify_imp": "4. Eseguire nuovamente l'analisi per verificare i miglioramenti.",
596
+ "noSourceFilesFound": "Nessun file sorgente trovato da analizzare.",
597
+ "i18nDirectoryNotFound": "Directory I18n non trovata: {i18nDir}",
598
+ "noTranslationLanguagesFound": "Nessuna lingua di traduzione trovata.",
599
+ "failedToAnalyzeFile": "Impossibile analizzare il file {filePath}: {error}",
600
+ "failedToAnalyzeLanguage": "Impossibile analizzare la lingua {language}: {error}",
601
+ "translationCompletenessAnalysisFailed": "L'analisi della completezza della traduzione non è riuscita: {error}",
602
+ "n": "\\N"
603
+ },
604
+ "complete": {
605
+ "configLoadedSuccessfully": "Configurazione caricata correttamente",
606
+ "configLoadingFailed": "Caricamento della configurazione non riuscito",
607
+ "title": "🌍 COMPLETAMENTO DELLA TRADUZIONE I18NTK",
608
+ "separator": "============================================================",
609
+ "sourceDir": "📁 Directory di origine: {sourceDir}",
610
+ "sourceLanguage": "🌐 Lingua di partenza: {sourceLanguage}",
611
+ "dryRunMode": "🧪 Modalità prova: non verranno apportate modifiche",
612
+ "languages": "🌍 Lingue disponibili: {languages}",
613
+ "addingMissingKeys": "➕ Aggiunta delle chiavi mancanti ai file di traduzione...",
614
+ "processing": "🔄 Elaborazione {language}...",
615
+ "addedKeys": "✅ Aggiunto {count} chiavi mancanti",
616
+ "changeDetails": "📝 {file}: {key}",
617
+ "andMore": "...E {count} Di più",
618
+ "noChangesNeeded": "✅ Non sono necessarie modifiche per {language}",
619
+ "summaryTitle": "📊 RIEPILOGO COMPLETAMENTO",
620
+ "totalChanges": "📝 Modifiche totali: {totalChanges}",
621
+ "languagesProcessed": "🌍 Lingue trattate: {languagesProcessed}",
622
+ "missingKeysAdded": "➕ Chiavi mancanti aggiunte: {missingKeysAdded}",
623
+ "nextStepsTitle": "📋 NEXT STEPS",
624
+ "nextStep1": "1. Esegui l'analisi dell'utilizzo:",
625
+ "nextStep2": "nodo i18ntk-usage.js --output-report",
626
+ "nextStep3": "2. Convalida delle traduzioni:",
627
+ "nextStep4": "nodo i18ntk-validate.js",
628
+ "nextStep5": "3. Analizza i modelli:",
629
+ "nextStep6": "nodo i18ntk-analyze.js",
630
+ "allKeysAvailable": "🎉 Tutte le chiavi di traduzione sono ora disponibili!",
631
+ "runWithoutDryRun": "💡 Esegui senza --dry-run per applicare le modifiche",
632
+ "deletingOldReport": "🗑️ Eliminazione del vecchio report...",
633
+ "generatingFreshAnalysis": "📊 Generazione di nuove analisi sull'utilizzo...",
634
+ "couldNotGenerate": "❌ Impossibile generare l'analisi dell'utilizzo",
635
+ "reportNotFound": "📋 Rapporto sull'utilizzo non trovato. Utilizzo delle chiavi comuni...",
636
+ "foundMissingKeys": "📋 Trovato {count} chiavi mancanti dall'analisi dell'utilizzo",
637
+ "couldNotParse": "❌ Impossibile analizzare il rapporto sull'utilizzo. Utilizzo delle chiavi comuni..."
638
+ },
639
+ "noTranslationLanguagesFound": "Nessuna lingua di traduzione trovata",
640
+ "failedToAnalyzeLanguage": "Impossibile analizzare la lingua",
641
+ "translationCompletenessAnalysisFailed": "Analisi della completezza della traduzione non riuscita",
642
+ "failedToProcessFile": "Impossibile elaborare il file:",
643
+ "failedToSaveReport": "Impossibile salvare il rapporto sull'utilizzo: {error}",
644
+ "i18nDirectoryDoesNotExist": "La directory I18n non esiste: {dir}",
645
+ "reportSavedTo": "Rapporto sull'utilizzo salvato in: {reportPath}",
646
+ "sourceDirectoryDoesNotExist": "La directory di origine non esiste: {dir}",
647
+ "noSourceDirectoryConfigured": "(nessuno configurato)"
648
+ },
649
+ "validate": {
650
+ "help_message": "Utilizzo del validatore di traduzione I18n: nodo i18ntk-validate.js [opzioni] Opzioni: --source-dir <dir> Directory di origine da scansionare (impostazione predefinita: ./src) --i18n-dir <dir> Directory I18n (default: ./src/locales) --output-report Genera report dettagliato --output-dir <dir> Directory di output per i report (impostazione predefinita: ./reports) --help Mostra questo aiuto Esempi: 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",
651
+ "title": "🔍 Validatore di traduzione I18n",
652
+ "message": "Avvio del processo di convalida...",
653
+ "sourceDirectory": "📁 Directory di origine: {dir}",
654
+ "sourceLanguage": "🌍 Lingua di partenza: {sourceLanguage}",
655
+ "strictMode": "⚙️ Modalità rigorosa: {mode}",
656
+ "noTargetLanguages": "Nessuna lingua di destinazione configurata; saltare la convalida del target. Aggiungi lingue tramite \"i18ntk init --linguals=de,fr\".",
657
+ "validatingLanguages": "🌍 Lingue di convalida: {langs}",
658
+ "validatingLanguage": "🔍 Lingua di convalida: {lang}",
659
+ "filesCount": "📄 File: {count}",
660
+ "keysCount": "🔑 Chiavi: {count}",
661
+ "missingFilesCount": "📁 File mancanti: {count}",
662
+ "syntaxErrorsCount": "❌ Errori di sintassi: {count}",
663
+ "translationPercentage": "🎯 Traduzione: {percentage}% ({translated}/{total} chiavi)",
664
+ "validationSummary": "📊RIEPILOGO CONVALIDA",
665
+ "validation_failed": "❌ Convalida non riuscita: {error}",
666
+ "totalErrors": "❌ Errori totali: {count}",
667
+ "totalWarnings": "⚠️ Avvisi totali: {count}",
668
+ "errorsSection": "❌ ERRORS",
669
+ "warningsSection": "⚠️ WARNINGS",
670
+ "recommendationsSection": "💡 RACCOMANDAZIONI",
671
+ "fixErrorsFirst": "1. Correggi prima tutti gli errori",
672
+ "resolveMissingFilesAndSyntaxErrors": "1. Risolvi file mancanti ed errori di sintassi",
673
+ "fixStructuralInconsistencies": "2. Correggere le incoerenze strutturali",
674
+ "completeMissingTranslations": "3. Completa le traduzioni mancanti",
675
+ "rerunValidation": "4. Eseguire nuovamente la convalida per verificare le correzioni",
676
+ "addressWarnings": "Risolvere gli avvisi per migliorare la qualità",
677
+ "reviewWarnings": "Esaminare gli avvisi e correggerli ove appropriato",
678
+ "considerRunningWithStrict": "2. Considera l'esecuzione con il flag --strict per una convalida più rigorosa",
679
+ "allValidationsPassed": "🎉 Tutte le convalide sono state superate!",
680
+ "considerRunningUsageAnalysis": "Prendi in considerazione l'esecuzione di un'analisi dell'utilizzo: nodo i18ntk-usage.js",
681
+ "deletedOldReport": "🗑️ Cancellato il vecchio report di validazione",
682
+ "sourceDir": "📁 Directory di origine: {sourceDir}",
683
+ "i18nDir": "🌐 Rubrica I18n: {i18nDir}",
684
+ "loadingTranslationFiles": "📋 Caricamento dei file di traduzione...",
685
+ "foundTranslationFilesCount": "✅Trovato {count} file di traduzione",
686
+ "analyzingTranslations": "🔍 Analizzando le traduzioni...",
687
+ "validationCompletedSuccessfully": "🎉 Convalida completata con successo!",
688
+ "validationErrorsFound": "⚠️ Errori di convalida rilevati: {count}",
689
+ "validationWarningsFound": "⚠️ Avvisi di convalida trovati: {count}",
690
+ "validationPassed": "✅ Validazione superata senza errori",
691
+ "validationFailed": "Convalida non riuscita: {error}",
692
+ "startingValidationProcess": "🔍 Avvio del processo di convalida...",
693
+ "validationProcessCompletedSuccessfully": "✅ Processo di convalida completato con successo",
694
+ "stackTrace": "Traccia dello stack: {stack}",
695
+ "authenticationFailed": "❌ Autenticazione fallita. Accesso negato.",
696
+ "fatalValidationError": "❌ Errore irreversibile di convalida: {error}",
697
+ "configAccess": "Accesso alla configurazione per la convalida",
698
+ "configValidated": "Configurazione convalidata con successo",
699
+ "configError": "Errore di configurazione: {error}",
700
+ "validatorInit": "Inizializzazione del validatore I18n",
701
+ "validatorInitialized": "Il validatore I18n è stato inizializzato correttamente",
702
+ "validatorInitError": "Errore di inizializzazione del validatore: {error}",
703
+ "argsParsing": "Analisi degli argomenti della riga di comando",
704
+ "argsParsed": "Argomenti della riga di comando analizzati correttamente",
705
+ "argsParseError": "Errore durante l'analisi dell'argomento: {error}",
706
+ "languagesScan": "Scansione delle lingue disponibili",
707
+ "languagesFound": "Trovato {count} lingue",
708
+ "languagesScanError": "Errore di scansione della lingua: {error}",
709
+ "filesScan": "Trovato {count} file in {language}",
710
+ "filesScanError": "Errore di scansione del file: {error}",
711
+ "jsonValidated": "Sintassi JSON convalidata: {filePath}",
712
+ "jsonValidationError": "Errore di convalida JSON: {error}",
713
+ "languageValidation": "Lingua di convalida: {language}",
714
+ "languageValidationError": "Errore di convalida della lingua: {error}",
715
+ "fileDeleted": "File eliminato",
716
+ "runStarted": "Avvio dell'esecuzione di convalida",
717
+ "runCompleted": "L'esecuzione di convalida è stata completata con successo",
718
+ "runError": "Esecuzione di convalida non riuscita: {error}",
719
+ "scriptExecution": "Esecuzione dello script",
720
+ "validationCompleted": "Convalida completata",
721
+ "validationError": "Errore di convalida: {error}",
722
+ "separator": "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━",
723
+ "languageHeader": "🌐 Lingua: {language}",
724
+ "validationResults": "📊 Risultati della validazione",
725
+ "noErrors": "✅ Nessun errore trovato",
726
+ "noWarnings": "✅ Nessun avviso trovato",
727
+ "summaryHeader": "📋 OVERALL SUMMARY",
728
+ "progressIndicator": "⏳ Elaborazione...",
729
+ "completedIndicator": "✅Completato",
730
+ "errorIndicator": "❌ Errore",
731
+ "warningIndicator": "⚠️ Attenzione",
732
+ "infoIndicator": "ℹ️Informazioni",
733
+ "sourceDirNotConfigured": "Directory di origine non configurata",
734
+ "sourceLanguageNotConfigured": "Lingua di origine non configurata",
735
+ "translationFunctionNotInitialized": "La funzione di traduzione non è inizializzata correttamente",
736
+ "sourceLanguageDirectoryNotFound": "Directory della lingua di origine non trovata",
737
+ "specifiedLanguageNotFound": "Lingua specificata non trovata",
738
+ "noJsonFilesFound": "Nessun file JSON trovato nella directory di origine: {sourceDir}",
739
+ "i18nDirectoryNotFound": "Directory I18n non trovata: {i18nDir}",
740
+ "invalidDirectoryPaths": "Rilevati percorsi di directory non validi",
741
+ "invalidSampleFilePath": "Percorso del file di esempio non valido",
742
+ "failedToCreateSampleTranslationFile": "Impossibile creare il file di traduzione di esempio",
743
+ "invalidFilePathDetected": "Rilevato percorso file non valido",
744
+ "failedToWriteFile": "Impossibile scrivere il file: {filePath}",
745
+ "invalidSourceDirectory": "Directory di origine non valida: {sourceDir}",
746
+ "invalidSourceLanguageDirectory": "Directory della lingua di origine non valida: {sourceDir}"
747
+ },
748
+ "adminCli": {
749
+ "setupPinProtectionTitle": "🔐 Impostazione della protezione PIN amministratore",
750
+ "setupPinProtectionDescription": "Ciò richiederà un PIN di 4-6 cifre per le operazioni amministrative.",
751
+ "enablePinProtectionPrompt": "Vuoi abilitare la protezione tramite PIN amministratore?",
752
+ "setupCancelled": "Configurazione della protezione tramite PIN amministratore annullata.",
753
+ "enterPinPrompt": "Inserisci un PIN di 4-6 cifre:",
754
+ "pinFormatError": "❌ Il PIN deve essere composto da 4-6 cifre. Per favore riprova.",
755
+ "confirmPinPrompt": "Conferma PIN:",
756
+ "pinMismatchError": "❌ I PIN non corrispondono. Per favore riprova.",
757
+ "pinProtectionEnabledSuccess": "✅ Protezione PIN amministratore abilitata con successo!",
758
+ "pinRecoveryWarning": "⚠️ Ricorda il tuo PIN: non potrà essere recuperato in caso di smarrimento.",
759
+ "setupPinProtectionFailed": "❌ Impossibile impostare la protezione tramite PIN amministratore.",
760
+ "errorSettingUpPin": "❌ Errore durante l'impostazione del PIN amministratore: {message}",
761
+ "authRequiredForOperation": "🔐 Autenticazione amministratore richiesta per: {operation}",
762
+ "invalidPinFormat": "❌ Formato PIN non valido. Il PIN deve essere composto da 4-6 cifre.",
763
+ "authenticationSuccess": "✅ Autenticazione riuscita!",
764
+ "invalidPinAttemptsRemaining": "❌ PIN non valido. {remaining} tentativi rimasti.",
765
+ "authenticationFailedAccessDenied": "❌ Autenticazione fallita. Accesso negato.",
766
+ "authenticationError": "❌ Errore di autenticazione: {message}",
767
+ "pinProtectionNotEnabled": "La protezione tramite PIN amministratore non è attualmente abilitata.",
768
+ "disablingPinProtectionTitle": "🔓 Disattivazione della protezione PIN amministratore",
769
+ "confirmDisablePinProtection": "Sei sicuro di voler disattivare la protezione tramite PIN amministratore?",
770
+ "operationCancelled": "Operazione annullata.",
771
+ "pinProtectionDisabledSuccess": "✅ Protezione PIN amministratore disabilitata.",
772
+ "disablePinProtectionFailed": "❌ Impossibile disattivare la protezione tramite PIN amministratore.",
773
+ "errorDisablingPinProtection": "❌ Errore durante la disattivazione della protezione dell'amministratore: {message}",
774
+ "adminProtectionStatusTitle": "🔐 Stato di protezione dell'amministratore",
775
+ "statusEnabled": "Stato: ✅ ABILITATO",
776
+ "protectionDetails": "Protezione: PIN di 4-6 cifre richiesto per le operazioni di amministrazione",
777
+ "lockoutDetails": "Blocco: 3 tentativi falliti = blocco di 15 minuti",
778
+ "statusDisabled": "Stato: ❌ DISABILITATO",
779
+ "noAuthRequired": "Protezione: nessuna autenticazione richiesta",
780
+ "unprotectedRisk": "Rischio: le operazioni amministrative non sono protette",
781
+ "errorCheckingAdminStatus": "❌ Errore durante il controllo dello stato dell'amministratore: {message}",
782
+ "authRequired": "🔐 È richiesta l'autenticazione dell'amministratore.",
783
+ "invalidPin": "❌ PIN non valido.",
784
+ "authSuccess": "✅ Autenticazione riuscita!",
785
+ "adminPinSetupCli": "admin_pin_setup_cli",
786
+ "adminAuthFailedCli": "admin_auth_failed_cli",
787
+ "adminAuthDisabledCli": "admin_auth_disabled_cli",
788
+ "protectedAccess": "Accesso protetto: autenticazione amministrativa richiesta per operazioni sensibili.",
789
+ "enterPin": "Inserisci il PIN amministratore:",
790
+ "accessGranted": "Accesso concesso."
791
+ },
792
+ "adminPin": {
793
+ "setup_title": "🔐 Impostazione PIN amministratore",
794
+ "setup_separator": "============================================================",
795
+ "setup_description": "Crea un PIN di 4-6 cifre per l'accesso amministrativo alle impostazioni sensibili.",
796
+ "required_for_title": "Questo PIN sarà richiesto per:",
797
+ "required_for_1": "• Modifica delle impostazioni di sicurezza",
798
+ "required_for_2": "• Modifica delle configurazioni avanzate",
799
+ "required_for_3": "• Accesso agli strumenti di debug",
800
+ "required_for_4": "• Ripristino delle impostazioni",
801
+ "setup_note": "💡 Nota: durante la digitazione vedrai degli asterischi (*): si tratta solo di caratteri di mascheramento.",
802
+ "setup_digits_only": "Come cifre PIN sono accettati solo i numeri da 0 a 9.",
803
+ "invalid_pin_length": "❌ PIN non valido. Deve contenere 4-6 cifre (solo numeri da 0 a 9).",
804
+ "invalid_pin_example": "Esempio: 1234 o 567890",
805
+ "pins_do_not_match": "❌ I PIN non corrispondono.",
806
+ "setup_success": "✅ Il PIN amministratore è stato impostato correttamente!",
807
+ "setup_warning": "⚠️ Mantieni questo PIN al sicuro. Non è possibile recuperarlo in caso di smarrimento.",
808
+ "setup_error": "❌ Errore durante l'impostazione del PIN:",
809
+ "session_expired": "⏰ Sessione amministrativa scaduta per inattività.",
810
+ "no_pin_set_setting_up": "⚠️ Nessun PIN amministratore impostato. Configurazione del PIN...",
811
+ "no_pin_configured_access_denied": "⚠️ Nessun PIN amministratore configurato. Accesso negato.",
812
+ "use_admin_settings_to_set_pin": "💡 Utilizza prima le impostazioni dell'amministratore per impostare un PIN.",
813
+ "locked_out": "🔒 L'accesso amministratore è bloccato a causa di troppi tentativi falliti.",
814
+ "wait_before_retry": "Attendi 5 minuti prima di riprovare.",
815
+ "access_granted": "✅ Accesso amministratore concesso.",
816
+ "incorrect_pin": "❌ PIN errato. {attempts} tentativi rimasti.",
817
+ "verify_pin_error": "❌ Errore durante la verifica del PIN:",
818
+ "already_configured": "✅ Il PIN amministratore è già configurato.",
819
+ "optional_setup_title": "🔐 Impostazione PIN amministratore (facoltativo)",
820
+ "optional_setup_description": "La protezione tramite PIN amministratore aggiunge sicurezza per operazioni sensibili come:",
821
+ "setup_prompt": "Desideri impostare un PIN amministratore? (sì/no):",
822
+ "skipping_setup": "⏭️ Saltare la configurazione del PIN amministratore. Puoi configurarlo in seguito nelle impostazioni.",
823
+ "setup_prompt_error": "❌ Errore durante la richiesta di configurazione del PIN:",
824
+ "protectedAccess": "Accesso protetto: autenticazione amministrativa richiesta per operazioni sensibili.",
825
+ "enterPin": "Inserisci il PIN amministratore:",
826
+ "accessGranted": "Accesso concesso.",
827
+ "invalidPin": "❌ PIN non valido. Per favore riprova.",
828
+ "weak_pin_warning": "⚠️ ATTENZIONE: questo PIN sembra essere debole o comune.",
829
+ "weak_pin_suggestion": "💡 Prendi in considerazione l'utilizzo di un PIN più forte con varie cifre.",
830
+ "use_anyway_prompt": "Digita \"sì\" per utilizzarlo comunque oppure premi Invio per scegliere un PIN diverso:",
831
+ "enter_new_pin": "Inserisci il nuovo PIN amministratore (4-6 cifre):",
832
+ "confirm_pin": "Conferma il PIN amministratore:",
833
+ "not_set": "Non impostato",
834
+ "pin_display_mask": "####"
835
+ },
836
+ "debug": {
837
+ "title": "🔧 Strumenti di debug",
838
+ "separator": "============================================================",
839
+ "mainDebuggerSystemDiagnostics": "1. Diagnostica del sistema",
840
+ "_consoleTranslationsCheck": "// 2. Controllo delle traduzioni della console",
841
+ "_exportMissingKeys": "// 3. Esporta le chiavi di traduzione mancanti",
842
+ "_replaceHardcodedConsole": "// 4. Sostituisci le stringhe della console codificate",
843
+ "_consoleKeyChecker": "// 5. Controllo tasti della console",
844
+ "debugLogs": "2. Registri di debug",
845
+ "backToMainMenu": "0. Torna al menu principale",
846
+ "selectOption": "Seleziona uno strumento di debug:",
847
+ "runningDebugTool": "Corsa {displayName}...",
848
+ "debugToolNotFound": "❌ Strumento di debug non trovato: {toolName}",
849
+ "errorRunningDebugTool": "Errore durante l'esecuzione dello strumento di debug '{displayName}': {error}",
850
+ "recentDebugLogs": "📄 Registri di debug recenti",
851
+ "noDebugLogsFound": "❌ Nessun registro di debug trovato.",
852
+ "debugLogsDirectoryNotFound": "❌ Directory dei registri di debug non trovata.",
853
+ "selectLogPrompt": "Seleziona il file di registro da visualizzare (1-{count}):",
854
+ "invalidChoiceSelectRange": "Scelta non valida. Seleziona dalla gamma disponibile.",
855
+ "contentOf": "📄 Contenuto di {filename}:",
856
+ "pressEnterToContinue": "Premi Invio per continuare..."
857
+ },
858
+ "detect_language_mismatches": {
859
+ "tool_title": "🔍 Strumento di rilevamento della mancata corrispondenza linguistica",
860
+ "separator": "=====================================",
861
+ "analyzing_file": "📄 Analizzando {language}.json...",
862
+ "error_analyzing_file": "❌ Analisi degli errori {filename}: {errorMessage}",
863
+ "results_title": "📊 RISULTATI DEL RILEVAMENTO DELLA MANCATA CORRISPONDENZA DELLA LINGUA",
864
+ "results_separator": "========================================",
865
+ "summary_title": "📋 SUMMARY:",
866
+ "total_files_analyzed": "File totali analizzati: {totalFiles}",
867
+ "files_with_mismatches": "File con mancate corrispondenze: {filesWithMismatches}",
868
+ "total_mismatches_found": "Totali mancate corrispondenze trovate: {totalMismatches}",
869
+ "no_mismatches_found": "✅ Nessuna mancata corrispondenza linguistica trovata! Tutte le traduzioni sembrano essere nelle lingue corrette.",
870
+ "detailed_results_title": "🔍 DETAILED RESULTS:",
871
+ "file_mismatch_header": "📄 {filename} ({language})",
872
+ "mismatches_count": "Trovato {count} mancata corrispondenza:",
873
+ "mismatch_details": "{index}. Chiave: {key}",
874
+ "mismatch_value": "Valore: \"{value}\"",
875
+ "mismatch_issue": "Problema: {description}",
876
+ "recommendations_title": "💡 RACCOMANDAZIONI:",
877
+ "recommendation_1": "1. Rivedi e traduci tutte le voci contrassegnate con [TRANSLATE]",
878
+ "recommendation_2": "2. Sostituisci i prefissi linguistici (ad esempio, [DE], [FR]) con traduzioni adeguate",
879
+ "recommendation_3": "3. Tradurre il testo inglese nella lingua di destinazione appropriata",
880
+ "recommendation_4": "4. Utilizzare equivalenti nella lingua madre per tutto il testo rivolto all'utente",
881
+ "recommendation_5": "5. Eseguire nuovamente questo strumento dopo aver apportato le correzioni per verificare le correzioni",
882
+ "detailed_report_saved": "📄 Rapporto dettagliato salvato in: {reportPath}",
883
+ "error_saving_report": "❌ Errore durante il salvataggio del rapporto: {errorMessage}",
884
+ "auto_fix_mode": "🔧 Modalità di correzione automatica {dryRun}",
885
+ "auto_fix_separator": "=====================================",
886
+ "fixed_file": "✅ Risolto {filename}",
887
+ "auto_fix_summary_title": "📊 Riepilogo correzione automatica:",
888
+ "total_fixes_applied": "Correzioni totali applicate: {count}",
889
+ "preview_fixes_title": "🔍 Anteprima delle correzioni:",
890
+ "fix_details": "{file}: {key} Vecchio: \"{old}\" Nuovo: \"{new}\"",
891
+ "more_fixes": "... E {count} più correzioni",
892
+ "run_with_apply_fixes": "💡 Esegui con --apply per applicare queste correzioni",
893
+ "error_general": "❌ Errore:",
894
+ "mainDebuggerSystemDiagnostics": "Debugger principale/Diagnostica di sistema",
895
+ "exportMissingKeys": "Esporta chiavi mancanti",
896
+ "replaceHardcodedConsole": "Sostituisci la console hardcoded",
897
+ "consoleKeyChecker": "Controllo chiave della console",
898
+ "debugLogs": "Registri di debug",
899
+ "backToMainMenu": "Torna al menu principale",
900
+ "invalidChoiceSelectRange": "❌ Scelta non valida. Seleziona un numero all'interno dell'intervallo visualizzato.",
901
+ "runningDebugTool": "Esecuzione dello strumento di debug: {displayName}",
902
+ "debugToolNotFound": "Strumento di debug '{toolName}'non trovato.",
903
+ "recentDebugLogs": "Registri di debug recenti",
904
+ "noDebugLogsFound": "Nessun registro di debug trovato.",
905
+ "logEntry": "Voce di registro: {timestamp} - {message}",
906
+ "debugLogsDirectoryNotFound": "Directory dei registri di debug non trovata."
907
+ },
908
+ "help": {
909
+ "title": "📊 AIUTO PER LA GESTIONE DI I18NTK",
910
+ "usage": "Utilizzo: nodo main/manage/index.js [opzioni]",
911
+ "interactiveMode": "💡 Utilizza: nodo main/manage/index.js --command=<command> per l'esecuzione diretta",
912
+ "showHelp": "📖 Usa: node main/manage/index.js --help per i comandi disponibili",
913
+ "availableCommands": "📖 Comandi disponibili:",
914
+ "initProject": "🚀 Inizializza nuove lingue",
915
+ "analyzeTranslations": "🔍 Analizza le traduzioni",
916
+ "validateTranslations": "✅ Convalida le traduzioni",
917
+ "checkUsage": "📊 Controlla l'utilizzo della chiave",
918
+ "initCommand": "init - Inizializza nuove lingue",
919
+ "analyzeCommand": "analizzare - Analizzare le traduzioni",
920
+ "validateCommand": "validate - Convalida le traduzioni",
921
+ "usageCommand": "utilizzo: controlla l'utilizzo della chiave",
922
+ "sizingCommand": "dimensionamento: analizza il dimensionamento",
923
+ "completeCommand": "complete - Traduzioni complete (copertura al 100%)",
924
+ "summaryCommand": "riepilogo: mostra lo stato del progetto",
925
+ "debugCommand": "debug - Debug dei problemi di traduzione",
926
+ "scannerCommand": "scanner: cerca le chiavi",
927
+ "translateCommand": "Translate: traduce automaticamente i file locali",
928
+ "menu": {
929
+ "pressEnterToContinue": "Premi Invio per continuare...",
930
+ "title": "🌐MENU' GESTIONE I18NTK",
931
+ "description": "Menù interattivo per la gestione dell'internazionalizzazione",
932
+ "exit": "🚪 Esci"
933
+ },
934
+ "commands": {
935
+ "init": "init - Inizializza nuove lingue",
936
+ "analyze": "analizzare - Analizzare le traduzioni",
937
+ "validate": "validate - Convalida le traduzioni",
938
+ "usage": "utilizzo: controlla l'utilizzo della chiave",
939
+ "sizing": "dimensionamento: analizza il dimensionamento",
940
+ "complete": "complete - Traduzioni complete (copertura al 100%)",
941
+ "summary": "riepilogo: mostra lo stato del progetto",
942
+ "debug": "debug - Debug dei problemi di traduzione"
943
+ },
944
+ "options": {
945
+ "sourceDir": "--dir-origine <dir> Directory di origine da analizzare",
946
+ "output": "--produzione <file> File di output per il report",
947
+ "verbose": "--verbose, -v Mostra informazioni dettagliate",
948
+ "keepReports": "--keep-reports Conserva i report esistenti",
949
+ "deleteReports": "--delete-reports Elimina i report esistenti",
950
+ "help": "--help, -h Mostra questo aiuto"
951
+ },
952
+ "examples": {
953
+ "title": "Esempi:",
954
+ "example1": "nodo i18ntk-manage.js",
955
+ "example2": "nodo i18ntk-manage.js --source-dir ./locales",
956
+ "example3": "nodo i18ntk-manage.js --output summary-report.txt",
957
+ "example4": "nodo i18ntk-manage.js --verbose",
958
+ "example5": "nodo i18ntk-manage.js --source-dir ./locales --output report.json"
959
+ },
960
+ "features": {
961
+ "initProject": "🚀 Inizializza nuove lingue",
962
+ "analyzeTranslations": "🔍 Analizza le traduzioni",
963
+ "validateTranslations": "✅ Convalida le traduzioni",
964
+ "checkUsage": "📊 Controlla l'utilizzo della chiave",
965
+ "completeTranslations": "🎯 Traduzioni complete (copertura al 100%)",
966
+ "showSizing": "📏 Analizza le taglie",
967
+ "runWorkflow": "🔄 Esegui il flusso di lavoro completo",
968
+ "showStatus": "📋 Mostra lo stato del progetto",
969
+ "deleteReports": "🗑️ Elimina tutti i report",
970
+ "changeLanguage": "🌍 Cambia la lingua dell'interfaccia utente",
971
+ "settings": "⚙️ Impostazioni",
972
+ "showHelp": "❓Aiuto",
973
+ "debugTools": "🔧 Strumenti di debug"
974
+ },
975
+ "messages": {
976
+ "selectOption": "Seleziona un'opzione:",
977
+ "invalidOption": "Opzione non valida. Per favore riprova.",
978
+ "operationCompleted": "✅ Operazione completata con successo!",
979
+ "pressEnter": "Premi Invio per continuare...",
980
+ "goodbye": "👋 Arrivederci!",
981
+ "unknownCommand": "Comando sconosciuto: {command}",
982
+ "nonInteractive": "⚠️ Rilevata modalità non interattiva. Menu visualizzato solo per riferimento."
983
+ },
984
+ "i18n_helper": {
985
+ "translation_file_not_found": "File di traduzione non trovato: {translationFile}",
986
+ "error_loading_translations": "Errore durante il caricamento delle traduzioni: {errorMessage}",
987
+ "translation_not_found": "Traduzione non trovata per chiave: {key}",
988
+ "translation_key_not_string": "La chiave di traduzione non si risolve in una stringa: {key}",
989
+ "error_reading_locales_directory": "Errore durante la lettura della directory delle impostazioni locali: {errorMessage}"
990
+ }
991
+ },
992
+ "init": {
993
+ "initializationTitle": "🚀 i18n Management Toolkit - Inizializzazione del progetto",
994
+ "initializationCancelled": "🚫 Inizializzazione annullata dall'utente.",
995
+ "sourceDirectoryLabel": "📁 Directory di origine: {dir}",
996
+ "requiredTitle": "Inizializzazione richiesta",
997
+ "requiredBody": "Questo progetto deve essere inizializzato prima di eseguire questo comando.",
998
+ "promptRunNow": "Eseguire l'inizializzazione adesso? (sì/no):",
999
+ "sourceLanguageLabel": "🌍 Lingua originale: {language}",
1000
+ "detectedI18nFrameworks": "🔍 Framework i18n rilevati: {frameworks}",
1001
+ "pinMustBe4Digits": "🔐 Il PIN deve essere di 4 cifre.",
1002
+ "existingDirectoriesFound": "📁 Directory di traduzione esistenti trovate:",
1003
+ "useExistingDirectoryPrompt": "Vuoi utilizzare la directory esistente? (sì/no)",
1004
+ "selectDirectoryPrompt": "Seleziona una rubrica inserendo il numero (o scegli 'Crea nuova rubrica')",
1005
+ "enterNewDirectoryName": "Inserisci il nome per la tua nuova directory di traduzione",
1006
+ "createdNewDirectory": "✅ Creata nuova directory: {dir}",
1007
+ "directoryAlreadyExists": "⚠️ La directory esiste già: {dir}",
1008
+ "invalidDirectoryName": "❌ Nome della directory fornito non valido.",
1009
+ "usingExistingDirectory": "Utilizzando la directory esistente: {dir}",
1010
+ "adminPinSetupOptional": "🔐 Configurazione del PIN amministratore opzionale (consigliato per la sicurezza)",
1011
+ "adminPinSeparator": "------------------------------",
1012
+ "adminPinDescription1": "PIN amministratore: numero di 4 cifre per l'accesso sicuro",
1013
+ "adminPinDescription2": "Lascia vuoto per saltare la configurazione del PIN",
1014
+ "adminPinDescription3": "Se imposti un PIN, sarà necessario per tutte le future azioni sicure.",
1015
+ "adminPinDescription4": "Crittografia AES-256-GCM utilizzata per l'archiviazione sicura del PIN.",
1016
+ "adminPinSetupPrompt": "Inserisci il PIN amministratore (4 cifre) o lascia vuoto per saltare:",
1017
+ "skippingAdminPinSetup": "Salto configurazione PIN amministratore...",
1018
+ "settingUpAdminPin": "🔐 Configurazione del PIN amministratore...",
1019
+ "enterAdminPin": "Inserisci il PIN amministratore:",
1020
+ "confirmAdminPin": "Conferma PIN amministratore:",
1021
+ "pinMismatch": "I PIN non corrispondono. Per favore riprova.",
1022
+ "adminPinSetupSuccess": "🔐 Configurazione del PIN amministratore riuscita!",
1023
+ "adminPinSetupFailure": "🔐 Configurazione del PIN amministratore non riuscita. Per favore riprova.",
1024
+ "adminProtectionEnabled": "🔐 Protezione amministratore abilitata. Tutte le azioni richiedono l'autenticazione tramite PIN.",
1025
+ "adminProtectionDisabled": "🔐 Protezione amministratore disabilitata. Tutte le azioni sono ora disponibili senza PIN.",
1026
+ "autoDetectedI18nDirectory": "Directory i18n rilevata automaticamente: {directory}",
1027
+ "initializingProject": "⚙️ Inizializzazione della configurazione del progetto...",
1028
+ "createdSampleTranslationFile": "✅ Creato un file di traduzione di esempio: {file}",
1029
+ "languageSelectionTitle": "🌐 Configurazione della lingua",
1030
+ "available": "Disponibile",
1031
+ "defaultLanguages": "📝 Lingue predefinite: {languages}",
1032
+ "enterLanguageCodes": "🎯 Inserisci i codici della lingua di destinazione (separati da virgole, ad es. de, es, fr, ru):",
1033
+ "targetLanguages": "🌍 Lingue di destinazione",
1034
+ "foundSourceFiles": "📄 Trovato {count} file sorgente da analizzare",
1035
+ "processingLanguage": "🔄 Lingua di elaborazione: {language}",
1036
+ "fileProcessingResult": "✅ Elaborato {file}: {translated}/{total} chiavi ({percentage}%)",
1037
+ "overallProgress": "📊 Progressi complessivi: {translated}/{total} chiavi elaborate ({percentage}%)",
1038
+ "initializationSummaryTitle": "📋 Riepilogo dell'inizializzazione",
1039
+ "languageSummary": "{icon} {name} ({code}): {percentage}% completato",
1040
+ "languageFiles": "📄 File: {count}",
1041
+ "languageKeys": "🔤 Tasti: {translated}/{total}",
1042
+ "languageMissing": "⚠️ Mancano: {count}",
1043
+ "initializationCompletedSuccessfully": "🎉 Inizializzazione del progetto completata con successo!",
1044
+ "nextStepsTitle": "🚀Passi successivi",
1045
+ "nextStep1": "1. Esamina i file di traduzione generati nella directory locales/",
1046
+ "nextStep2": "2. Aggiungi traduzioni per ciascuna lingua di destinazione",
1047
+ "nextStep3": "3. Eseguire nuovamente 'npm run i18ntk' per convalidare le traduzioni",
1048
+ "detectedFrameworks": "✅ Framework i18n rilevati: {frameworks}",
1049
+ "setup": {
1050
+ "title": "Impostare",
1051
+ "question": "Domanda di installazione",
1052
+ "opt_single": "Fascicolo unico",
1053
+ "opt_modular": "Modulare",
1054
+ "opt_existing": "Esistente",
1055
+ "choice_prompt": "Scegli un'opzione:",
1056
+ "opt_confirm": "Confermare",
1057
+ "opt_cancel": "Cancellare",
1058
+ "apply_all_prompt": "Applicare questa struttura a tutte le lingue? (sì/no):",
1059
+ "per_language_intro": "Hai scelto di configurare le lingue individualmente. Ecco le lingue disponibili:",
1060
+ "available_languages": "Lingue disponibili: {languages}",
1061
+ "include_prompt": "Inserisci i codici lingua separati da virgole da includere (ad esempio \"de,fr,es\"):"
1062
+ },
1063
+ "warnings": {
1064
+ "noPackageJson": "Nessun pacchetto.json trovato. Impossibile rilevare automaticamente il framework i18n."
1065
+ },
1066
+ "errorsPackageJsonRead": "Errore durante la lettura del pacchetto.json: {error}",
1067
+ "errorsNoFramework": "Nessun framework i18n rilevato. Installarne uno o specificarlo manualmente.",
1068
+ "suggestions": {
1069
+ "noFramework": "Nessun framework i18n rilevato. Prendi in considerazione l'utilizzo di uno dei seguenti:",
1070
+ "installFramework": "Per installare un framework, esegui: npm install <nome-pacchetto>"
1071
+ },
1072
+ "frameworks": {
1073
+ "react": "- Reagire i18next (reagire-i18next)",
1074
+ "vue": "- Vue i18n (vue-i18n)",
1075
+ "i18next": "- i18successivo (i18successivo)",
1076
+ "nuxt": "- Successivo i18n (@nuxtjs/i18n)",
1077
+ "svelte": "- Svelto i18n (svelto-i18n)"
1078
+ },
1079
+ "continueWithoutI18nPrompt": "Nessun framework i18n rilevato. Vuoi continuare senza? (sì/no):",
1080
+ "detectedI18nFramework": "Rilevato framework i18n: {frameworks}",
1081
+ "existingDirectoryItem": "{index}. {location}",
1082
+ "usingExistingStructure": "Utilizzando la struttura esistente: {dir}",
1083
+ "creatingSourceDirectory": "Creazione della directory di origine: {dir}",
1084
+ "creatingSourceLanguageDirectory": "Creazione della directory della lingua di origine: {dir}",
1085
+ "errors": {
1086
+ "errorExecutingCommand": "Errore durante l'esecuzione del comando: {error}",
1087
+ "sourceDirectoryNotFound": "Directory di origine non trovata: {dir}",
1088
+ "sourceLanguageDirectoryNotFound": "Directory della lingua di origine non trovata: {dir}",
1089
+ "noJsonFilesInSourceDirectory": "Nessun file JSON trovato nella directory di origine: {dir}",
1090
+ "invalidFilePathDetected": "Rilevato percorso file non valido",
1091
+ "initializationFailed": "Inizializzazione non riuscita: {error}",
1092
+ "noFramework": "Nessun framework i18n rilevato. Continuare con la modalità generica.",
1093
+ "packageJsonRead": "Errore durante la lettura del pacchetto.json."
1094
+ },
1095
+ "processingFile": "Elaborazione {file} per {language}...",
1096
+ "fileAlreadyExistsMerging": "File {file} esiste già. Unione di nuove chiavi.",
1097
+ "createdNewFile": "Creato nuovo file: {file}",
1098
+ "updatedFile": "File aggiornato: {file}",
1099
+ "skippingExcludedFile": "Saltare {file} per {language} in quanto escluso.",
1100
+ "continuingWithoutAdminPin": "Continuare senza l'impostazione del PIN amministratore.",
1101
+ "createdSourceLanguageDirectory": "Directory della lingua di origine creata: {dir}",
1102
+ "errorSettingUpAdminPin": "Errore durante l'impostazione del PIN amministratore: {error}",
1103
+ "noTargetLanguagesSpecified": "Nessuna lingua di destinazione specificata.",
1104
+ "translationFilesCreatedWarning": "I file di traduzione sono stati creati con segnaposto; revisione prima dell'uso in produzione.",
1105
+ "warningCannotReadSourceDir": "Avviso: impossibile leggere la directory di origine {dir}: {error}",
1106
+ "warningInvalidLanguageCodes": "Avviso: codici lingua non validi ignorati: {languages}",
1107
+ "warningProceedingWithoutFramework": "Procedimento senza framework i18n rilevato.",
1108
+ "backup": {
1109
+ "title": "Impostazioni di backup",
1110
+ "description": "I backup sono disabilitati per impostazione predefinita per evitare la ricorsione del backup e l'inquinamento del repository.",
1111
+ "enablePrompt": "Abilitare i backup automatici? (sì/no):",
1112
+ "keepPrompt": "Quanti backup devono essere conservati automaticamente (1-3, predefinito 1):"
1113
+ },
1114
+ "completionSummaryTitle": "Riepilogo del completamento",
1115
+ "completionSummaryBasicTitle": "Riepilogo del completamento (base)",
1116
+ "totalChanges": "Modifiche totali: {count}",
1117
+ "languagesProcessed": "Lingue trattate: {count}",
1118
+ "missingKeysAdded": "Aggiunte chiavi mancanti: {count}",
1119
+ "reportPrompt": "Desideri che venga generato un report? (Sì/no):",
1120
+ "reportGenerated": "Rapporto generato: {reportPath}",
1121
+ "reportFailed": "Impossibile generare il rapporto: {error}",
1122
+ "completionError": "Errore durante il completamento: {error}",
1123
+ "optimize": {
1124
+ "title": "Ottimizzazione delle dimensioni del pacchetto",
1125
+ "preview": "Esecuzione dell'anteprima dell'ottimizzazione locale in corso...",
1126
+ "reduceTip": "Puoi ridurre le dimensioni del pacchetto selezionando solo le lingue che ti servono.",
1127
+ "prompt": "Desideri eseguire l'ottimizzazione interattiva adesso? (sì/no):",
1128
+ "starting": "Avvio dell'ottimizzazione locale interattiva...",
1129
+ "completed": "Ottimizzazione del pacchetto completata.",
1130
+ "later": "Puoi eseguire l'ottimizzazione locale in un secondo momento con:",
1131
+ "unavailable": "Impossibile offrire l'ottimizzazione locale: {error}"
1132
+ }
1133
+ },
1134
+ "language": {
1135
+ "title": "🌍Cambia lingua",
1136
+ "separator": "============================================================",
1137
+ "current": "Lingua attuale: {language}",
1138
+ "available": "Lingue disponibili:",
1139
+ "languageOption": "{index}. {displayName}{current}",
1140
+ "backToMainMenu": "Torna al menu principale",
1141
+ "prompt": "Seleziona una lingua (0-8):",
1142
+ "cancelled": "Cambio lingua annullato.",
1143
+ "invalid": "Scelta non valida. Per favore riprova.",
1144
+ "changed": "La lingua è cambiata in: {language}",
1145
+ "changeFailed": "Impossibile cambiare lingua: {error}",
1146
+ "pressEnterToContinue": "Premi Invio per continuare..."
1147
+ },
1148
+ "maintainLanguagePurity": {
1149
+ "workflow_title": "🚀 Flusso di lavoro per il mantenimento della purezza della lingua",
1150
+ "step1_title": "📊 FASE 1: Valutazione iniziale della purezza del linguaggio",
1151
+ "step2_title": "🔧 PASSO 2: Rileva e correggi automaticamente le discrepanze linguistiche",
1152
+ "step3_title": "🌐 FASE 3: applica le traduzioni automatiche",
1153
+ "step4_title": "✅ FASE 4: Valutazione finale della purezza della lingua",
1154
+ "workflow_error": "❌ Errore nel flusso di lavoro: {errorMessage}",
1155
+ "running_initial_validation": "Esecuzione della convalida iniziale della purezza della lingua...",
1156
+ "initial_assessment_complete": "✅ Valutazione iniziale completata: {count} violazioni riscontrate",
1157
+ "initial_assessment_warnings": "⚠️ Valutazione iniziale completata con avvertenze",
1158
+ "detecting_fixing_mismatches": "Rilevamento e correzione delle discrepanze linguistiche...",
1159
+ "detection_complete_applying_fixes": "Rilevamento completato. Applicazione delle correzioni automatiche...",
1160
+ "mismatch_fixes_complete": "✅ Correzioni di mancata corrispondenza della lingua completate: {count} correzioni applicate",
1161
+ "mismatch_fixes_warnings": "⚠️ Correzioni di mancata corrispondenza della lingua completate con avvisi",
1162
+ "applying_automatic_translations": "Applicazione delle traduzioni automatiche...",
1163
+ "translation_preview_complete": "Anteprima della traduzione completata. Applicazione delle traduzioni..."
1164
+ },
1165
+ "menu": {
1166
+ "title": "🌐MENU' GESTIONE I18NTK",
1167
+ "separator": "============================================================",
1168
+ "options": {
1169
+ "init": "🚀 Inizializza nuove lingue",
1170
+ "analyze": "🔍 Analizza le traduzioni",
1171
+ "validate": "✅ Convalida le traduzioni",
1172
+ "usage": "📊 Controlla l'utilizzo della chiave",
1173
+ "complete": "🎯 Traduzioni complete (copertura al 100%)",
1174
+ "sizing": "📏 Analizza le taglie",
1175
+ "fix": "🛠️ Correggi le traduzioni dei segnaposto",
1176
+ "scanner": "🔍 Cerca problemi con i18n",
1177
+ "translate": "🌐 Traduzione automatica",
1178
+ "workflow": "🔄 Esegui il flusso di lavoro completo",
1179
+ "status": "📋 Mostra lo stato del progetto",
1180
+ "delete": "🗑️ Elimina tutti i report",
1181
+ "language": "🌍 Cambia la lingua dell'interfaccia utente",
1182
+ "settings": "⚙️ Impostazioni",
1183
+ "help": "❓Aiuto",
1184
+ "debug": "🔧 Strumenti di debug",
1185
+ "exit": "🚪 Esci"
1186
+ },
1187
+ "update": "📦 Pacchetto di aggiornamento",
1188
+ "goodbye": "👋 Arrivederci!",
1189
+ "invalidChoice": "Scelta non valida. Seleziona 0-15.",
1190
+ "returning": "Tornando al menu principale...",
1191
+ "invalidOption": "Opzione non valida. Per favore riprova.",
1192
+ "nonInteractiveModeWarning": "Rilevata modalità non interattiva. Menu visualizzato solo per riferimento.",
1193
+ "useDirectExecution": "Utilizzare: nodo main/manage/index.js --command=<command> per l'esecuzione diretta.",
1194
+ "useHelpForCommands": "Utilizzare: node main/manage/index.js --help per i comandi disponibili.",
1195
+ "returnToMainMenu": "Premere Invio per tornare al menu principale.",
1196
+ "pressEnterToContinue": "Premi Invio per continuare...",
1197
+ "selectOptionPrompt": "Seleziona un'opzione:",
1198
+ "selectDebugToolPrompt": "Seleziona uno strumento di debug:",
1199
+ "selectLogPrompt": "Selezionare un file di registro (1-{count}):",
1200
+ "autoDetectedI18nDirectory": "Directory i18n rilevata automaticamente: {directory}",
1201
+ "executingCommand": "Esecuzione del comando: {command}",
1202
+ "unknownCommand": "Comando sconosciuto: {command}",
1203
+ "languageOption": "{index}. {displayName}{current}",
1204
+ "debugTools": {
1205
+ "1": "Analisi del file di registro",
1206
+ "2": "Analisi dell'utilizzo delle chiavi di traduzione",
1207
+ "3": "Analisi della completezza della traduzione",
1208
+ "4": "Analisi del formato della traduzione",
1209
+ "5": "Analisi del tipo di traduzione",
1210
+ "6": "Analisi della struttura della traduzione"
1211
+ },
1212
+ "native_translations": {
1213
+ "exact_translation_found": "✅ {keyPath}: {value}",
1214
+ "no_exact_translation": "⚠️ Nessuna traduzione esatta per '{keyPath}', chiavi simili trovate:",
1215
+ "similar_key": "- {key} ({similarity}% incontro)",
1216
+ "processing_language_files": "🔄 Elaborazione {count} file di lingua...",
1217
+ "file_not_found": "⚠️ File non trovato: {file}",
1218
+ "processing_translations": "🌍 Elaborazione {code} traduzioni...",
1219
+ "backup_created": "📋 Backup creato: {filename}",
1220
+ "error_parsing_json": "❌ Errore durante l'analisi {code}.json: {errorMessage}",
1221
+ "existing_keys_found": "📊 {code}: Trovato {count} chiavi esistenti",
1222
+ "error_writing_json": "❌ Errore di scrittura {code}.json: {errorMessage}",
1223
+ "translations_replaced": "📊 {code}: {count} traduzioni sostituite",
1224
+ "translation_replacement_complete": "✅ Sostituzione della traduzione completata!",
1225
+ "total_replacements": "📊 Sostituzioni totali: {count}",
1226
+ "dry_run_mode": "⚠️ MODALITÀ DRY RUN - Nessun file è stato modificato",
1227
+ "tool_title": "🌍 Sostituto di traduzione nativo v1.9.1",
1228
+ "tool_separator": "======================================",
1229
+ "dry_run_warning": "⚠️ In esecuzione in modalità DRY RUN: nessun file verrà modificato",
1230
+ "error_during_replacement": "❌ Errore durante la sostituzione della traduzione:"
1231
+ }
1232
+ },
1233
+ "config": {
1234
+ "dirFallbackWarning": "⚠️ Elenco {dir} non trovato. Utilizzando {fallback}.",
1235
+ "dirInvalidError": "❌ Directory non valida: {dir}"
1236
+ },
1237
+ "operations": {
1238
+ "completed": "✅ Operazione completata con successo!",
1239
+ "deleteReportsTitle": "🗑️ Elimina report, registri e cache",
1240
+ "scanningForFiles": "🔍 Ricerca dei file da eliminare...",
1241
+ "noFilesFoundToDelete": "✅ Nessun file trovato da eliminare.",
1242
+ "availableDirectories": "📁 Directory disponibili:",
1243
+ "allDirectories": "Tutte le directory",
1244
+ "andMore": "e altro ancora...",
1245
+ "cancelOption": "Cancellare",
1246
+ "cancelReportOption": "Annulla/Torna al menu",
1247
+ "invalidSelection": "❌ Selezione non valida.",
1248
+ "foundFilesInSelectedDirectories": "📊 Trovato {count} file nelle directory selezionate:",
1249
+ "deletionOptions": "🗑️ Opzioni di cancellazione:",
1250
+ "deleteAllFiles": "Elimina tutti i file",
1251
+ "keepLast3Files": "Conserva gli ultimi 3 file (per data)",
1252
+ "keepLast5Files": "Conserva gli ultimi 5 file (per data)",
1253
+ "noFilesToDelete": "✅ Nessun file da eliminare.",
1254
+ "filesToDeleteCount": "📋 File da eliminare: {count}",
1255
+ "filesToKeepCount": "📋 File da conservare: {count}",
1256
+ "confirmDeletion": "⚠️ Sei sicuro di voler eliminare questi file? (sì/no):",
1257
+ "deletedFile": "✅ Eliminato: {filename}",
1258
+ "failedToDeleteFile": "❌ Impossibile eliminare {filename}: {error}",
1259
+ "cancelled": "❌Operazione annullata.",
1260
+ "init": {
1261
+ "title": "🚀 Inizializza nuova lingua"
1262
+ },
1263
+ "usage": {
1264
+ "title": "📊 Controlla l'utilizzo della chiave",
1265
+ "noUsedKeysHint": "Trovate traduzioni ma nessun utilizzo nella fonte. Controlla --source-dir e translationPatterns."
1266
+ },
1267
+ "analyze": {
1268
+ "title": "🔍 Analizza le traduzioni"
1269
+ },
1270
+ "validate": {
1271
+ "title": "✅ Convalida le traduzioni"
1272
+ },
1273
+ "settings": {
1274
+ "title": "⚙️ Gestione delle impostazioni",
1275
+ "separator": "============================================================"
1276
+ },
1277
+ "complete": {
1278
+ "deletingOldReport": "🗑️ Eliminazione del vecchio report sull'utilizzo per una nuova analisi",
1279
+ "generatingFreshAnalysis": "🔄 Generazione di nuove analisi sull'utilizzo...",
1280
+ "couldNotGenerate": "⚠️ Impossibile generare l'analisi dell'utilizzo. Utilizzo delle chiavi mancanti comuni.",
1281
+ "reportNotFound": "⚠️ Rapporto sull'utilizzo non trovato. Generazione di nuove analisi in corso...",
1282
+ "foundMissingKeys": "🔍Trovato {count} chiavi mancanti dall'analisi dell'utilizzo",
1283
+ "couldNotParse": "⚠️ Impossibile analizzare il rapporto sull'utilizzo. Utilizzo delle chiavi mancanti comuni.",
1284
+ "title": "🎯 COMPLETAMENTO DELLE TRADUZIONI",
1285
+ "separator": "============================================================",
1286
+ "sourceDir": "📁 Directory di origine: {sourceDir}",
1287
+ "sourceLanguage": "🔤 Lingua di partenza: {sourceLanguage}",
1288
+ "dryRunMode": "🧪 MODALITÀ DRY RUN - Nessun file verrà modificato",
1289
+ "languages": "🎯 Lingue di destinazione: {languages}",
1290
+ "addingMissingKeys": "➕ Aggiunta delle chiavi mancanti ai file di traduzione...",
1291
+ "processing": "🔄 Elaborazione {language}...",
1292
+ "addedKeys": "✅ Aggiunto {count} chiavi",
1293
+ "changeDetails": "📝 {file}: {key}",
1294
+ "noChangesNeeded": "✅ Non sono necessarie modifiche per {language}",
1295
+ "summaryTitle": "📊 RIEPILOGO COMPLETAMENTO",
1296
+ "totalChanges": "📝 Modifiche totali: {totalChanges}",
1297
+ "languagesProcessed": "🌐 Lingue trattate: {languagesProcessed}",
1298
+ "missingKeysAdded": "➕ Chiavi mancanti aggiunte: {missingKeysAdded}",
1299
+ "nextStepsTitle": "📋 NEXT STEPS",
1300
+ "nextStep1": "1. Esegui l'analisi dell'utilizzo:",
1301
+ "nextStep2": "2. Convalida delle traduzioni:",
1302
+ "nextStep3": "3. Analizzare la completezza:",
1303
+ "allKeysAvailable": "🎉 Tutte le chiavi di traduzione sono ora disponibili!",
1304
+ "runWithoutDryRun": "💡 Esegui senza --dry-run per applicare le modifiche",
1305
+ "pressEnterToContinue": "Premi Invio per continuare..."
1306
+ },
1307
+ "updatePackage": {
1308
+ "title": "📦 Aggiorna il pacchetto i18n-toolkit",
1309
+ "description": "Ciò aggiornerà il pacchetto i18n-toolkit all'ultima versione disponibile su npm.",
1310
+ "command": "Comando per correre",
1311
+ "confirm": "Sei sicuro di voler procedere con l'aggiornamento? (sì/no):",
1312
+ "updating": "Aggiornamento pacchetto in corso... L'operazione potrebbe richiedere qualche istante.",
1313
+ "success": "✅ i18n-toolkit aggiornato con successo!",
1314
+ "error": "❌ Impossibile aggiornare i18n-toolkit",
1315
+ "cancelled": "❌ Aggiornamento annullato."
1316
+ }
1317
+ },
1318
+ "security": {
1319
+ "pathValidationFailed": "percorso_validazione_non riuscita",
1320
+ "invalidInputType": "tipo_input_non_valido",
1321
+ "pathTraversalAttempt": "percorso_attraversamento_tentativo",
1322
+ "pathValidated": "✅ Percorso convalidato con successo",
1323
+ "pathValidationError": "percorso_validazione_errore",
1324
+ "fileTooLarge": "Sicurezza: file troppo grande: {filePath}",
1325
+ "fileReadError": "Sicurezza: errore di lettura del file: {errorMessage}",
1326
+ "contentTooLargeForFile": "Sicurezza: contenuto troppo grande per il file: {filePath}",
1327
+ "fileWriteError": "Sicurezza: errore di scrittura del file: {errorMessage}",
1328
+ "jsonStringTooLarge": "Sicurezza: stringa JSON troppo grande",
1329
+ "jsonParseError": "Sicurezza: errore di analisi JSON: {errorMessage}",
1330
+ "inputContainsDisallowedCharacters": "Sicurezza: l'input contiene caratteri non consentiti",
1331
+ "unknownCommandArgument": "Sicurezza: argomento del comando sconosciuto: {key}",
1332
+ "unknown_command_argument": "Sicurezza: argomento del comando sconosciuto: {key}",
1333
+ "unknownConfigKey": "Sicurezza: chiave di configurazione sconosciuta: {key}",
1334
+ "unknown_config_key": "Sicurezza: chiave di configurazione sconosciuta: {key}",
1335
+ "securityAlert": "[AVVISO DI SICUREZZA] {timestamp}: {event}",
1336
+ "contentTooLarge": "Sicurezza: contenuto troppo grande per il file: {validatedPath}",
1337
+ "inputDisallowedCharacters": "Sicurezza: l'input contiene caratteri non consentiti",
1338
+ "unknownCommandArg": "Argomento del comando sconosciuto",
1339
+ "logMessage": "[SICUREZZA {level}] {timestamp}: {event}",
1340
+ "alertMessage": "[AVVISO DI SICUREZZA] {timestamp}: {event}",
1341
+ "securityWarning": "[AVVISO DI SICUREZZA] {timestamp}: {event}",
1342
+ "json_parse_error": "Sicurezza: errore di analisi JSON: {errorMessage}",
1343
+ "file_too_large": "File troppo grande",
1344
+ "file_read_error": "Errore di lettura del file",
1345
+ "content_too_large_for_file": "Contenuto troppo grande per il file",
1346
+ "file_write_error": "Errore di scrittura del file",
1347
+ "json_string_too_large": "Stringa JSON troppo grande",
1348
+ "recursion_detected": "Ricorsione rilevata in {operation}",
1349
+ "operation_timeout": "Timeout dell'operazione: {operation}",
1350
+ "operation_error": "Errore di operazione in {operation}: {error}",
1351
+ "directory_read_error": "Errore di lettura della directory: {errorMessage}",
1352
+ "security_alert": "Avviso di sicurezza"
1353
+ },
1354
+ "settings-cli": {
1355
+ "settings": {
1356
+ "mainMenu": {
1357
+ "title": "Menù principale:",
1358
+ "uiSettings": "Impostazioni dell'interfaccia utente",
1359
+ "uiSettingsDesc": "Opzioni di lingua, tema e interfaccia",
1360
+ "directorySettings": "Impostazioni della rubrica",
1361
+ "directorySettingsDesc": "Percorsi delle directory di origine e di output",
1362
+ "scriptDirectorySettings": "Impostazioni della directory degli script",
1363
+ "scriptDirectorySettingsDesc": "Percorsi di directory per singole operazioni di script",
1364
+ "processingSettings": "Impostazioni di elaborazione",
1365
+ "processingSettingsDesc": "Dimensioni del batch, concorrenza e prestazioni",
1366
+ "advancedSettings": "Impostazioni avanzate",
1367
+ "advancedSettingsDesc": "Convalida, registrazione e opzioni avanzate",
1368
+ "viewAllSettings": "Visualizza tutte le impostazioni",
1369
+ "viewAllSettingsDesc": "Visualizza la configurazione corrente",
1370
+ "importExport": "Importa/Esporta",
1371
+ "importExportDesc": "Backup e ripristino delle impostazioni",
1372
+ "resetToDefaults": "Ripristina le impostazioni predefinite",
1373
+ "resetToDefaultsDesc": "Ripristina le impostazioni di fabbrica",
1374
+ "reportBug": "Segnala bug",
1375
+ "reportBugDesc": "Invia una segnalazione di problema su GitHub",
1376
+ "saveChanges": "Salva modifiche",
1377
+ "saveChangesDesc": "Salva le impostazioni correnti in un file",
1378
+ "updatePackage": "Pacchetto di aggiornamento",
1379
+ "updatePackageDesc": "Aggiorna il pacchetto i18n-toolkit tramite npm",
1380
+ "help": "Aiuto",
1381
+ "helpDesc": "Mostra informazioni di aiuto dettagliate",
1382
+ "quit": "Esentato",
1383
+ "quitDesc": "Esci dalle impostazioni (con la richiesta di salvataggio se necessario)",
1384
+ "unsavedChangesWarning": "⚠️ Hai modifiche non salvate",
1385
+ "saveChangesBeforeQuit": "Vuoi salvare le modifiche prima di uscire? (sì/no):",
1386
+ "selectOption": "Seleziona un'opzione:",
1387
+ "goodbyeMessage": "Grazie per aver utilizzato il gestore delle impostazioni i18n!"
1388
+ },
1389
+ "goodbyeMessage": "Grazie per aver utilizzato il gestore delle impostazioni i18n!",
1390
+ "relativePathHint": "Utilizza percorsi relativi da questa directory (ad esempio, ./src/i18n/locales)",
1391
+ "currentDirectory": "Directory del progetto corrente"
1392
+ },
1393
+ "settings_manager": {
1394
+ "error_loading_settings": "❌ Errore durante il caricamento delle impostazioni:",
1395
+ "error_saving_settings": "❌ Errore durante il salvataggio delle impostazioni:",
1396
+ "error_setting_value": "❌ Valore di impostazione dell'errore:",
1397
+ "missing_required_setting": "❌ Impostazione richiesta mancante: {prop}",
1398
+ "invalid_language": "❌ Lingua non valida: {language}",
1399
+ "invalid_source_language": "❌ Lingua di origine non valida: {sourceLanguage}",
1400
+ "default_languages_must_be_array": "❌ defaultLanguages ​​deve essere un array",
1401
+ "invalid_date_format": "❌ Formato data non valido: {dateFormat}. Formati validi: {validFormats}",
1402
+ "invalid_time_format": "❌ Formato ora non valido: {timeFormat}. Formati validi: {validFormats}",
1403
+ "notifications_types_must_be_object": "❌ notifications.types deve essere un oggetto",
1404
+ "exclude_files_must_be_array": "❌excludeFiles deve essere un array",
1405
+ "exclude_dirs_must_be_array": "❌excludeDirs deve essere un array",
1406
+ "include_extensions_must_be_array": "❌ includeExtensions deve essere un array",
1407
+ "invalid_batch_size": "❌ Dimensione batch non valida. Deve essere un numero positivo",
1408
+ "invalid_max_concurrent_files": "❌ Numero massimo di file simultanei non validi. Deve essere un numero positivo",
1409
+ "invalid_sizing_threshold": "❌ Soglia di taglia non valida. Deve essere un numero positivo",
1410
+ "invalid_timeout": "❌ Timeout non valido. Deve essere almeno 1000 ms",
1411
+ "invalid_sizing_format": "❌ Formato taglie non valido: {sizingFormat}. Formati validi: {validFormats}",
1412
+ "error_validating_settings": "❌ Errore durante la convalida delle impostazioni:",
1413
+ "backup_created": "📋 Backup creato: {backupPath}",
1414
+ "error_creating_backup": "❌ Errore durante la creazione del backup:",
1415
+ "language_not_supported": "Lingua '{language}' non è supportato. Disponibile: {availableLanguages}",
1416
+ "ui_language_set": "🌍 Lingua dell'interfaccia utente impostata su: {language}"
1417
+ }
1418
+ },
1419
+ "settings": {
1420
+ "title": "⚙️ Gestione delle impostazioni",
1421
+ "separator": "============================================================",
1422
+ "goodbyeMessage": "Grazie per aver utilizzato il gestore delle impostazioni i18ntk!",
1423
+ "relativePathHint": "Utilizza percorsi relativi da questa directory (ad esempio, ./src/i18n/locales)",
1424
+ "currentDirectory": "Directory del progetto corrente",
1425
+ "startingSettings": "Impostazioni iniziali:",
1426
+ "pin": "PIN:",
1427
+ "reportBug": {
1428
+ "title": "Segnala bug",
1429
+ "description": "Segnala eventuali problemi o bug riscontrati",
1430
+ "guidance": "Per segnalare i problemi in modo efficace:",
1431
+ "checkLogs": "1. Controlla i log di debug nella directory del tuo progetto",
1432
+ "documentIssue": "2. Documentare il problema con i passaggi da riprodurre",
1433
+ "contactSupport": "3. Contatta l'amministratore di sistema o il team di supporto",
1434
+ "completed": "Visualizzazione della guida alla segnalazione dei bug",
1435
+ "instructions": "Seguire le istruzioni sopra riportate per segnalare il bug."
1436
+ },
1437
+ "mainMenu": {
1438
+ "title": "Menù principale:",
1439
+ "uiSettings": "Impostazioni dell'interfaccia utente",
1440
+ "uiSettingsDesc": "Opzioni di lingua, tema e interfaccia",
1441
+ "directorySettings": "Impostazioni della rubrica",
1442
+ "directorySettingsDesc": "Percorsi delle directory di origine e di output",
1443
+ "processingSettings": "Impostazioni di elaborazione",
1444
+ "processingSettingsDesc": "Dimensioni del batch, concorrenza e prestazioni",
1445
+ "advancedSettings": "Impostazioni avanzate",
1446
+ "advancedSettingsDesc": "Convalida, registrazione e opzioni avanzate",
1447
+ "viewAllSettings": "Visualizza tutte le impostazioni",
1448
+ "viewAllSettingsDesc": "Visualizza la configurazione corrente",
1449
+ "importExport": "Importa/Esporta",
1450
+ "updatePackage": "Pacchetto di aggiornamento",
1451
+ "updatePackageDesc": "Aggiorna il pacchetto i18n-toolkit tramite npm",
1452
+ "importExportDesc": "Backup e ripristino delle impostazioni",
1453
+ "resetToDefaults": "Ripristina le impostazioni predefinite",
1454
+ "resetToDefaultsDesc": "Ripristina le impostazioni di fabbrica",
1455
+ "reportBug": "Segnala bug",
1456
+ "reportBugDesc": "Invia una segnalazione di problema su GitHub",
1457
+ "saveChanges": "Salva modifiche",
1458
+ "saveChangesDesc": "Salva le impostazioni correnti in un file",
1459
+ "help": "Aiuto",
1460
+ "helpDesc": "Mostra informazioni di aiuto dettagliate",
1461
+ "quit": "Esentato",
1462
+ "quitDesc": "Esci dalle impostazioni (con la richiesta di salvataggio se necessario)",
1463
+ "unsavedChangesWarning": "⚠️ Hai modifiche non salvate",
1464
+ "saveChangesBeforeQuit": "Vuoi salvare le modifiche prima di uscire? (sì/no):",
1465
+ "selectOption": "Seleziona un'opzione:",
1466
+ "goodbyeMessage": "Grazie per aver utilizzato il gestore delle impostazioni i18n!",
1467
+ "selectSettingPrompt": "Seleziona un'impostazione da modificare (o \"b\" per tornare indietro):",
1468
+ "enterNewValue": "Inserisci un nuovo valore:",
1469
+ "updatedSuccessfully": "{setting} aggiornato con successo!",
1470
+ "scriptDirectorySettings": "Impostazioni della directory degli script",
1471
+ "scriptDirectoryDesc": "Specificare directory personalizzate per ogni script",
1472
+ "scriptDirectorySettingsDesc": "È possibile impostare directory personalizzate per ogni script. Se non impostato, verranno utilizzate le impostazioni globali.",
1473
+ "currentDirectory": "Directory del progetto corrente",
1474
+ "securitySettings": "Impostazioni di sicurezza",
1475
+ "securitySettingsDesc": "PIN amministratore e altre opzioni di sicurezza",
1476
+ "backupSettings": "Impostazioni di backup",
1477
+ "backupSettingsDesc": "Backup e ripristino delle impostazioni di configurazione",
1478
+ "autoTranslate": "Traduzione automatica",
1479
+ "autoTranslateDesc": "Ottimizza la gestione dei segnaposto, la concorrenza, l'invio in batch e i report"
1480
+ },
1481
+ "updatePackage": {
1482
+ "title": "Pacchetto di aggiornamento",
1483
+ "description": "Aggiorna il pacchetto i18n-toolkit tramite npm",
1484
+ "command": "aggiornamento npm i18ntk -g",
1485
+ "success": "Aggiornamento completato con successo.",
1486
+ "failed": "Aggiornamento non riuscito.",
1487
+ "prompt": "Vuoi aggiornare il pacchetto adesso? (sì/no):",
1488
+ "promptDesc": "Nota: questo aggiornerà il pacchetto i18ntk alla versione più recente.",
1489
+ "confirm": "sì",
1490
+ "cancelled": "Aggiornamento annullato.",
1491
+ "error": "Impossibile aggiornare il pacchetto",
1492
+ "updating": "Aggiornamento pacchetto..."
1493
+ },
1494
+ "admin": {
1495
+ "selectOption": "Seleziona l'opzione:",
1496
+ "updateSuccess": "PIN amministratore aggiornato correttamente!",
1497
+ "updateFailed": "Impossibile aggiornare il PIN amministratore.",
1498
+ "protectionRemoved": "Protezione PIN amministratore rimossa.",
1499
+ "configSuccess": "PIN amministratore configurato correttamente!",
1500
+ "configFailed": "Impossibile configurare il PIN amministratore.",
1501
+ "setupPinPrompt": "Desideri impostare un PIN amministratore? (sì/no):",
1502
+ "pinUpdatedSuccess": "PIN amministratore aggiornato correttamente!",
1503
+ "pinUpdatedFailed": "Impossibile aggiornare il PIN amministratore.",
1504
+ "pinRemoved": "Protezione PIN amministratore rimossa.",
1505
+ "pinConfiguredSuccess": "PIN amministratore configurato correttamente!",
1506
+ "pinConfiguredFailed": "Impossibile configurare il PIN amministratore.",
1507
+ "accessDenied": "❌ Accesso negato. Tornando al menù.",
1508
+ "setupPin": "🔐 Configurazione del PIN amministratore...",
1509
+ "setupFailed": "❌ Impossibile impostare il PIN amministratore. Impostazione non modificata.",
1510
+ "pinConfigured": "📌 Il PIN amministratore è attualmente configurato.",
1511
+ "options": "Opzioni:",
1512
+ "changePin": "1) Modifica il PIN esistente",
1513
+ "removePin": "2) Rimuovere la protezione PIN",
1514
+ "cancel": "3) Annulla",
1515
+ "verifyCurrentPin": "🔐 Verifica prima il PIN attuale:",
1516
+ "settingNewPin": "🔄 Impostazione nuovo PIN...",
1517
+ "verifyToRemove": "🔐 Verifica il PIN attuale per rimuovere la protezione:",
1518
+ "noPinConfigured": "🔓 Nessun PIN amministratore attualmente configurato.",
1519
+ "pinBenefits": "L'impostazione del PIN amministratore aggiungerà sicurezza per:",
1520
+ "benefitSecurity": "• Modifica delle impostazioni di sicurezza",
1521
+ "benefitAdvanced": "• Modifica delle configurazioni avanzate",
1522
+ "benefitDebug": "• Accesso agli strumenti di debug",
1523
+ "benefitReset": "• Ripristino delle impostazioni",
1524
+ "setupCancelled": "⏭️ Configurazione del PIN amministratore annullata.",
1525
+ "operationCancelled": "❌Operazione annullata.",
1526
+ "startingSettings": "🎛️ Avvio della CLI delle impostazioni...",
1527
+ "authRequired": "🔒 Autenticazione amministratore richiesta per: {label}",
1528
+ "pinSetupTitle": "Impostazione PIN amministratore",
1529
+ "browserOpenFailed": "Impossibile aprire automaticamente il browser.",
1530
+ "manualVisit": "Si prega di visitare manualmente: {url}",
1531
+ "browserOpened": "✅ Browser aperto con successo!"
1532
+ },
1533
+ "importExport": {
1534
+ "title": "Impostazioni di importazione/esportazione",
1535
+ "export": "Impostazioni di esportazione",
1536
+ "import": "Importa impostazioni",
1537
+ "backup": "Crea backup",
1538
+ "enterFilename": "Inserisci il nome del file (o premi Invio per impostazione predefinita):",
1539
+ "exportSuccess": "Impostazioni esportate in {file}",
1540
+ "exportFailed": "Impossibile esportare le impostazioni: {error}",
1541
+ "importFilename": "Inserisci il nome del file da importare:",
1542
+ "fileNotFound": "File non trovato.",
1543
+ "invalidFormat": "Formato file delle impostazioni non valido.",
1544
+ "confirmImport": "Questo sostituirà tutte le impostazioni attuali. Continuare? (sì/no):",
1545
+ "importSuccess": "Impostazioni importate correttamente.",
1546
+ "importFailed": "Impossibile importare le impostazioni: {error}",
1547
+ "backupSuccess": "Backup creato: {file}",
1548
+ "backupFailed": "Impossibile creare il backup: {error}",
1549
+ "exportFilenamePrompt": "Inserisci il nome del file di esportazione:",
1550
+ "importConfirm": "Vuoi importare questo file delle impostazioni? (sì/no):",
1551
+ "importFilenamePrompt": "Inserisci il nome del file di importazione:",
1552
+ "manageBackups": "Gestisci i backup",
1553
+ "restore": "Ripristina le impostazioni"
1554
+ },
1555
+ "selectOption": "Seleziona un'opzione:",
1556
+ "resetToDefaultsTitle": "Ripristina le impostazioni predefinite",
1557
+ "resetWarning1": "⚠️ Ciò ripristinerà TUTTE le impostazioni ai valori predefiniti.",
1558
+ "resetWarning2": "Questa azione non può essere annullata.",
1559
+ "resetConfirm": "Sei sicuro di voler continuare? (sì/no):",
1560
+ "resetSuccess": "Le impostazioni sono state ripristinate ai valori predefiniti con successo.",
1561
+ "resetFailed": "Impossibile ripristinare le impostazioni: {error}",
1562
+ "resetDone": "Le impostazioni sono state ripristinate ai valori predefiniti con successo.",
1563
+ "resetScriptDirsDone": "Le directory degli script sono state ripristinate correttamente alle impostazioni predefinite del sistema.",
1564
+ "saveSuccess": "Impostazioni salvate con successo.",
1565
+ "saveFailed": "Impossibile salvare le impostazioni.",
1566
+ "saveError": "Impostazioni fornite non valide",
1567
+ "pressEnter": "Premi Invio per continuare...",
1568
+ "initFailed": "Impossibile inizializzare le impostazioni: {error}",
1569
+ "invalidValueFormat": "Formato valore non valido.",
1570
+ "help": {
1571
+ "title": "Guida alle impostazioni",
1572
+ "navigationTitle": "Navigazione",
1573
+ "navigation1": "1. Impostazioni generali: configura la lingua dell'interfaccia utente, il tema e le preferenze di base",
1574
+ "navigation2": "2. Impostazioni directory: imposta le directory di origine e di output per i file di traduzione",
1575
+ "navigation3": "3. Impostazioni di elaborazione: configura le dimensioni del batch, la concorrenza e le opzioni relative alle prestazioni",
1576
+ "navigation4": "4. Impostazioni avanzate: accedi alle opzioni di convalida, registrazione e configurazione avanzata",
1577
+ "categoriesTitle": "Categorie delle impostazioni",
1578
+ "categoryUI": "• Impostazioni interfaccia utente: lingua dell'interfaccia, tema colore e preferenze di visualizzazione",
1579
+ "categoryDirectory": "• Impostazioni directory: posizione dei file di origine e directory dei report di output",
1580
+ "categoryProcessing": "• Impostazioni di elaborazione: elaborazione batch, limiti di file e ottimizzazione delle prestazioni",
1581
+ "categoryAdvanced": "• Impostazioni avanzate: modalità debug, registrazione di controllo e opzioni di sicurezza",
1582
+ "envVarsTitle": "Variabili d'ambiente",
1583
+ "envVar1": "• I18N_SOURCE_DIR: sovrascrive il percorso della directory di origine predefinita",
1584
+ "envVar2": "• I18N_OUTPUT_DIR: sovrascrive il percorso della directory di output predefinito",
1585
+ "envVar3": "• I18N_DEBUG: abilita la modalità debug (vero/falso)",
1586
+ "cliUsageTitle": "Esempi di utilizzo della CLI",
1587
+ "cliUsage1": "• npx i18ntk --settings: apre il menu delle impostazioni interattive",
1588
+ "cliUsage2": "• npx i18ntk --settings --lang de: apre le impostazioni in tedesco",
1589
+ "cliUsage3": "• npx i18ntk --reset-settings: ripristina tutte le impostazioni ai valori predefiniti",
1590
+ "navigation": "Utilizzare i tasti numerici per selezionare le opzioni, \"b\" per tornare indietro",
1591
+ "editing": "Immettere nuovi valori quando richiesto oppure premere Invio per mantenerli aggiornati",
1592
+ "saving": "Utilizzare 's' per salvare le modifiche prima di uscire",
1593
+ "reset": "Utilizzare l'opzione 7 per ripristinare tutte le impostazioni ai valori predefiniti"
1594
+ },
1595
+ "categories": {
1596
+ "uiSettings": "Impostazioni dell'interfaccia utente",
1597
+ "directorySettings": "Impostazioni della rubrica",
1598
+ "processingSettings": "Impostazioni di elaborazione",
1599
+ "advancedSettings": "Impostazioni avanzate",
1600
+ "scriptDirectorySettings": "Impostazioni della directory degli script",
1601
+ "securitySettings": "Impostazioni di sicurezza",
1602
+ "autoTranslate": "Impostazioni di traduzione automatica"
1603
+ },
1604
+ "security": {
1605
+ "title": "🔐 Impostazioni di sicurezza",
1606
+ "description": "Configura la protezione tramite PIN amministratore e le opzioni di sicurezza",
1607
+ "currentPin": "PIN attuale:",
1608
+ "pinConfigured": "✅ Configurato",
1609
+ "pinNotConfigured": "❌ Non configurato",
1610
+ "pinDisplay": "Visualizzazione PIN:",
1611
+ "menu": {
1612
+ "enableDisable": "1) Abilita/Disabilita PIN amministratore",
1613
+ "setupChange": "2) Imposta/Cambia PIN amministratore",
1614
+ "sessionTimeout": "3) Timeout della sessione",
1615
+ "maxAttempts": "4) Numero massimo di tentativi falliti",
1616
+ "lockoutDuration": "5) Durata del blocco",
1617
+ "back": "b) Torna al menu principale"
1618
+ },
1619
+ "prompts": {
1620
+ "enablePin": "Abilitare la protezione tramite PIN amministratore? (sì/no):",
1621
+ "disablePin": "Disattivare la protezione tramite PIN amministratore? (sì/no):",
1622
+ "enterTimeout": "Inserisci il timeout della sessione (minuti):",
1623
+ "enterMaxAttempts": "Inserisci il numero massimo di tentativi falliti:",
1624
+ "enterLockoutDuration": "Inserisci la durata del blocco (minuti):"
1625
+ },
1626
+ "messages": {
1627
+ "pinEnabled": "Protezione PIN amministratore abilitata",
1628
+ "pinDisabled": "Protezione PIN amministratore disabilitata",
1629
+ "timeoutUpdated": "Timeout della sessione aggiornato a {minutes} minuti",
1630
+ "maxAttemptsUpdated": "Numero massimo di tentativi falliti aggiornato a {attempts}",
1631
+ "lockoutDurationUpdated": "Durata del blocco aggiornata a {minutes} minuti"
1632
+ }
1633
+ },
1634
+ "fields": {
1635
+ "backup.enabled": {
1636
+ "label": "Enable Backup",
1637
+ "description": "Enable automatic backup of settings",
1638
+ "help": "Enable/disable backup feature"
1639
+ },
1640
+ "backup.singleFileMode": {
1641
+ "label": "Single File Mode",
1642
+ "description": "Use single file for backups",
1643
+ "help": "Backup settings in a single file"
1644
+ },
1645
+ "backup.singleBackupFile": {
1646
+ "label": "Backup File Path",
1647
+ "description": "Path to the backup file",
1648
+ "help": "Path to the single backup file"
1649
+ },
1650
+ "backup.retentionDays": {
1651
+ "label": "Retention Period",
1652
+ "description": "Days to keep backup files",
1653
+ "help": "Number of days to retain old backup files"
1654
+ },
1655
+ "backup.maxBackups": {
1656
+ "label": "Maximum Backups",
1657
+ "description": "Maximum backup files to keep",
1658
+ "help": "Maximum number of backup files to keep"
1659
+ },
1660
+ "backup.confirm": {
1661
+ "label": "Confirm Backup",
1662
+ "description": "Require confirmation for backup operations",
1663
+ "help": "Confirm backup operation"
1664
+ },
1665
+ "i18nDir": {
1666
+ "label": "Elenco I18n",
1667
+ "description": "Directory contenente i file di traduzione",
1668
+ "current": "Attuale: {value}",
1669
+ "help": "Percorso della directory con i file di traduzione"
1670
+ },
1671
+ "projectRoot": {
1672
+ "label": "Radice del progetto",
1673
+ "description": "Directory principale del progetto",
1674
+ "current": "Attuale: {value}",
1675
+ "help": "Percorso della directory principale del progetto"
1676
+ },
1677
+ "checkUsage": {
1678
+ "usage_analysis_failed": "L'analisi dell'utilizzo non è riuscita",
1679
+ "usage_analysis_success": "Analisi dell'utilizzo riuscita",
1680
+ "usage_analysis_complete": "Analisi dell'utilizzo completata",
1681
+ "usage_analysis_in_progress": "Analisi dell'utilizzo in corso",
1682
+ "usage_analysis_started": "È iniziata l'analisi dell'utilizzo",
1683
+ "usage_analysis_skipped": "L'analisi dell'utilizzo è stata saltata"
1684
+ },
1685
+ "language": {
1686
+ "label": "Linguaggio dell'interfaccia",
1687
+ "description": "Lingua per l'interfaccia utente",
1688
+ "current": "Attuale: {value}",
1689
+ "help": "Seleziona la lingua dell'interfaccia preferita"
1690
+ },
1691
+ "scriptDirectories": {
1692
+ "analyzeLabel": "Analizzare le directory degli script",
1693
+ "analyzeHelp": "Analizzare le directory degli script per individuare eventuali problemi",
1694
+ "completeLabel": "Directory di installazione complete",
1695
+ "initLabel": "Inizializza le directory degli script",
1696
+ "manageLabel": "Gestisci le directory degli script",
1697
+ "sizingLabel": "Dimensionamento delle directory degli script",
1698
+ "summaryLabel": "Directory dei rapporti di riepilogo",
1699
+ "usageLabel": "Directory dei rapporti sull'utilizzo",
1700
+ "validateLabel": "Convalidare le directory degli script"
1701
+ },
1702
+ "theme": {
1703
+ "label": "Tema del colore",
1704
+ "description": "Preferenza del tema dell'interfaccia utente",
1705
+ "current": "Attuale: {value}",
1706
+ "help": "Scegli tra temi chiari e scuri"
1707
+ },
1708
+ "dateFormat": {
1709
+ "label": "Formato data",
1710
+ "description": "Formato per la visualizzazione delle date",
1711
+ "current": "Attuale: {value}",
1712
+ "help": "Scegli la modalità di visualizzazione delle date nei report"
1713
+ },
1714
+ "notifications": {
1715
+ "enabled": {
1716
+ "label": "Abilita notifiche",
1717
+ "description": "Mostra notifiche sul desktop",
1718
+ "current": "Attuale: {value}",
1719
+ "help": "Abilita le notifiche desktop per le operazioni completate"
1720
+ }
1721
+ },
1722
+ "sourceDir": {
1723
+ "label": "Directory di origine",
1724
+ "description": "Directory contenente i file di traduzione",
1725
+ "current": "Attuale: {value}",
1726
+ "help": "Percorso della directory con i file di traduzione di origine"
1727
+ },
1728
+ "sourceLanguage": {
1729
+ "label": "Lingua di partenza",
1730
+ "description": "Lingua principale per le traduzioni",
1731
+ "current": "Attuale: {value}",
1732
+ "help": "La lingua principale utilizzata come fonte per le traduzioni"
1733
+ },
1734
+ "outputDir": {
1735
+ "label": "Directory di uscita",
1736
+ "description": "Directory per i report generati",
1737
+ "current": "Attuale: {value}",
1738
+ "help": "Dove verranno salvati i report e i file elaborati"
1739
+ },
1740
+ "batchSize": {
1741
+ "label": "Dimensione del lotto",
1742
+ "description": "Numero di articoli elaborati per lotto",
1743
+ "current": "Attuale: {value}",
1744
+ "help": "Quanti file elaborare in ciascun batch"
1745
+ },
1746
+ "maxConcurrentFiles": {
1747
+ "label": "Numero massimo di file simultanei",
1748
+ "description": "Numero massimo di file elaborati contemporaneamente",
1749
+ "current": "Attuale: {value}",
1750
+ "help": "Numero massimo di file da elaborare contemporaneamente"
1751
+ },
1752
+ "sizingThreshold": {
1753
+ "label": "Soglia di dimensionamento (%)",
1754
+ "description": "Soglia per gli avvisi di variazione delle dimensioni",
1755
+ "current": "Attuale: {value}%",
1756
+ "help": "Soglia percentuale per il rilevamento delle discrepanze dimensionali"
1757
+ },
1758
+ "strictMode": {
1759
+ "label": "Modalità di convalida rigorosa",
1760
+ "description": "Abilita la modalità di convalida rigorosa",
1761
+ "current": "Attuale: {value}",
1762
+ "help": "Abilita una convalida rigorosa per i file di traduzione"
1763
+ },
1764
+ "enableAuditLog": {
1765
+ "label": "Abilita registro di controllo",
1766
+ "description": "Tieni traccia di tutte le modifiche alla traduzione",
1767
+ "current": "Attuale: {value}",
1768
+ "help": "Registra tutte le modifiche apportate ai file di traduzione"
1769
+ },
1770
+ "backupBeforeChanges": {
1771
+ "label": "Backup automatico",
1772
+ "description": "Crea backup prima delle modifiche",
1773
+ "current": "Attuale: {value}",
1774
+ "help": "Crea automaticamente i backup prima di apportare modifiche"
1775
+ },
1776
+ "advanced_maxConcurrentFiles": {
1777
+ "label": "Numero massimo di file simultanei",
1778
+ "description": "Numero massimo di file elaborati contemporaneamente",
1779
+ "current": "Attuale: {value}",
1780
+ "help": "Numero massimo di file da elaborare contemporaneamente"
1781
+ },
1782
+ "advanced_strictMode": {
1783
+ "label": "Modalità di convalida rigorosa",
1784
+ "description": "Abilita la modalità di convalida rigorosa",
1785
+ "current": "Attuale: {value}",
1786
+ "help": "Abilita una convalida rigorosa per i file di traduzione"
1787
+ },
1788
+ "adminPinEnabled": {
1789
+ "label": "Protezione PIN amministratore",
1790
+ "description": "Abilita l'autenticazione PIN amministratore per le impostazioni sensibili",
1791
+ "current": "Attuale: {value}",
1792
+ "help": "Richiedi il PIN amministratore per modificare la sicurezza e le impostazioni avanzate"
1793
+ },
1794
+ "sessionTimeout": {
1795
+ "label": "Timeout della sessione",
1796
+ "description": "Timeout della sessione di amministrazione in minuti",
1797
+ "current": "Attuale: {value} minuti",
1798
+ "help": "Per quanto tempo le sessioni di amministrazione rimangono attive prima di richiedere la riautenticazione"
1799
+ },
1800
+ "maxFailedAttempts": {
1801
+ "label": "Numero massimo di tentativi falliti",
1802
+ "description": "Numero massimo di tentativi PIN falliti prima del blocco",
1803
+ "current": "Attuale: {value} tentativi",
1804
+ "help": "Numero di tentativi PIN non riusciti consentiti prima del blocco temporaneo"
1805
+ },
1806
+ "lockoutDuration": {
1807
+ "label": "Durata del blocco",
1808
+ "description": "Durata del blocco dopo tentativi falliti",
1809
+ "current": "Attuale: {value} minuti",
1810
+ "help": "Per quanto tempo il sistema rimane bloccato dopo il numero massimo di tentativi falliti"
1811
+ },
1812
+ "scriptDirectories_analyze": {
1813
+ "label": "Analizzare le directory degli script",
1814
+ "description": "Directory personalizzate per analizzare lo script",
1815
+ "current": "Attuale: {value}",
1816
+ "help": "Specificare la directory di origine personalizzata per lo script di analisi. Lascia vuoto per utilizzare l'impostazione globale."
1817
+ },
1818
+ "scriptDirectories_complete": {
1819
+ "label": "Directory di installazione complete",
1820
+ "description": "Directory personalizzate per lo script di installazione completo",
1821
+ "current": "Attuale: {value}",
1822
+ "help": "Specificare la directory di origine personalizzata per lo script di installazione completo. Lascia vuoto per utilizzare l'impostazione globale."
1823
+ },
1824
+ "scriptDirectories_init": {
1825
+ "label": "Inizializza le directory degli script",
1826
+ "description": "Directory personalizzate per lo script di inizializzazione",
1827
+ "current": "Attuale: {value}",
1828
+ "help": "Specificare la directory di origine personalizzata per lo script di inizializzazione. Lascia vuoto per utilizzare l'impostazione globale."
1829
+ },
1830
+ "scriptDirectories_manage": {
1831
+ "label": "Gestisci le directory degli script",
1832
+ "description": "Directory personalizzate per la gestione degli script",
1833
+ "current": "Attuale: {value}",
1834
+ "help": "Specificare la directory di origine personalizzata per lo script di gestione. Lascia vuoto per utilizzare l'impostazione globale."
1835
+ },
1836
+ "scriptDirectories_sizing": {
1837
+ "label": "Dimensionamento delle directory degli script",
1838
+ "description": "Directory personalizzate per il dimensionamento dello script",
1839
+ "current": "Attuale: {value}",
1840
+ "help": "Specificare la directory di origine personalizzata per lo script di dimensionamento. Lascia vuoto per utilizzare l'impostazione globale."
1841
+ },
1842
+ "scriptDirectories_summary": {
1843
+ "label": "Directory dei rapporti di riepilogo",
1844
+ "description": "Directory personalizzate per lo script del rapporto di riepilogo",
1845
+ "current": "Attuale: {value}",
1846
+ "help": "Specificare la directory di origine personalizzata per lo script del rapporto di riepilogo. Lascia vuoto per utilizzare l'impostazione globale."
1847
+ },
1848
+ "scriptDirectories_usage": {
1849
+ "label": "Directory dei rapporti sull'utilizzo",
1850
+ "description": "Directory personalizzate per lo script del rapporto sull'utilizzo",
1851
+ "current": "Attuale: {value}",
1852
+ "help": "Specificare la directory di origine personalizzata per lo script del rapporto sull'utilizzo. Lascia vuoto per utilizzare l'impostazione globale."
1853
+ },
1854
+ "scriptDirectories_validate": {
1855
+ "label": "Convalidare le directory degli script",
1856
+ "description": "Directory personalizzate per lo script di convalida",
1857
+ "current": "Attuale: {value}",
1858
+ "help": "Specificare la directory di origine personalizzata per lo script di convalida. Lascia vuoto per utilizzare l'impostazione globale."
1859
+ },
1860
+ "security_adminPinEnabled": {
1861
+ "label": "Protezione PIN amministratore",
1862
+ "description": "Abilita l'autenticazione PIN amministratore per le impostazioni sensibili",
1863
+ "current": "Attuale: {value}",
1864
+ "help": "Richiedi il PIN amministratore per modificare la sicurezza e le impostazioni avanzate"
1865
+ },
1866
+ "fields": {
1867
+ "adminPinEnabled": {
1868
+ "label": "Protezione PIN amministratore",
1869
+ "description": "Abilita l'autenticazione PIN amministratore per le impostazioni sensibili",
1870
+ "help": "Richiedi il PIN amministratore per modificare la sicurezza e le impostazioni avanzate"
1871
+ }
1872
+ },
1873
+ "security_pinProtection_enabled": {
1874
+ "label": "Protezione PIN",
1875
+ "description": "Abilita la protezione PIN per le impostazioni sensibili",
1876
+ "current": "Attuale: {value}",
1877
+ "help": "Richiedi il PIN per modificare la sicurezza e le impostazioni avanzate"
1878
+ },
1879
+ "pinProtection_configure": {
1880
+ "label": "Configura script protetti da PIN",
1881
+ "description": "Configura quali script richiedono la protezione PIN",
1882
+ "help": "Seleziona i singoli script che richiedono l'autenticazione PIN"
1883
+ },
1884
+ "pinProtection_debugMenu": {
1885
+ "label": "Menu Strumenti di debug",
1886
+ "description": "Richiedi PIN per il menu Strumenti di debug",
1887
+ "current": "Attuale: {value}",
1888
+ "help": "Abilita la protezione PIN per accedere agli strumenti di debug"
1889
+ },
1890
+ "pinProtection_deleteReports": {
1891
+ "label": "Elimina rapporti",
1892
+ "description": "Richiedi PIN per eliminare i report",
1893
+ "current": "Attuale: {value}",
1894
+ "help": "Abilita la protezione PIN per l'eliminazione dei report"
1895
+ },
1896
+ "pinProtection_summaryReports": {
1897
+ "label": "Rapporti riassuntivi",
1898
+ "description": "Richiedi PIN per i rapporti di riepilogo",
1899
+ "current": "Attuale: {value}",
1900
+ "help": "Abilita la protezione PIN per la generazione di report di riepilogo"
1901
+ },
1902
+ "pinProtection_settingsMenu": {
1903
+ "label": "Menù Impostazioni",
1904
+ "description": "Richiedi PIN per il menu Impostazioni",
1905
+ "current": "Attuale: {value}",
1906
+ "help": "Abilita la protezione PIN per accedere alle impostazioni"
1907
+ },
1908
+ "pinProtection_initScript": {
1909
+ "label": "Inizializza script",
1910
+ "description": "Richiedi PIN per inizializza script",
1911
+ "current": "Attuale: {value}",
1912
+ "help": "Abilita la protezione PIN per l'esecuzione dello script di inizializzazione"
1913
+ },
1914
+ "pinProtection_resetDefaults": {
1915
+ "label": "Reimposta la protezione PIN",
1916
+ "description": "Ripristina tutte le impostazioni di protezione PIN ai valori predefiniti",
1917
+ "help": "Ripristina tutte le protezioni PIN script individuali sui valori predefiniti"
1918
+ },
1919
+ "removeUiLanguages": {
1920
+ "label": "Rimuovi le lingue dell'interfaccia utente",
1921
+ "description": "Rimuovere le lingue dell'interfaccia utente che non sono installate",
1922
+ "help": "Rimuovere le lingue dell'interfaccia utente che non sono installate nel sistema"
1923
+ },
1924
+ "${helperKey}": {
1925
+ "help": "Aiuto"
1926
+ },
1927
+ "reports_format": {
1928
+ "label": "Formato del rapporto",
1929
+ "help": "Scegli il markdown per report leggibili, JSON per l'automazione o testo per log semplici."
1930
+ },
1931
+ "autoTranslate_placeholderMode": {
1932
+ "label": "Modalità di gestione dei segnaposto",
1933
+ "help": "Come vengono gestite le stringhe contenenti segnaposto durante la traduzione automatica."
1934
+ },
1935
+ "autoTranslate_concurrency": {
1936
+ "label": "Richieste di traduzione simultanea",
1937
+ "help": "Numero massimo di richieste simultanee del fornitore. Google ne supporta fino a 100 in i18ntk; DeepL e LibreTranslate hanno un limite inferiore."
1938
+ },
1939
+ "autoTranslate_batchSize": {
1940
+ "label": "Segmenti di testo per batch",
1941
+ "help": "Numero di segmenti di testo pianificati per batch."
1942
+ },
1943
+ "autoTranslate_progressInterval": {
1944
+ "label": "Intervallo di aggiornamento dell'avanzamento",
1945
+ "help": "Segmenti di testo completati tra gli aggiornamenti di avanzamento."
1946
+ },
1947
+ "autoTranslate_retryCount": {
1948
+ "label": "Riprova il conteggio",
1949
+ "help": "Numero massimo di tentativi per richiesta non riuscita."
1950
+ },
1951
+ "autoTranslate_retryDelay": {
1952
+ "label": "Ritardo tentativi (ms)",
1953
+ "help": "Ritardo tra tentativi di base in millisecondi."
1954
+ },
1955
+ "autoTranslate_timeout": {
1956
+ "label": "Richiedi timeout (ms)",
1957
+ "help": "Timeout della richiesta del fornitore di traduzione."
1958
+ },
1959
+ "autoTranslate_dryRunFirst": {
1960
+ "label": "Prima un'anteprima di prova",
1961
+ "help": "Visualizza in anteprima ciò che verrà tradotto prima di scrivere i file."
1962
+ },
1963
+ "autoTranslate_onlyMissingOrEnglish": {
1964
+ "label": "Mancano solo le chiavi inglesi",
1965
+ "help": "Mantieni i valori di destinazione tradotti esistenti e traduci solo i valori mancanti, marcatori, copia sorgente o probabili valori inglesi."
1966
+ },
1967
+ "autoTranslate_reportStdout": {
1968
+ "label": "Stampa il rapporto sul terminale",
1969
+ "help": "Stampa il report post-traduzione su stdout."
1970
+ },
1971
+ "autoTranslate_bom": {
1972
+ "label": "Scrivi distinta base UTF-8",
1973
+ "help": "Scrivi file JSON tradotti con una distinta base UTF-8."
1974
+ },
1975
+ "autoTranslate_protectionEnabled": {
1976
+ "label": "Proteggi i termini, le chiavi, i valori del brand",
1977
+ "help": "Abilita termini, chiavi, valori e modelli protetti modificabili dall'utente."
1978
+ },
1979
+ "autoTranslate_protectionFile": {
1980
+ "label": "File JSON di protezione",
1981
+ "help": "File JSON del progetto contenente le regole di protezione della traduzione automatica."
1982
+ },
1983
+ "autoTranslate_promptProtectionSetup": {
1984
+ "label": "Chiedere di creare un file di protezione",
1985
+ "help": "Chiedi di creare il file di protezione alla prima esecuzione della traduzione automatica."
1986
+ },
1987
+ "autoTranslate_promptProtectionUpdate": {
1988
+ "label": "Chiedere di aggiornare le regole di protezione",
1989
+ "help": "Chiedi se aggiornare le regole di protezione prima delle traduzioni del manager."
1990
+ },
1991
+ "backup": {
1992
+ "enabled": {
1993
+ "label": "Abilita backup",
1994
+ "description": "Abilita il backup automatico delle impostazioni",
1995
+ "help": "Abilita/disabilita la funzionalità di backup"
1996
+ },
1997
+ "singleFileMode": {
1998
+ "label": "Modalità file singolo",
1999
+ "description": "Utilizza un singolo file per i backup",
2000
+ "help": "Impostazioni di backup in un unico file"
2001
+ },
2002
+ "singleBackupFile": {
2003
+ "label": "Percorso del file di backup",
2004
+ "description": "Percorso del file di backup",
2005
+ "help": "Percorso del singolo file di backup"
2006
+ },
2007
+ "retentionDays": {
2008
+ "label": "Periodo di conservazione",
2009
+ "description": "Giorni in cui conservare i file di backup",
2010
+ "help": "Numero di giorni per conservare i vecchi file di backup"
2011
+ },
2012
+ "maxBackups": {
2013
+ "label": "Backup massimi",
2014
+ "description": "Numero massimo di file di backup da conservare",
2015
+ "help": "Numero massimo di file di backup da conservare"
2016
+ },
2017
+ "confirm": {
2018
+ "label": "Conferma il backup",
2019
+ "description": "Richiedi conferma per le operazioni di backup",
2020
+ "help": "Conferma l'operazione di backup"
2021
+ }
2022
+ }
2023
+ },
2024
+ "actions": {
2025
+ "editSetting": "Modificare {setting}:",
2026
+ "settingUpdated": "✅ {setting} aggiornato con successo!",
2027
+ "invalidValue": "❌ Valore non valido. Per favore riprova.",
2028
+ "pressEnter": "Premi Invio per continuare...",
2029
+ "backToMenu": "Torna al menu principale",
2030
+ "saveSuccess": "✅ Impostazioni salvate con successo!",
2031
+ "saveFailed": "❌ Impossibile salvare le impostazioni: {error}",
2032
+ "resetConfirm": "Sei sicuro di voler ripristinare tutte le impostazioni ai valori predefiniti? (sì/no):",
2033
+ "resetSuccess": "✅ Impostazioni ripristinate ai valori predefiniti con successo!",
2034
+ "importSuccess": "✅ Impostazioni importate con successo!",
2035
+ "exportSuccess": "✅ Impostazioni esportate con successo!",
2036
+ "fileNotFound": "❌File non trovato: {path}",
2037
+ "invalidFormat": "❌ Formato file delle impostazioni non valido",
2038
+ "pinProtectionUpdated": "✅ Protezione PIN per {script} aggiornato con successo!",
2039
+ "pinProtectionReset": "✅ Tutte le impostazioni di protezione PIN vengono ripristinate ai valori predefiniti!",
2040
+ "pinProtectionConfigure": "Configura la protezione PIN per singoli script",
2041
+ "pinProtectionSelectScript": "Seleziona uno script per attivare/disattivare la protezione PIN:",
2042
+ "pinProtectionCurrentStatus": "Stato attuale: {status}",
2043
+ "pinProtectionEnabled": "Abilitato",
2044
+ "pinProtectionDisabled": "Disabilitato",
2045
+ "pinProtectionToggle": "Attiva/disattiva la protezione tramite PIN",
2046
+ "pinProtectionResetAll": "Ripristina tutto ai valori predefiniti",
2047
+ "pinProtectionBack": "Torna alle Impostazioni di sicurezza"
2048
+ },
2049
+ "themes": {
2050
+ "light": "Leggero",
2051
+ "dark": "Buio",
2052
+ "system": "Sistema"
2053
+ },
2054
+ "languages": {
2055
+ "en": "Inglese",
2056
+ "de": "tedesco",
2057
+ "es": "spagnolo",
2058
+ "fr": "francese",
2059
+ "ru": "russo",
2060
+ "ja": "giapponese",
2061
+ "zh": "cinese",
2062
+ "it": "Italiano",
2063
+ "pt": "Portoghese",
2064
+ "nl": "Olandese",
2065
+ "pl": "Polacco",
2066
+ "sv": "Svedese",
2067
+ "uk": "Ucraino",
2068
+ "cs": "Ceco",
2069
+ "tr": "Turco",
2070
+ "ko": "Coreano",
2071
+ "ar": "Arabo",
2072
+ "hi": "Hindi",
2073
+ "th": "Tailandese",
2074
+ "vi": "Vietnamita",
2075
+ "he": "Ebraico",
2076
+ "el": "Greco",
2077
+ "hu": "Ungherese"
2078
+ },
2079
+ "viewAll": {
2080
+ "title": "Visualizza tutte le impostazioni"
2081
+ },
2082
+ "current": "Attuale",
2083
+ "back": "Torna al menu principale",
2084
+ "selectSettingPrompt": "Selezionare l'impostazione da modificare (o b per indietro, r per ripristinare):",
2085
+ "invalidOption": "Opzione non valida.",
2086
+ "editing": "Modifica",
2087
+ "enterNewValue": "Inserisci un nuovo valore (o premi Invio per mantenerlo aggiornato, digita \"default\" per utilizzare le impostazioni predefinite del sistema):",
2088
+ "validOptions": "Opzioni valide",
2089
+ "updatedSuccessfully": "aggiornato con successo!",
2090
+ "noHelp": "Nessun aiuto disponibile per questa impostazione",
2091
+ "resetScriptDirectories": "Ripristina i valori predefiniti",
2092
+ "resetScriptDirectoriesTitle": "Ripristina le directory degli script sui valori predefiniti",
2093
+ "resetScriptDirectoriesWarning1": "Ciò ripristinerà tutte le configurazioni della directory degli script sui valori predefiniti del sistema.",
2094
+ "resetScriptDirectoriesWarning2": "Tutti i percorsi di directory personalizzati verranno cancellati. Questa azione non può essere annullata.",
2095
+ "resetScriptDirectoriesConfirm": "Sei sicuro di voler ripristinare tutte le directory degli script sui valori predefiniti? (sì/no):",
2096
+ "backup": {
2097
+ "title": "Impostazioni di backup",
2098
+ "description": "Effettua il backup delle impostazioni correnti in un file",
2099
+ "confirm": "Sei sicuro di voler eseguire il backup delle impostazioni correnti? (sì/no):",
2100
+ "success": "✅ Impostazioni salvate con successo su {backupFile}",
2101
+ "failed": "❌ Impossibile eseguire il backup delle impostazioni: {error}",
2102
+ "enabled": "Abilita backup",
2103
+ "enabledHelp": "Abilita/disabilita la funzionalità di backup",
2104
+ "singleFileMode": "Modalità file singolo",
2105
+ "singleFileModeHelp": "Impostazioni di backup in un unico file",
2106
+ "singleBackupFile": "Singolo file di backup",
2107
+ "singleBackupFileHelp": "Percorso del singolo file di backup",
2108
+ "retentionDays": "Giorni di conservazione",
2109
+ "retentionDaysHelp": "Numero di giorni per conservare i vecchi file di backup",
2110
+ "maxBackups": "Backup massimi",
2111
+ "maxBackupsHelp": "Numero massimo di file di backup da conservare",
2112
+ "confirmHelp": "Conferma l'operazione di backup",
2113
+ "confirmYes": "SÌ",
2114
+ "confirmNo": "NO"
2115
+ },
2116
+ "validation": {
2117
+ "valid": "Valido",
2118
+ "validatingPaths": "Convalida dei percorsi configurati...",
2119
+ "validationComplete": "Convalida del percorso completata: {valid}/{total} valido."
2120
+ }
2121
+ },
2122
+ "summary": {
2123
+ "separator": "============================================================",
2124
+ "configurationTitle": "🔧 Configurazione:",
2125
+ "sourceLanguage": "Lingua di partenza: {sourceLanguage}",
2126
+ "supportedExtensions": "Estensioni supportate: {extensions}",
2127
+ "excludedFiles": "File esclusi: {files}",
2128
+ "reportContent": "{report}",
2129
+ "fatalError": "❌ Errore fatale: {error}",
2130
+ "helpTitle": "📊 GENERATORE DI REPORT SINTETICI I18NTK",
2131
+ "helpDescription": "Analizza la struttura delle cartelle i18n e genera un rapporto di riepilogo completo che include statistiche chiave, analisi della struttura dei file e controlli di convalida.",
2132
+ "helpUsage": "Utilizzo: nodo i18ntk-summary.js [opzioni]",
2133
+ "helpOptions": "--dir-origine <dir> Directory di origine da analizzare",
2134
+ "helpSourceDir": "--dir-origine <dir> Directory di origine da analizzare",
2135
+ "helpOutput": "--produzione <file> File di output per il report",
2136
+ "helpVerbose": "--verbose, -v Mostra informazioni dettagliate",
2137
+ "helpKeepReports": "--keep-reports Conserva i report esistenti",
2138
+ "helpDeleteReports": "--delete-reports Elimina i report esistenti",
2139
+ "helpHelp": "--help, -h Mostra questo aiuto",
2140
+ "helpExamples": "Esempi:",
2141
+ "helpExample1": "nodo i18ntk-summary.js",
2142
+ "helpExample2": "nodo i18ntk-summary.js --source-dir ./locales",
2143
+ "helpExample3": "nodo i18ntk-summary.js --output summary-report.txt",
2144
+ "helpExample4": "nodo i18ntk-summary.js --verbose",
2145
+ "helpExample5": "nodo i18ntk-summary.js --source-dir ./locales --output report.json",
2146
+ "couldNotReadFile": "⚠️ Impossibile leggere il file: {filePath}",
2147
+ "couldNotParseJSFile": "⚠️ Impossibile analizzare il file JS/TS: {filePath}",
2148
+ "errorReadingFile": "⚠️ Errore durante la lettura del file {filePath}: {error}",
2149
+ "analyzingFolder": "🔍 Analizzando la struttura delle cartelle...",
2150
+ "noLanguageDirectoriesFound": "❌ Nessuna directory della lingua trovata nella directory di origine specificata.",
2151
+ "foundLanguages": "✅Trovato {count} lingue: {languages}",
2152
+ "referenceLanguageFiles": "📁 Lingua di riferimento'{language}' ha {count} file",
2153
+ "analyzingLanguage": "🌍 Analizzare il linguaggio: {language}",
2154
+ "keysInFiles": "📊 Trovato {keys} chiavi attraverso {files} file",
2155
+ "checkingInconsistentKeys": "🔍 Verifica della presenza di chiavi incoerenti tra le lingue...",
2156
+ "generatingSummaryReport": "📝 Generazione del rapporto riepilogativo...",
2157
+ "reportTitle": "📊 I18NTK SUMMARY REPORT",
2158
+ "generated": "generato: {timestamp}",
2159
+ "sourceDirectory": "Directory di origine: {dir}",
2160
+ "overview": "📈 OVERVIEW",
2161
+ "languagesCount": "Lingue: {count}",
2162
+ "totalFiles": "File totali: {count}",
2163
+ "totalKeys": "Chiavi totali: {count}",
2164
+ "avgKeysPerLanguage": "Chiavi medie per lingua: {count}",
2165
+ "languagesBreakdown": "🌍 RIPARTIZIONE DELLE LINGUE",
2166
+ "languageBreakdown": "{language}: {files} file, {keys} chiavi",
2167
+ "fileStructure": "📁 STRUTTURA DEL FILE",
2168
+ "fileKeys": "{file}: {keys} chiavi",
2169
+ "missingInLanguages": "⚠️ Mancano: {languages}",
2170
+ "issuesFound": "❌ ISSUES FOUND",
2171
+ "missingFiles": "📁 File mancanti:",
2172
+ "emptyFiles": "📄 File vuoti:",
2173
+ "malformedFiles": "⚠️ File non validi:",
2174
+ "duplicateKeys": "🔑 Chiavi duplicate:",
2175
+ "inconsistentKeys": "🔍 Tasti incoerenti:",
2176
+ "missingKeys": "Mancante: {keys}{more}",
2177
+ "extraKeys": "Extra: {keys}{more}",
2178
+ "noIssuesFound": "✅ NO ISSUES FOUND",
2179
+ "allFilesConsistent": "Tutti i file di traduzione sono coerenti tra le lingue.",
2180
+ "recommendations": "💡 RACCOMANDAZIONI",
2181
+ "createMissingFiles": "• Creare file di traduzione mancanti",
2182
+ "addContentToEmptyFiles": "• Aggiungere contenuto ai file di traduzione vuoti",
2183
+ "fixMalformedFiles": "• Correggere i file JSON/JS non validi",
2184
+ "removeDuplicateKeys": "• Rimuovere le chiavi duplicate dai file",
2185
+ "synchronizeKeys": "• Sincronizzare le chiavi in ​​tutte le lingue",
2186
+ "splitLargeFiles": "• Considerare la suddivisione di file di grandi dimensioni in spazi dei nomi più piccoli",
2187
+ "addMoreLanguages": "• Considerare l'aggiunta di più lingue",
2188
+ "nextSteps": "🎯 NEXT STEPS",
2189
+ "nextStep1": "1. Risolvi eventuali problemi identificati sopra",
2190
+ "nextStep2": "2. Eseguire la convalida per garantire la coerenza",
2191
+ "nextStep3": "3. Considera l'utilizzo di i18ntk-validate per una convalida dettagliata",
2192
+ "nextStep4": "4. Si raccomanda un monitoraggio regolare",
2193
+ "couldNotFindI18nDirectory": "❌ Impossibile trovare la directory i18n. Si prega di specificare --source-dir.",
2194
+ "sourceDirectoryDoesNotExist": "❌ La directory di origine non esiste: {dir}",
2195
+ "i18nSummaryReportGenerator": "📊 Generatore di report di riepilogo I18N",
2196
+ "analysisComplete": "✅ Analisi completata",
2197
+ "analyzedLanguages": "📊 Lingue analizzate: {count}",
2198
+ "processedFiles": "📁 File elaborati: {count}",
2199
+ "foundTranslationKeys": "🔑 Chiavi di traduzione trovate: {count}",
2200
+ "foundIssues": "❌Trovato {count} problemi",
2201
+ "noIssuesConsole": "✅ Nessun problema trovato: tutti i file sono coerenti!",
2202
+ "errorDuringAnalysis": "❌ Errore durante l'analisi: {error}",
2203
+ "usageReportTitle": "📊 I18NTK USAGE REPORT",
2204
+ "usageReportGenerated": "generato: {timestamp}",
2205
+ "usageReportSourceDir": "Directory di origine: {sourceDir}",
2206
+ "usageReportI18nDir": "Directory I18n: {i18nDir}",
2207
+ "usageReportSummary": "📈 SUMMARY",
2208
+ "usageReportSourceFilesScanned": "File di origine scansionati: {count}",
2209
+ "usageReportTranslationFilesFound": "File di traduzione trovati: {count}",
2210
+ "usageReportAvailableKeys": "Chiavi di traduzione disponibili: {count}",
2211
+ "usageReportUsedKeys": "Chiavi di traduzione utilizzate: {count}",
2212
+ "usageReportDynamicKeys": "Chiavi di traduzione dinamica: {count}",
2213
+ "usageReportUnusedKeys": "Chiavi di traduzione non utilizzate: {count}",
2214
+ "usageReportMissingKeys": "Chiavi di traduzione mancanti: {count}",
2215
+ "usageReportNotTranslatedKeys": "Chiavi non tradotte: {count}",
2216
+ "usageReportTranslationCompleteness": "🌍 COMPLETEZZA DELLA TRADUZIONE",
2217
+ "usageReportLanguageCompleteness": "{language}: {completeness}% ({translated}/{total})",
2218
+ "usageReportNotTranslatedInLanguage": "Non tradotto: {count} chiavi",
2219
+ "usageReportTranslationFilesDiscovered": "📁 FILE DI TRADUZIONE",
2220
+ "usageReportFileInfo": "{relativePath} (spazio dei nomi: {namespace}, tipo: {type})",
2221
+ "usageReportUnusedTranslationKeys": "🗑️ CHIAVI DI TRADUZIONE NON UTILIZZATE",
2222
+ "usageReportUnusedKeysDescription": "Queste chiavi esistono nei file di traduzione ma non vengono utilizzate nel codice sorgente:",
2223
+ "usageReportUnusedKey": "• {key}",
2224
+ "usageReportMoreUnusedKeys": "... E {count} più chiavi inutilizzate",
2225
+ "usageReportMissingTranslationKeys": "❌ CHIAVI DI TRADUZIONE MANCANTI",
2226
+ "usageReportMissingKeysDescription": "Queste chiavi sono utilizzate nel codice sorgente ma mancano nei file di traduzione:",
2227
+ "usageReportMissingKey": "• {key}",
2228
+ "usageReportUsedIn": "Utilizzato in: {filePath}",
2229
+ "usageReportMoreFiles": "... E {count} più file",
2230
+ "usageReportDynamicTranslationKeys": "⚡ TASTI DI TRADUZIONE DINAMICA",
2231
+ "usageReportDynamicKeysDescription": "Queste chiavi vengono utilizzate dinamicamente (costruite in fase di esecuzione):",
2232
+ "usageReportDynamicKey": "• {key}",
2233
+ "usageReportFileUsageBreakdown": "📊 RIPARTIZIONE UTILIZZO FILE",
2234
+ "usageReportFileUsage": "{filePath}: {count} chiavi",
2235
+ "status": {
2236
+ "generating": "⏳ Generazione...",
2237
+ "completed": "✅Completato"
2238
+ },
2239
+ "help": {
2240
+ "usage": "Utilizzo: nodo main/manage/index.js [opzioni]",
2241
+ "interactiveMode": "💡 Utilizza: nodo main/manage/index.js --command=<command> per l'esecuzione diretta",
2242
+ "initProject": "🚀 Inizializza nuove lingue",
2243
+ "analyzeTranslations": "🔍 Analizza le traduzioni",
2244
+ "validateTranslations": "✅ Convalida le traduzioni",
2245
+ "checkUsage": "📊 Controlla l'utilizzo della chiave",
2246
+ "showHelp": "📖 Usa: node main/manage/index.js --help per i comandi disponibili",
2247
+ "availableCommands": "📖 Comandi disponibili:",
2248
+ "initCommand": "init - Inizializza nuove lingue",
2249
+ "analyzeCommand": "analizzare - Analizzare le traduzioni",
2250
+ "validateCommand": "validate - Convalida le traduzioni",
2251
+ "usageCommand": "utilizzo: controlla l'utilizzo della chiave",
2252
+ "sizingCommand": "dimensionamento: analizza il dimensionamento",
2253
+ "completeCommand": "complete - Traduzioni complete (copertura al 100%)",
2254
+ "summaryCommand": "riepilogo: mostra lo stato del progetto",
2255
+ "scannerCommand": "scanner: cerca problemi con i18n",
2256
+ "translateCommand": "Translate: traduce automaticamente i file locali",
2257
+ "debugCommand": "debug - Debug dei problemi di traduzione"
2258
+ },
2259
+ "test_complete_system": {
2260
+ "starting_test": "🧪 Avvio del test completo del sistema",
2261
+ "separator": "=",
2262
+ "testing_ui_translations": "📝 Test delle traduzioni dell'interfaccia utente...",
2263
+ "testing_settings_manager": "⚙️ Gestione impostazioni test...",
2264
+ "testing_main_scripts": "🔧 Test degli script principali...",
2265
+ "checking_translation_consistency": "🌐 Verifica della coerenza della traduzione...",
2266
+ "non_critical_missing_keys": "ℹ️ {file}: {count} chiavi mancanti non critiche",
2267
+ "extra_keys": "ℹ️ {file}: {count} chiavi aggiuntive",
2268
+ "generating_report": "📊 Generazione del rapporto...",
2269
+ "final_test_report_title": "📋 FINAL TEST REPORT",
2270
+ "passed": "✅Superato: {passed}",
2271
+ "failed": "❌ Non riuscito: {failed}",
2272
+ "warnings": "⚠️ Avvertenze: {warnings}",
2273
+ "missing_translations_title": "🔍 Traduzioni mancanti ({count}):",
2274
+ "missing_translation_key": "- {key}",
2275
+ "missing_translations_more": "... E {count} Di più",
2276
+ "errors_title": "❌ Errori:",
2277
+ "error_message": "- {error}",
2278
+ "overall_status": "📊 Stato generale: {status}",
2279
+ "success_message": "✅ {message}",
2280
+ "failure_message": "❌ {message}",
2281
+ "failure_error_message": "{errorMessage}",
2282
+ "warning_message": "⚠️ {message}",
2283
+ "test_runner_failed": "❌ Il test runner non è riuscito:",
2284
+ "recommendations": {
2285
+ "add_missing_translation_keys": "Aggiungi le chiavi di traduzione mancanti per mantenere la coerenza",
2286
+ "fix_failing_scripts": "Correggi gli script non riusciti prima della distribuzione",
2287
+ "review_warning_messages": "Esaminare e risolvere i messaggi di avviso",
2288
+ "system_ready_for_deployment": "Il sistema è pronto per la distribuzione"
2289
+ },
2290
+ "hardcodedTexts": {
2291
+ "addMissingTranslationKeys": "Aggiungi le chiavi di traduzione mancanti per mantenere la coerenza",
2292
+ "fixFailingScripts": "Correggi gli script non riusciti prima della distribuzione",
2293
+ "reviewWarningMessages": "Esaminare e risolvere i messaggi di avviso",
2294
+ "systemReadyForDeployment": "Il sistema è pronto per la distribuzione"
2295
+ }
2296
+ },
2297
+ "testConsoleI18n": {
2298
+ "found_target_file": "File di destinazione trovato: {fileName}",
2299
+ "scanning_files_for_console_statements": "Scansione dei file per le istruzioni della console in corso...",
2300
+ "found_javascript_files": "Trovato {count} File JavaScript.",
2301
+ "console_i18n_analysis_results": "Risultati dell'analisi della console I18n",
2302
+ "total_console_statements": "Totale dichiarazioni della console: {count}",
2303
+ "translated_statements": "Dichiarazioni tradotte: {count}",
2304
+ "hardcoded_statements": "Dichiarazioni hardcoded: {count}",
2305
+ "translation_coverage": "Copertura della traduzione: {percentage}%",
2306
+ "coverage_by_file": "Copertura per file:",
2307
+ "file_coverage_stats": "{emoji} {fileName}: {coverage}% ({translated}/{total})",
2308
+ "hardcoded_console_statements": "Istruzioni della console hardcoded:",
2309
+ "file_header": "File: {file}",
2310
+ "line_statement": "Linea {line}: {statement}",
2311
+ "suggested_key": "Chiave suggerita: {key}",
2312
+ "suggested_replacement": "Sostituzione suggerita: {replacement}",
2313
+ "recommendations": "Raccomandazioni:",
2314
+ "recommendation_1": "1. Sostituisci le stringhe codificate con le chiamate i18n.t().",
2315
+ "recommendation_2": "2. Aggiungi nuove chiavi ai file JSON di traduzione pertinenti.",
2316
+ "recommendation_3": "3. Assicurarsi che tutti i messaggi della console siano rivolti all'utente e richiedano la traduzione.",
2317
+ "recommendation_4": "4. Utilizzare valori letterali modello o concatenazione di stringhe per messaggi dinamici, passando variabili a i18n.t().",
2318
+ "translation_keys_to_add": "Chiavi di traduzione suggerite da aggiungere:",
2319
+ "add_keys_instruction": "Copia la seguente struttura JSON nei file di traduzione:",
2320
+ "perfect_translation_coverage": "Copertura della traduzione perfetta!",
2321
+ "all_statements_using_translation": "Tutte le istruzioni della console utilizzano il sistema di traduzione.",
2322
+ "i18n_console_translation_checker": "Controllo traduzione console I18n",
2323
+ "script_description_line1": "Questo script esegue la scansione di tutti i file JavaScript per le istruzioni della console",
2324
+ "script_description_line2": "e controlla se stanno utilizzando il sistema di traduzione.",
2325
+ "analysis_completed_in_duration": "Analisi completata nel {duration} secondi.",
2326
+ "report_saved_to_path": "Rapporto salvato in: {path}",
2327
+ "found_hardcoded_messages": "Trovato {count} messaggi codificati. Uscita con codice errore 1.",
2328
+ "all_console_messages_use_translation": "Tutti i messaggi della console utilizzano la traduzione. Uscire con il codice 0.",
2329
+ "consoleTranslationsCheck": "Controllo delle traduzioni della console"
2330
+ },
2331
+ "translate_mismatches": {
2332
+ "title": "🌐 Assistente alla traduzione {dryRun}",
2333
+ "separator": "=====================================",
2334
+ "processing_file": "📄 Elaborazione {language}.json...",
2335
+ "translation_summary_title": "📊 Riepilogo della traduzione:",
2336
+ "total_translations_applied": "Traduzioni totali applicate: {totalTranslations}",
2337
+ "run_with_apply_instruction": "💡 Esegui con --apply per applicare queste traduzioni",
2338
+ "no_translation_mappings": "⚠️ Nessuna mappatura di traduzione disponibile per {language}",
2339
+ "translation_applied": "✅ {key}: \"{oldValue}\" → \"{newValue}\"",
2340
+ "saved_translations": "💾 Salvato {count} traduzioni a {filename}",
2341
+ "found_translatable_items": "🔍Trovato {count} elementi traducibili",
2342
+ "no_automatic_translations": "✨ Non sono disponibili traduzioni automatiche",
2343
+ "error_processing_file": "❌Errore nell'elaborazione {filename}: {errorMessage}",
2344
+ "coverage_report_title": "📊 Rapporto sulla copertura della traduzione",
2345
+ "coverage_report_separator": "===============================",
2346
+ "file_header": "📄 {filename}:",
2347
+ "total_keys": "Chiavi totali: {total}",
2348
+ "translated_keys": "Tradotto: {translated}",
2349
+ "untranslated_markers": "Indicatori non tradotti: {untranslated}",
2350
+ "contains_english": "Contiene inglese: {hasEnglish}",
2351
+ "coverage_percentage": "Copertura: {coverage}%",
2352
+ "error_general": "❌ Errore:",
2353
+ "use_help": "Utilizzare --help per informazioni sull'utilizzo"
2354
+ },
2355
+ "cleaningUpReportFiles": "Eliminazione dei vecchi file di report...",
2356
+ "couldNotDelete": "Impossibile eliminare {file}: {error}",
2357
+ "deletedOldReportFiles": "Eliminato {count} vecchi file di report.",
2358
+ "errorCleaningUpReports": "Errore durante la pulizia dei report: {error}",
2359
+ "noOldReportFilesToDelete": "Nessun vecchio file di report da eliminare.",
2360
+ "reportFilesPreserved": "Segnala i file conservati.",
2361
+ "reportSaveFailed": "Impossibile salvare il rapporto in: {reportPath}",
2362
+ "reportSaved": "Rapporto salvato in: {reportPath}"
2363
+ },
2364
+ "ui": {
2365
+ "autoDetectedI18nDirectory": "Directory i18n rilevata automaticamente: {path}",
2366
+ "executingCommand": "Esecuzione del comando: {command}",
2367
+ "unknownCommand": "Comando sconosciuto: {command}",
2368
+ "errorExecutingCommand": "Errore durante l'esecuzione del comando: {error}",
2369
+ "errorLoadingTranslationFile": "Errore durante il caricamento del file di traduzione per '{language}': {error}",
2370
+ "errorSavingLanguagePreference": "Errore durante il salvataggio della preferenza della lingua: {error}",
2371
+ "noActiveReadlineInterface": "Nessuna interfaccia readline attiva disponibile",
2372
+ "uiLanguageUpdated": "Lingua dell'interfaccia utente aggiornata a: {language}",
2373
+ "selectOptionPrompt": "Seleziona un'opzione:",
2374
+ "pressEnterToReturn": "Premere Invio per tornare al menu principale...",
2375
+ "detectedSourceDirectory": "Directory di origine rilevata: {sourceDir}",
2376
+ "detectedI18nDirectory": "Directory i18n rilevata: {directory}",
2377
+ "toolkitTitle": "i18ntk: kit di strumenti di gestione aziendale i18n",
2378
+ "versionInfo": "Versione: {version}",
2379
+ "releaseDate": "Data di rilascio: {date}",
2380
+ "maintainer": "Manutentore: {maintainer}",
2381
+ "nodeVersion": "Node.js: {version}",
2382
+ "license": "Licenza: {license}",
2383
+ "whatsNew": "✨ Novità nel v{version}:",
2384
+ "changeItem": "{change}",
2385
+ "documentation": "📚 Documentazione: {url}",
2386
+ "issues": "🐛 Problemi: {url}",
2387
+ "versionInfoUnavailable": "Informazioni sulla versione i18ntk non disponibili",
2388
+ "versionInfoError": "Errore: {error}"
2389
+ },
2390
+ "validateLanguagePurity": {
2391
+ "phrase_debug_tools": "strumenti di debug",
2392
+ "phrase_settings": "impostazioni",
2393
+ "phrase_configuration": "configurazione",
2394
+ "phrase_invalid_choice": "scelta non valida",
2395
+ "phrase_please_select": "per favore seleziona",
2396
+ "phrase_back_to_main_menu": "torna al menu principale",
2397
+ "phrase_error": "errore",
2398
+ "phrase_warning": "avvertimento",
2399
+ "phrase_success": "successo",
2400
+ "phrase_failed": "fallito",
2401
+ "phrase_loading": "caricamento",
2402
+ "phrase_saving": "risparmio",
2403
+ "phrase_full_system_debug": "debug completo del sistema",
2404
+ "phrase_configuration_debug": "debug della configurazione",
2405
+ "phrase_translation_debug": "debug della traduzione",
2406
+ "phrase_performance_debug": "debug delle prestazioni",
2407
+ "phrase_admin_pin_setup": "configurazione del pin amministratore",
2408
+ "phrase_enter_admin_pin": "inserisci il pin amministratore",
2409
+ "phrase_confirm_admin_pin": "conferma il pin amministratore",
2410
+ "phrase_authentication_failed": "l'autenticazione non è riuscita",
2411
+ "phrase_access_denied": "accesso negato",
2412
+ "phrase_security_log": "registro di sicurezza",
2413
+ "language_german": "tedesco",
2414
+ "language_french": "francese",
2415
+ "language_spanish": "spagnolo",
2416
+ "language_russian": "russo",
2417
+ "language_japanese": "giapponese",
2418
+ "language_chinese": "cinese",
2419
+ "validator_title": "🔍 Validatore della purezza del linguaggio",
2420
+ "validating_file": "📄 Convalida {language}.json ({name})...",
2421
+ "valid_file_message": "✅ Valido - Nessuna violazione della purezza della lingua",
2422
+ "invalid_file_message": "❌ Non valido - {count} violazione/i rilevata/e",
2423
+ "no_validation_rules": "Nessuna regola di convalida definita per la lingua: {language}",
2424
+ "error_reading_file": "Errore durante la lettura del file: {errorMessage}",
2425
+ "issue_forbidden_marker": "Contiene un indicatore proibito: {marker}",
2426
+ "issue_english_phrase": "Contiene la frase inglese: \"{phrase}\"",
2427
+ "issue_english_words": "Contiene parole inglesi: {words}",
2428
+ "issue_missing_cyrillic": "Il testo lungo deve contenere caratteri cirillici per il russo",
2429
+ "issue_missing_japanese": "Il testo lungo deve contenere caratteri giapponesi",
2430
+ "issue_missing_chinese": "Il testo lungo deve contenere caratteri cinesi",
2431
+ "summary_title": "📊RIEPILOGO CONVALIDA",
2432
+ "overall_results_header": "📋 Risultati complessivi:",
2433
+ "total_files_validated": "File totali convalidati: {count}",
2434
+ "valid_files": "File validi: {count}",
2435
+ "invalid_files": "File non validi: {count}",
2436
+ "total_violations": "Violazioni totali: {count}",
2437
+ "violations_by_file_header": "❌ VIOLAZIONI PER FILE:"
2438
+ },
2439
+ "workflow": {
2440
+ "title": "Gestione del flusso di lavoro",
2441
+ "description": "Gestisci i flussi di lavoro i18n.",
2442
+ "select_workflow_file": "Seleziona un file del flusso di lavoro da eseguire:",
2443
+ "no_workflow_files": "Nessun file del flusso di lavoro trovato nella directory dei flussi di lavoro.",
2444
+ "invalid_selection": "Selezione non valida. Inserisci un numero corrispondente a un file di flusso di lavoro.",
2445
+ "workflow_execution_started": "Avvio del flusso di lavoro: {workflowName}",
2446
+ "workflow_execution_completed": "Flusso di lavoro completato: {workflowName}",
2447
+ "workflow_execution_failed": "Flusso di lavoro non riuscito: {workflowName} - {error}",
2448
+ "workflow_cancelled": "Esecuzione del flusso di lavoro annullata.",
2449
+ "press_enter_to_continue": "Premi Invio per continuare!",
2450
+ "starting": "🚀 Avvio del flusso di lavoro...",
2451
+ "completed": "✅ Flusso di lavoro completato con successo!",
2452
+ "checkReports": "📄 Controlla i report per i dettagli.",
2453
+ "exitingCompleted": "📝 Flusso di lavoro completato. Uscendo...",
2454
+ "summary": {
2455
+ "title": "📋 WORKFLOW SUMMARY",
2456
+ "separator": "===================",
2457
+ "completedAt": "🕐 Flusso di lavoro completato alle: {timestamp}",
2458
+ "initialViolations": "📊 Violazioni iniziali: {count}",
2459
+ "finalViolations": "📉 Violazioni finali: {count}",
2460
+ "totalFixes": "🔧 Correzioni totali applicate: {count}",
2461
+ "improvement": "📈 Miglioramento: {percentage}%",
2462
+ "stepResults": "📝 STEP RESULTS:",
2463
+ "stepDetail": "{number}. {status} {stepName}",
2464
+ "violations": "Violazioni: {count}",
2465
+ "fixesApplied": "Correzioni applicate: {count}",
2466
+ "nextSteps": "💡 NEXT STEPS:",
2467
+ "congratulations": "🎉 Congratulazioni! Tutti i file locali ora hanno una purezza linguistica perfetta!",
2468
+ "cicdIntegration": "✅ Prendi in considerazione l'integrazione del validatore nella tua pipeline CI/CD",
2469
+ "automatedChecks": "✅ Imposta controlli automatizzati per le nuove traduzioni",
2470
+ "greatProgress": "🎯Grandi progressi! La maggior parte dei problemi sono stati risolti.",
2471
+ "manualReview": "🔍 Rivedi manualmente le restanti violazioni",
2472
+ "addMappings": "🌐 Prendi in considerazione l'aggiunta di ulteriori mappature di traduzione per i casi limite",
2473
+ "goodProgress": "📈 Sono stati fatti buoni progressi, ma è necessario ulteriore lavoro.",
2474
+ "expandMappings": "🔧 Espandi le mappature di traduzione automatica",
2475
+ "professionalReview": "👥 Prendi in considerazione la revisione manuale di traduzioni complesse",
2476
+ "runAgain": "🔄 Esegui nuovamente il flusso di lavoro dopo aver aggiunto altre mappature",
2477
+ "limitedProgress": "⚠️ Progressi limitati. Potrebbe essere necessario un intervento manuale.",
2478
+ "reviewMappings": "🔍 Rivedi le mappature delle traduzioni e aggiungi quelle mancanti",
2479
+ "professionalServices": "👥 Considera i servizi di traduzione professionale",
2480
+ "checkIssues": "🔧 Verifica la presenza di problemi sistematici nei file locali",
2481
+ "success": "✅",
2482
+ "warning": "⚠️"
2483
+ }
2484
+ },
2485
+ "consoleI18nTester": {
2486
+ "found_target_file": "File di destinazione trovato",
2487
+ "scanning_files_for_console_statements": "Scansione dei file per le istruzioni della console",
2488
+ "found_javascript_files": "Trovati file JavaScript",
2489
+ "console_i18n_analysis_results": "Risultati dell'analisi della console i18n",
2490
+ "total_console_statements": "Totale dichiarazioni della console",
2491
+ "translated_statements": "Dichiarazioni tradotte",
2492
+ "hardcoded_statements": "Dichiarazioni hardcoded",
2493
+ "translation_coverage": "Copertura della traduzione",
2494
+ "coverage_by_file": "Copertura per file",
2495
+ "file_coverage_stats": "Statistiche sulla copertura dei file",
2496
+ "hardcoded_console_statements": "Istruzioni della console hardcoded",
2497
+ "file_header": "Intestazione del file",
2498
+ "line_statement": "Dichiarazione di riga",
2499
+ "suggested_key": "Chiave suggerita",
2500
+ "suggested_replacement": "Sostituzione suggerita",
2501
+ "recommendations": "Raccomandazioni",
2502
+ "recommendation_1": "Raccomandazione 1",
2503
+ "recommendation_2": "Raccomandazione 2",
2504
+ "recommendation_3": "Raccomandazione 3",
2505
+ "recommendation_4": "Raccomandazione 4",
2506
+ "translation_keys_to_add": "Chiavi di traduzione da aggiungere",
2507
+ "add_keys_instruction": "Aggiungi istruzioni per i tasti",
2508
+ "perfect_translation_coverage": "Copertura della traduzione perfetta",
2509
+ "all_statements_using_translation": "Tutte le dichiarazioni utilizzano la traduzione",
2510
+ "i18n_console_translation_checker": "Controllo di traduzione della console I18n",
2511
+ "script_description_line1": "Riga di descrizione dello script1",
2512
+ "script_description_line2": "Riga di descrizione dello script2",
2513
+ "analysis_completed_in_duration": "Analisi completata in durata",
2514
+ "report_saved_to_path": "Rapporto salvato nel percorso",
2515
+ "found_hardcoded_messages": "Messaggi codificati trovati",
2516
+ "all_console_messages_use_translation": "Tutti i messaggi della console utilizzano la traduzione"
2517
+ },
2518
+ "exportTranslations": {
2519
+ "createdDirectory": "Directory creata",
2520
+ "foundFiles": "File trovati",
2521
+ "createdTemplate": "Modello creato",
2522
+ "skippedExisting": "Esistente saltato",
2523
+ "title": "Titolo",
2524
+ "creatingTemplates": "Creazione di modelli",
2525
+ "summary": "Riepilogo",
2526
+ "summaryLanguages": "Lingue riassuntive",
2527
+ "summaryFilesPerLanguage": "File di riepilogo per lingua",
2528
+ "summaryTotalFiles": "Riepilogo file totali",
2529
+ "success": "Successo",
2530
+ "location": "Posizione",
2531
+ "nextSteps": "Passaggi successivi"
2532
+ },
2533
+ "dashboard": {
2534
+ "title": "Titolo",
2535
+ "overview": "Panoramica"
2536
+ },
2537
+ "auth": {
2538
+ "title": "Titolo",
2539
+ "email": "E-mail",
2540
+ "password": "Password",
2541
+ "signIn": "Registrazione",
2542
+ "forgotPassword": "Ha dimenticato la password",
2543
+ "signUp": "Iscrizione"
2544
+ },
2545
+ "checkUsage": {
2546
+ "usage_analysis_failed": "L'analisi dell'utilizzo non è riuscita."
2547
+ },
2548
+ "completeTranslations": {
2549
+ "warning_could_not_parse_filepa": "Avviso: impossibile analizzare il percorso del file: {filePath}"
2550
+ },
2551
+ "pressEnterToContinue": "Premi Invio per continuare...",
2552
+ "status": {
2553
+ "exitingCompleted": "Flusso di lavoro completato. Uscendo..."
2554
+ },
2555
+ "prompt": {
2556
+ "yesTokens": [
2557
+ "sì",
2558
+ "SÌ"
2559
+ ],
2560
+ "noTokens": [
2561
+ "N",
2562
+ "NO"
2563
+ ]
2564
+ },
2565
+ "translate": {
2566
+ "title": "Traduzione automatica",
2567
+ "sourceDirectory": {
2568
+ "title": "Directory delle impostazioni locali di origine",
2569
+ "currentProject": "Progetto attuale: {dir}",
2570
+ "accepted": "Accettato: un percorso assoluto o un percorso relativo al progetto corrente.",
2571
+ "localeRootExample": "./locales (quindi scegli la lingua di origine: en)",
2572
+ "folderHint": "La cartella può contenere direttamente file JSON o cartelle della lingua come ./locales/en.",
2573
+ "defaultNotFound": "Directory predefinita non trovata: {dir}",
2574
+ "enterExisting": "Inserisci una directory esistente con i file locali JSON.",
2575
+ "directoryNotFound": "Directory non trovata: {dir}",
2576
+ "enterFolderExample": "Inserisci una cartella esistente, ad esempio ./locales/en.",
2577
+ "notDirectory": "Non una directory: {dir}",
2578
+ "using": "Utilizzando la directory di origine: {dir}"
2579
+ },
2580
+ "targetLanguages": {
2581
+ "title": "Lingua/e di destinazione",
2582
+ "allConfigured": "a) Tutte le lingue di destinazione configurate: {languages}",
2583
+ "noneConfigured": "a) Tutte le lingue di destinazione configurate: nessuna configurata",
2584
+ "enterCodes": "Oppure inserisci uno o più codici lingua separati da virgole/spazi.",
2585
+ "sourceExcluded": "Lingua di partenza\"{lang}\" verrà escluso automaticamente.",
2586
+ "noneSelected": "Nessuna lingua di destinazione valida selezionata. Interruzione.",
2587
+ "configureHint": "Configura le lingue predefinite in .i18ntk-config o inserisci manualmente i codici di destinazione.",
2588
+ "selected": "Lingue di destinazione: {languages}"
2589
+ },
2590
+ "protection": {
2591
+ "title": "Termini e chiavi protetti"
2592
+ },
2593
+ "common": {
2594
+ "default": "Predefinito: {value}",
2595
+ "examples": "Esempi:",
2596
+ "exampleValue": "Esempio: {value}",
2597
+ "examplesInline": "Esempi: {examples}",
2598
+ "pressEnterDefault": "Premere Invio per utilizzare l'impostazione predefinita.",
2599
+ "usingDefault": "Usando l'impostazione predefinita: {value}"
2600
+ },
2601
+ "sourceLanguage": {
2602
+ "title": "Codice della lingua di origine",
2603
+ "hint": "Dovrebbe corrispondere alla lingua dei valori JSON di origine.",
2604
+ "using": "Utilizzando la lingua di partenza: {lang}",
2605
+ "invalid": "Codice lingua non valido. Utilizza più di 2 caratteri (ad esempio en, de, fr)."
2606
+ },
2607
+ "files": {
2608
+ "title": "Quali file tradurre?",
2609
+ "all": "a) Tutti i file JSON ({count}: {files})",
2610
+ "choicePrompt": "Scelta [a/tutti o numero file]:",
2611
+ "invalidChoice": "Scelta non valida. Interruzione."
2612
+ },
2613
+ "dryRun": {
2614
+ "previewFor": "Anteprima di prova per \"{lang}\"..."
2615
+ },
2616
+ "confirm": {
2617
+ "proceed": "Procedere con la traduzione vera e propria?",
2618
+ "yesNoPrompt": "[sì]si / [n]o:",
2619
+ "cancelled": "Traduzione annullata."
2620
+ },
2621
+ "run": {
2622
+ "translatingTo": "Traducendo in \"{lang}\"...",
2623
+ "failedFor": "Non riuscito per \"{lang}\": {error}"
2624
+ },
2625
+ "summary": {
2626
+ "title": "Riepilogo:",
2627
+ "complete": "Traduzione completata!"
2628
+ },
2629
+ "nonInteractive": {
2630
+ "useDirect": "Modalità non interattiva. Utilizza invece la CLI diretta:"
2631
+ },
2632
+ "errors": {
2633
+ "sourceDirectoryNotFound": "Directory delle impostazioni locali di origine non trovata: {dir}"
2634
+ }
2635
+ }
2636
+ }