@fresh-editor/fresh-editor 0.1.71 → 0.1.74

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,29 @@
1
1
  # Release Notes
2
2
 
3
+ ## 0.1.74
4
+
5
+ ### Features
6
+
7
+ * **Italian Locale**: Full Italian translation support added across the editor and all core plugins (@fdefilippo).
8
+ * **Interactive Links in Popups**: Markdown popups (such as LSP hover) now support clickable hyperlinks (OSC 8). Clicking a link opens it in your default web browser (@Asuka-Minato).
9
+ * **Sudo Save Fallback**: When saving a file fails due to insufficient permissions, the editor now offers to save using `sudo` (Linux/macOS) (#301).
10
+ * **Improved Language Features**: Improved word navigation, auto-pairs, and multi-cursor behavior.
11
+
12
+ ### Bug Fixes
13
+
14
+ * **LSP Hover Reliability**: Fixed multiple issues with hover popups, including race conditions during rapid mouse movement, incorrect positioning on empty lines, and popups triggering past the end of a line.
15
+ * **Popup Scrollbar Drag**: You can now click and drag the scrollbar in popups (like hover and completion) to scroll through long content.
16
+ * **Inlay Hint Positioning**: Corrected inlay hint placement in Rust files to prevent them from shifting line content (#626, @Asuka-Minato).
17
+ * **Theme Editor Path Resolution**: Fixed a bug where the theme editor couldn't find the correct configuration directory on some systems.
18
+
19
+ ### Internal
20
+
21
+ * **Error Handling**: Migrated to `anyhow` for more robust error tracking and backtraces.
22
+ * **Plugin API**: Added `editor.getConfigDir()` and `editor.getThemesDir()` to the plugin API.
23
+ * **Dependency Updates**: Bumped `clap` to 4.5.54.
24
+
25
+ ---
26
+
3
27
  ## 0.1.71
4
28
 
5
29
  ### Features
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fresh-editor/fresh-editor",
3
- "version": "0.1.71",
3
+ "version": "0.1.74",
4
4
  "description": "A modern terminal-based text editor with plugin support",
5
5
  "repository": {
6
6
  "type": "git",
@@ -314,6 +314,69 @@
314
314
  "panel.help_export_footer": "EXPORT: [E]xporter vers .review/session.md | [O]general [r]afraichir",
315
315
  "debug.loaded": "Plugin de revue des differences charge avec prise en charge des commentaires"
316
316
  },
317
+ "it": {
318
+ "cmd.review_diff": "Revisiona differenze",
319
+ "cmd.review_diff_desc": "Avvia sessione di revisione del codice",
320
+ "cmd.stop_review_diff": "Interrompi revisione",
321
+ "cmd.stop_review_diff_desc": "Interrompi la sessione di revisione",
322
+ "cmd.refresh_review_diff": "Aggiorna differenze",
323
+ "cmd.refresh_review_diff_desc": "Aggiorna l'elenco delle modifiche",
324
+ "cmd.side_by_side_diff": "Diff affiancato",
325
+ "cmd.side_by_side_diff_desc": "Mostra diff affiancato per il file corrente",
326
+ "cmd.add_comment": "Revisione: Aggiungi commento",
327
+ "cmd.add_comment_desc": "Aggiungi un commento di revisione al blocco corrente",
328
+ "cmd.approve_hunk": "Revisione: Approva blocco",
329
+ "cmd.approve_hunk_desc": "Segna il blocco come approvato",
330
+ "cmd.reject_hunk": "Revisione: Rifiuta blocco",
331
+ "cmd.reject_hunk_desc": "Segna il blocco come rifiutato",
332
+ "cmd.needs_changes": "Revisione: Richiede modifiche",
333
+ "cmd.needs_changes_desc": "Segna il blocco come richiedente modifiche",
334
+ "cmd.question": "Revisione: Domanda",
335
+ "cmd.question_desc": "Segna il blocco con una domanda",
336
+ "cmd.clear_status": "Revisione: Cancella stato",
337
+ "cmd.clear_status_desc": "Cancella lo stato di revisione del blocco",
338
+ "cmd.overall_feedback": "Revisione: Feedback generale",
339
+ "cmd.overall_feedback_desc": "Imposta il feedback generale della revisione",
340
+ "cmd.export_markdown": "Revisione: Esporta in Markdown",
341
+ "cmd.export_markdown_desc": "Esporta la revisione in .review/session.md",
342
+ "cmd.export_json": "Revisione: Esporta in JSON",
343
+ "cmd.export_json_desc": "Esporta la revisione in .review/session.json",
344
+ "status.refreshing": "Aggiornamento differenze revisione...",
345
+ "status.updated": "Differenze revisione aggiornate. Trovati %{count} blocchi.",
346
+ "status.loading_diff": "Caricamento diff affiancato...",
347
+ "status.not_git_repo": "Non in un repository git",
348
+ "status.failed_old_version": "Impossibile caricare la vecchia versione del file",
349
+ "status.failed_new_version": "Impossibile caricare la nuova versione del file",
350
+ "status.diff_summary": "Diff affiancato: +%{added} -%{removed} ~%{modified} | 'q' per tornare",
351
+ "status.no_hunk_selected": "Nessun blocco selezionato per il commento",
352
+ "status.comment_added": "Commento aggiunto a %{line}",
353
+ "status.comment_cancelled": "Commento annullato",
354
+ "status.hunk_approved": "Blocco approvato",
355
+ "status.hunk_rejected": "Blocco rifiutato",
356
+ "status.hunk_needs_changes": "Blocco segnato come richiedente modifiche",
357
+ "status.hunk_question": "Blocco segnato con domanda",
358
+ "status.hunk_status_cleared": "Stato revisione blocco cancellato",
359
+ "status.feedback_set": "Feedback generale impostato",
360
+ "status.feedback_cleared": "Feedback generale cancellato",
361
+ "status.exported": "Revisione esportata in %{path}",
362
+ "status.generating": "Generazione stream differenze revisione...",
363
+ "status.review_summary": "Differenze revisione: %{count} blocchi | [c]ommenta [a]pprova [x]rifiuta [!]modifiche [?]domanda [E]sporta",
364
+ "status.stopped": "Modalità Revisione differenze interrotta.",
365
+ "status.no_file_open": "Nessun file aperto - impossibile mostrare diff",
366
+ "status.failed_git_diff": "Impossibile ottenere il diff git per il file",
367
+ "status.no_changes": "Nessuna modifica in questo file",
368
+ "status.failed_old_new_file": "Impossibile caricare la vecchia versione (il file potrebbe essere nuovo)",
369
+ "prompt.comment": "Commento su %{line}: ",
370
+ "prompt.overall_feedback": "Feedback generale: ",
371
+ "panel.no_changes": "Nessuna modifica da revisionare.",
372
+ "panel.help_review": "REVISIONE: [c]ommenta [a]pprova [x]rifiuta [!]modifiche [?]domanda [u]ndo",
373
+ "panel.help_stage": "STAGE: [s]tage [d]iscard | NAV: [n]ext [p]rev [Enter]drill [q]uit",
374
+ "panel.help_export": "EXPORT: [E] .review/session.md | [O]verall feedback | [r]efresh",
375
+ "panel.help_review_footer": "REVISIONE: [c]ommenta [a]pprova [x]rifiuta [!]richiede-modifiche [?]domanda [u]ndo",
376
+ "panel.help_stage_footer": "STAGE: [s]tage [d]iscard | NAV: [n]ext [p]rev [Enter]drill-down [q]uit",
377
+ "panel.help_export_footer": "EXPORT: [E]sporta in .review/session.md | [O]verall feedback [r]efresh",
378
+ "debug.loaded": "Plugin Revisione differenze caricato con supporto commenti"
379
+ },
317
380
  "ja": {
318
381
  "cmd.review_diff": "差分レビュー",
319
382
  "cmd.review_diff_desc": "コードレビューセッションを開始",
@@ -24,6 +24,11 @@
24
24
  "status.initialized": "Buffer Modified: initialisé pour %{path}",
25
25
  "status.cleared_on_save": "Buffer Modified: effacé lors de la sauvegarde"
26
26
  },
27
+ "it": {
28
+ "status.loaded": "Plugin Buffer Modified caricato",
29
+ "status.initialized": "Buffer Modified: inizializzato per %{path}",
30
+ "status.cleared_on_save": "Buffer Modified: cancellato al salvataggio"
31
+ },
27
32
  "ja": {
28
33
  "status.loaded": "Buffer Modifiedプラグインを読み込みました",
29
34
  "status.initialized": "Buffer Modified: %{path}を初期化しました",
@@ -34,6 +34,13 @@
34
34
  "status.opened": "Calculatrice ouverte",
35
35
  "status.copied": "Copie: {value}"
36
36
  },
37
+ "it": {
38
+ "cmd.calculator": "Calcolatrice",
39
+ "cmd.calculator_desc": "Apri calcolatrice",
40
+ "status.loaded": "Plugin calcolatrice caricato",
41
+ "status.opened": "Calcolatrice aperta",
42
+ "status.copied": "Copiato: {value}"
43
+ },
37
44
  "ja": {
38
45
  "cmd.calculator": "電卓",
39
46
  "cmd.calculator_desc": "電卓を開く",
@@ -84,6 +84,23 @@
84
84
  "status.config_not_found": "Impossible de trouver la configuration .clangd dans l'espace de travail",
85
85
  "status.file_status": "Statut du fichier Clangd: {status}"
86
86
  },
87
+ "it": {
88
+ "cmd.project_setup": "Clangd: Configurazione progetto",
89
+ "cmd.project_setup_desc": "Analizza la disponibilità di clangd per C/C++ (compile_commands.json, .clangd)",
90
+ "cmd.switch_source_header": "Clangd: Passa a Sorgente/Header",
91
+ "cmd.switch_source_header_desc": "Passa alla coppia header/sorgente usando clangd",
92
+ "cmd.open_project_config": "Clangd: Apri configurazione progetto",
93
+ "cmd.open_project_config_desc": "Apri il file .clangd più vicino",
94
+ "status.plugin_loaded": "Plugin di supporto Clangd caricato (comandi passa a header + configurazione)",
95
+ "status.no_active_file": "Clangd: nessun file attivo per il cambio",
96
+ "status.unsupported_file_type": "Clangd: tipo di file non supportato per il cambio header",
97
+ "status.opened_corresponding_file": "Clangd: aperto file corrispondente",
98
+ "status.no_matching_found": "Clangd: nessuna corrispondenza header/sorgente trovata",
99
+ "status.switch_failed": "Cambio sorgente/header Clangd fallito: {error}",
100
+ "status.opened_config": "Configurazione .clangd aperta",
101
+ "status.config_not_found": "Impossibile trovare la configurazione .clangd nell'area di lavoro",
102
+ "status.file_status": "Stato del file Clangd: {status}"
103
+ },
87
104
  "ja": {
88
105
  "cmd.project_setup": "Clangd: プロジェクト設定",
89
106
  "cmd.project_setup_desc": "C/C++ clangdの準備状況を分析 (compile_commands.json, .clangd)",
@@ -54,6 +54,17 @@
54
54
  "status.disabled": "Surligneur de Couleurs: Desactive",
55
55
  "status.loaded": "Plugin Surligneur de Couleurs charge"
56
56
  },
57
+ "it": {
58
+ "cmd.enable": "Evidenziatore colori: Attiva",
59
+ "cmd.enable_desc": "Attiva l'evidenziazione dei codici colore con campioni",
60
+ "cmd.disable": "Evidenziatore colori: Disattiva",
61
+ "cmd.disable_desc": "Disattiva l'evidenziazione dei codici colore",
62
+ "cmd.toggle": "Evidenziatore colori: Alterna",
63
+ "cmd.toggle_desc": "Alterna l'evidenziazione dei codici colore",
64
+ "status.enabled": "Evidenziatore colori: Attivato",
65
+ "status.disabled": "Evidenziatore colori: Disattivato",
66
+ "status.loaded": "Plugin Evidenziatore colori caricato"
67
+ },
57
68
  "ja": {
58
69
  "cmd.enable": "カラーハイライター: 有効化",
59
70
  "cmd.enable_desc": "カラーコードのハイライトとスウォッチ表示を有効化",
@@ -51,7 +51,8 @@
51
51
  "auto_revert_poll_interval_ms": 2000,
52
52
  "file_tree_poll_interval_ms": 3000,
53
53
  "default_line_ending": "lf",
54
- "cursor_style": "default"
54
+ "cursor_style": "default",
55
+ "quick_suggestions": true
55
56
  }
56
57
  },
57
58
  "file_explorer": {
@@ -144,6 +145,7 @@
144
145
  "en",
145
146
  "es",
146
147
  "fr",
148
+ "it",
147
149
  "ja",
148
150
  "ko",
149
151
  "pt-BR",
@@ -290,6 +292,11 @@
290
292
  "description": "Cursor style for the terminal cursor.\nOptions: blinking_block, steady_block, blinking_bar, steady_bar, blinking_underline, steady_underline\nDefault: blinking_block",
291
293
  "$ref": "#/$defs/CursorStyle",
292
294
  "default": "default"
295
+ },
296
+ "quick_suggestions": {
297
+ "description": "Enable quick suggestions (VS Code-like behavior).\nWhen enabled, completion suggestions appear automatically while typing,\nnot just on trigger characters (like `.` or `::`).\nDefault: true",
298
+ "type": "boolean",
299
+ "default": true
293
300
  }
294
301
  }
295
302
  },
@@ -29,6 +29,12 @@
29
29
  "status.restore_failed": "Echec de la restauration NuGet: {error}",
30
30
  "status.restore_error": "Erreur de restauration NuGet: {error}"
31
31
  },
32
+ "it": {
33
+ "status.restoring_packages": "Ripristino pacchetti NuGet per {project}...",
34
+ "status.restore_completed": "Ripristino NuGet completato per {project}",
35
+ "status.restore_failed": "Ripristino NuGet fallito: {error}",
36
+ "status.restore_error": "Errore ripristino NuGet: {error}"
37
+ },
32
38
  "ja": {
33
39
  "status.restoring_packages": "{project}のNuGetパッケージを復元中...",
34
40
  "status.restore_completed": "{project}のNuGet復元が完了しました",
@@ -89,6 +89,24 @@
89
89
  "panel.all_files": "Tous les Fichiers",
90
90
  "panel.current_file": "Fichier Actuel"
91
91
  },
92
+ "it": {
93
+ "cmd.show_diagnostics_panel": "Mostra pannello diagnostica",
94
+ "cmd.show_diagnostics_panel_desc": "Apri il pannello diagnostica",
95
+ "cmd.toggle_diagnostics_panel": "Alterna pannello diagnostica",
96
+ "cmd.toggle_diagnostics_panel_desc": "Alterna la visualizzazione del pannello diagnostica",
97
+ "status.loaded": "Plugin pannello diagnostica caricato",
98
+ "status.failed_to_open": "Impossibile aprire il pannello diagnostica",
99
+ "status.closed": "Pannello diagnostica chiuso",
100
+ "status.jumped_to": "Passato a {file}:{line}",
101
+ "status.move_to_diagnostic": "Sposta il cursore su una riga di diagnostica",
102
+ "status.showing": "Visualizzazione: {label}",
103
+ "status.refreshed": "Diagnostica aggiornata",
104
+ "status.diagnostics_count": "Diagnostica: {count} elementi | a: alterna filtro | RET: vai a | q: chiudi",
105
+ "panel.header": "Diagnostica ({filter}):",
106
+ "panel.no_diagnostics": "Nessuna diagnostica",
107
+ "panel.all_files": "Tutti i file",
108
+ "panel.current_file": "File corrente"
109
+ },
92
110
  "ja": {
93
111
  "cmd.show_diagnostics_panel": "診断パネルを表示",
94
112
  "cmd.show_diagnostics_panel_desc": "診断パネルを開く",
@@ -104,6 +104,27 @@
104
104
  "panel.no_references": "Aucune reference trouvee",
105
105
  "panel.help": "[Haut/Bas] naviguer [RET] sauter [q/Esc] fermer"
106
106
  },
107
+ "it": {
108
+ "cmd.show_references": "Mostra pannello riferimenti",
109
+ "cmd.show_references_desc": "Visualizza i riferimenti correnti",
110
+ "cmd.hide_references": "Nascondi pannello riferimenti",
111
+ "cmd.hide_references_desc": "Chiudi il pannello riferimenti",
112
+ "status.ready": "Plugin Trova riferimenti caricato",
113
+ "status.no_references": "Nessun riferimento trovato per '{symbol}'",
114
+ "status.found_references": "Trovati {count} riferimenti{limit} - Su/Giù naviga, RET vai a, q chiudi",
115
+ "status.showing_first": " (visualizzati i primi {max})",
116
+ "status.reference_index": "Riferimento {current}/{total}",
117
+ "status.jumped_to": "Passato a {file}:{line}",
118
+ "status.no_references_to_jump": "Nessun riferimento a cui passare",
119
+ "status.source_split_unavailable": "Split sorgente non disponibile",
120
+ "status.move_cursor": "Sposta il cursore su una riga di riferimento",
121
+ "status.closed": "Pannello riferimenti chiuso",
122
+ "status.failed_open_panel": "Impossibile aprire il pannello riferimenti",
123
+ "panel.header": "Riferimenti a {symbol} ({count}{limit})",
124
+ "panel.limited": ", limitati a {max}",
125
+ "panel.no_references": "Nessun riferimento trovato",
126
+ "panel.help": "[Su/Giù] naviga [RET] vai a [q/Esc] chiudi"
127
+ },
107
128
  "ja": {
108
129
  "cmd.show_references": "参照パネルを表示",
109
130
  "cmd.show_references_desc": "現在の参照を表示",
@@ -189,6 +189,44 @@
189
189
  "time.years_ago": "il y a {count} an",
190
190
  "time.years_ago_plural": "il y a {count} ans"
191
191
  },
192
+ "it": {
193
+ "cmd.git_blame": "Git Blame",
194
+ "cmd.git_blame_desc": "Mostra git blame per il file corrente (stile magit)",
195
+ "cmd.git_blame_close": "Git Blame: Chiudi",
196
+ "cmd.git_blame_close_desc": "Chiudi il pannello git blame",
197
+ "cmd.git_blame_go_back": "Git Blame: Torna indietro",
198
+ "cmd.git_blame_go_back_desc": "Mostra il blame al commit genitore della riga corrente",
199
+
200
+ "status.already_open": "Git blame già aperto",
201
+ "status.loading": "Caricamento git blame...",
202
+ "status.no_file": "Nessun file aperto per il blame",
203
+ "status.no_blame_info": "Nessuna informazione di blame disponibile (non è un file git o errore)",
204
+ "status.failed_open": "Impossibile aprire il pannello git blame",
205
+ "status.closed": "Git blame chiuso",
206
+ "status.blame_ready": "Git blame: {count} blocchi | b: blame al genitore | q: chiudi",
207
+ "status.move_to_line": "Sposta prima il cursore su una riga di blame",
208
+ "status.not_committed": "Questa riga non è stata ancora committata",
209
+ "status.loading_parent": "Caricamento blame a {hash}^...",
210
+ "status.cannot_go_back": "Impossibile ottenere il blame a {hash}^ (potrebbe essere il commit iniziale o il file non esisteva)",
211
+ "status.blame_at_parent": "Git blame a {hash}^ | profondità: {depth} | b: vai più a fondo | q: chiudi",
212
+ "status.hash_copied": "Copiato: {short} ({full})",
213
+ "status.hash_display": "Hash: {hash}",
214
+ "status.git_error": "Errore git blame: {error}",
215
+
216
+ "time.just_now": "proprio ora",
217
+ "time.minutes_ago": "{count} minuto fa",
218
+ "time.minutes_ago_plural": "{count} minuti fa",
219
+ "time.hours_ago": "{count} ora fa",
220
+ "time.hours_ago_plural": "{count} ore fa",
221
+ "time.days_ago": "{count} giorno fa",
222
+ "time.days_ago_plural": "{count} giorni fa",
223
+ "time.weeks_ago": "{count} settimana fa",
224
+ "time.weeks_ago_plural": "{count} settimane fa",
225
+ "time.months_ago": "{count} mese fa",
226
+ "time.months_ago_plural": "{count} mesi fa",
227
+ "time.years_ago": "{count} anno fa",
228
+ "time.years_ago_plural": "{count} anni fa"
229
+ },
192
230
  "ja": {
193
231
  "cmd.git_blame": "Git Blame",
194
232
  "cmd.git_blame_desc": "現在のファイルのgit blameを表示(magitスタイル)",
@@ -119,6 +119,30 @@
119
119
  "status.cancelled": "Recherche annulee",
120
120
  "status.no_files_loaded": "Aucun fichier git charge. Utilisez 'Git Trouver Fichier: Recharger'."
121
121
  },
122
+ "it": {
123
+ "cmd.find": "Git: Trova file",
124
+ "cmd.find_desc": "Trova e apri un file tracciato da git",
125
+ "cmd.reload": "Git: Ricarica file",
126
+ "cmd.reload_desc": "Ricarica l'indice dei file git",
127
+ "cmd.count": "Git: Conta file",
128
+ "cmd.count_desc": "Mostra il numero di file git indicizzati",
129
+ "prompt.find_file": "Trova file: ",
130
+ "status.ready": "Plugin Trova file git pronto",
131
+ "status.loading": "Caricamento file git...",
132
+ "status.indexed": "Git: %{count} file indicizzati",
133
+ "status.error_loading": "Errore nel caricamento dei file git: %{error}",
134
+ "status.failed_load": "Caricamento file git fallito",
135
+ "status.no_files": "Nessun file tracciato da git trovato",
136
+ "status.files_available": "%{count} file disponibili - scrivi per filtrare",
137
+ "status.showing_first": "Visualizzazione dei primi %{shown} di %{total} file",
138
+ "status.found_matching": "Trovati %{count} file corrispondenti a \"%{query}\"",
139
+ "status.no_matching": "Nessun file corrispondente a \"%{query}\"",
140
+ "status.opened": "Aperto %{file}",
141
+ "status.file_not_found": "File non trovato: %{file}",
142
+ "status.no_selection": "Nessun file selezionato",
143
+ "status.cancelled": "Ricerca file annullata",
144
+ "status.no_files_loaded": "Nessun file git caricato. Usa 'Git: Ricarica file' per indicizzare i file."
145
+ },
122
146
  "ja": {
123
147
  "cmd.find": "Gitファイル検索",
124
148
  "cmd.find_desc": "Git追跡ファイルを検索して開く",
@@ -64,6 +64,19 @@
64
64
  "status.no_selection": "Aucun fichier selectionne",
65
65
  "status.cancelled": "Git grep annule"
66
66
  },
67
+ "it": {
68
+ "cmd.grep": "Git Grep",
69
+ "cmd.grep_desc": "Cerca testo nei file tracciati da git",
70
+ "prompt.grep": "Git grep: ",
71
+ "status.ready": "Plugin Git Grep pronto",
72
+ "status.type_to_search": "Scrivi per cercare...",
73
+ "status.found": "Trovate %{count} corrispondenze",
74
+ "status.no_matches": "Nessuna corrispondenza trovata",
75
+ "status.error": "Errore git grep: %{error}",
76
+ "status.opened": "Aperto %{location}",
77
+ "status.no_selection": "Nessun file selezionato",
78
+ "status.cancelled": "Git grep annullato"
79
+ },
67
80
  "ja": {
68
81
  "cmd.grep": "Git Grep",
69
82
  "cmd.grep_desc": "Git追跡ファイル内でテキストを検索",
@@ -34,6 +34,13 @@
34
34
  "status.no_file": "Git Gutter: Aucun fichier ouvert",
35
35
  "status.changes": "Git Gutter: %{count} modification(s) detectee(s)"
36
36
  },
37
+ "it": {
38
+ "cmd.refresh": "Git Gutter: Aggiorna",
39
+ "cmd.refresh_desc": "Aggiorna gli indicatori git gutter per il buffer corrente",
40
+ "status.ready": "Plugin Git Gutter pronto",
41
+ "status.no_file": "Git Gutter: Nessun file aperto",
42
+ "status.changes": "Git Gutter: rilevate %{count} modifiche"
43
+ },
37
44
  "ja": {
38
45
  "cmd.refresh": "Git Gutter: 更新",
39
46
  "cmd.refresh_desc": "現在のバッファのGit Gutterインジケーターを更新",
@@ -184,6 +184,41 @@
184
184
  "panel.log_footer": "{count} commits | Haut/Bas/j/k: naviguer | RET: afficher | y: copier hash | r: actualiser | q: quitter",
185
185
  "panel.detail_footer": "Haut/Bas/j/k: naviguer | RET: ouvrir fichier a la ligne | q: retour au journal"
186
186
  },
187
+ "it": {
188
+ "cmd.git_log": "Git Log",
189
+ "cmd.git_log_desc": "Mostra il log di git in un'interfaccia stile magit",
190
+ "cmd.git_log_close": "Git Log: Chiudi",
191
+ "cmd.git_log_close_desc": "Chiudi il pannello git log",
192
+ "cmd.git_log_refresh": "Git Log: Aggiorna",
193
+ "cmd.git_log_refresh_desc": "Aggiorna il log di git",
194
+ "status.already_open": "Git log già aperto",
195
+ "status.loading": "Caricamento git log...",
196
+ "status.no_commits": "Nessun commit trovato o non è un repository git",
197
+ "status.closed": "Git log chiuso",
198
+ "status.failed_open": "Apertura del pannello git log fallita",
199
+ "status.refreshing": "Aggiornamento git log...",
200
+ "status.refreshed": "Git log aggiornato: {count} commit",
201
+ "status.log_ready": "Git log: {count} commit | Su/Giù: naviga | RET: mostra | q: esci",
202
+ "status.commit_position": "Commit {current}/{total}",
203
+ "status.move_to_commit": "Sposta il cursore su una riga di commit",
204
+ "status.loading_commit": "Caricamento commit {hash}...",
205
+ "status.commit_ready": "Commit {hash} | Su/Giù: naviga | RET: apri file | q: indietro",
206
+ "status.failed_open_details": "Apertura dettagli commit fallita",
207
+ "status.hash_copied": "Copiato: {short} ({full})",
208
+ "status.hash_display": "Hash: {hash}",
209
+ "status.git_error": "Errore git log: {error}",
210
+ "status.error_fetching_diff": "Errore nel recupero del diff: {error}",
211
+ "status.file_loading": "Caricamento {file} a {hash}...",
212
+ "status.file_not_found": "File {file} non trovato al commit {hash}",
213
+ "status.file_view_ready": "{file} @ {hash} (sola lettura) | Destinazione: riga {line} | q: indietro",
214
+ "status.failed_open_file": "Apertura di {file} fallita",
215
+ "status.move_to_diff_with_context": "Sposta il cursore su una riga di diff con contesto file",
216
+ "status.move_to_diff": "Sposta il cursore su una riga di diff",
217
+ "panel.commits_header": "Commit:",
218
+ "panel.no_commits": " Nessun commit trovato",
219
+ "panel.log_footer": "{count} commit | Su/Giù/j/k: naviga | RET: mostra | y: copia hash | r: aggiorna | q: esci",
220
+ "panel.detail_footer": "Su/Giù/j/k: naviga | RET: apri file alla riga | q: torna al log"
221
+ },
187
222
  "ja": {
188
223
  "cmd.git_log": "Gitログ",
189
224
  "cmd.git_log_desc": "magitスタイルのインターフェースでgitログを表示",
@@ -432,6 +432,20 @@ interface EditorAPI {
432
432
  * @returns User configuration object (sparse - only explicitly set values)
433
433
  */
434
434
  getUserConfig(): unknown;
435
+ /**
436
+ * Get the user configuration directory path
437
+ *
438
+ * Returns the absolute path to the directory where user config and themes are stored.
439
+ * e.g. ~/.config/fresh/ on Linux or ~/Library/Application Support/fresh/ on macOS.
440
+ */
441
+ getConfigDir(): string;
442
+ /**
443
+ * Get the user themes directory path
444
+ *
445
+ * Returns the absolute path to the directory where user themes are stored.
446
+ * e.g. ~/.config/fresh/themes/
447
+ */
448
+ getThemesDir(): string;
435
449
  /**
436
450
  * Get the buffer ID of the focused editor pane
437
451
  *
@@ -64,6 +64,19 @@
64
64
  "status.cancelled": "Grep en direct annule",
65
65
  "prompt.live_grep": "Grep en direct : "
66
66
  },
67
+ "it": {
68
+ "cmd.live_grep": "Live Grep (Cerca nei file)",
69
+ "cmd.live_grep_desc": "Cerca testo nel progetto con anteprima in tempo reale",
70
+ "status.ready": "Live Grep pronto - usa la tavolozza comandi o associa 'start_live_grep'",
71
+ "status.type_to_search": "Scrivi per cercare (min 2 caratteri)...",
72
+ "status.found_matches": "Trovate {count} corrispondenze",
73
+ "status.no_matches": "Nessuna corrispondenza trovata",
74
+ "status.search_error": "Errore di ricerca: {error}",
75
+ "status.opened_file": "Aperto {file}:{line}",
76
+ "status.no_file_selected": "Nessun file selezionato",
77
+ "status.cancelled": "Live grep annullato",
78
+ "prompt.live_grep": "Live grep: "
79
+ },
67
80
  "ja": {
68
81
  "cmd.live_grep": "Live Grep (ファイル内検索)",
69
82
  "cmd.live_grep_desc": "プロジェクト全体をライブプレビュー付きで検索",
@@ -84,6 +84,23 @@
84
84
  "suggestion.standard": "Standard - largeur par defaut",
85
85
  "suggestion.wide": "Large - plus de contenu par ligne"
86
86
  },
87
+ "it": {
88
+ "cmd.toggle_compose": "Markdown: Alterna Composizione",
89
+ "cmd.toggle_compose_desc": "Alterna la modalità composizione (a capo automatico, margini centrati)",
90
+ "cmd.set_compose_width": "Markdown: Imposta Larghezza Composizione",
91
+ "cmd.set_compose_width_desc": "Imposta la larghezza per l'andata a capo e i margini della modalità composizione",
92
+ "status.plugin_ready": "Plugin Markdown pronto",
93
+ "status.not_markdown_file": "Non è un file Markdown",
94
+ "status.compose_off": "Composizione Markdown: OFF",
95
+ "status.compose_on": "Composizione Markdown: ON (a capo automatico, centrato)",
96
+ "status.width_set": "Larghezza composizione Markdown impostata a {width}",
97
+ "status.invalid_width": "Larghezza non valida - deve essere compresa tra 20 e 300",
98
+ "prompt.compose_width": "Larghezza composizione: ",
99
+ "suggestion.narrow": "Stretto - ottimo per i pannelli laterali",
100
+ "suggestion.classic": "Classico - larghezza terminale tradizionale",
101
+ "suggestion.standard": "Standard - larghezza predefinita",
102
+ "suggestion.wide": "Largo - più contenuto per riga"
103
+ },
87
104
  "ja": {
88
105
  "cmd.toggle_compose": "Markdown: 作成モード切り替え",
89
106
  "cmd.toggle_compose_desc": "作成モードを切り替え (ソフトラップ、中央揃えマージン)",
@@ -314,6 +314,69 @@
314
314
  "btn.save_exit": "[s] Sauvegarder et Quitter",
315
315
  "btn.abort": "[q] Abandonner"
316
316
  },
317
+ "it": {
318
+ "cmd.start": "Merge: Avvia risoluzione",
319
+ "cmd.start_desc": "Avvia la risoluzione dei conflitti di merge a 3 vie per il file corrente",
320
+ "cmd.next": "Merge: Conflitto successivo",
321
+ "cmd.next_desc": "Passa al prossimo conflitto non risolto",
322
+ "cmd.prev": "Merge: Conflitto precedente",
323
+ "cmd.prev_desc": "Passa al conflitto precedente non risolto",
324
+ "cmd.use_ours": "Merge: Usa il nostro",
325
+ "cmd.use_ours_desc": "Accetta la nostra versione per il conflitto corrente",
326
+ "cmd.take_theirs": "Merge: Prendi il loro",
327
+ "cmd.take_theirs_desc": "Accetta la loro versione per il conflitto corrente",
328
+ "cmd.use_both": "Merge: Usa entrambi",
329
+ "cmd.use_both_desc": "Accetta entrambe le versioni per il conflitto corrente",
330
+ "cmd.save_exit": "Merge: Salva ed esci",
331
+ "cmd.save_exit_desc": "Salva il contenuto risolto ed esci dalla modalità merge",
332
+ "cmd.abort": "Merge: Annulla",
333
+ "cmd.abort_desc": "Annulla la risoluzione del merge senza salvare",
334
+ "status.ready": "Plugin Risoluzione conflitti di merge caricato",
335
+ "status.already_active": "Modalità merge già attiva",
336
+ "status.no_file": "Nessun file aperto",
337
+ "status.not_git_repo": "Non in un repository git - la risoluzione dei conflitti richiede git",
338
+ "status.no_unmerged": "Nessuna voce non unita - il file non è in uno stato di conflitto di merge",
339
+ "status.failed_read": "Impossibile leggere il contenuto del file",
340
+ "status.no_markers": "Nessun marcatore di conflitto trovato nel contenuto del file",
341
+ "status.starting": "Avvio risoluzione conflitti di merge...",
342
+ "status.failed_parse": "Impossibile analizzare i marcatori di conflitto",
343
+ "status.progress": "Merge: {remaining} di {total} conflitti rimanenti | Corrente: {current}",
344
+ "status.all_resolved": "Merge: Tutti i {total} conflitti risolti! Premi 's' per salvare",
345
+ "status.no_active_merge": "Nessun merge attivo - usa prima 'Merge: Avvia risoluzione'",
346
+ "status.no_conflicts": "Nessun conflitto da navigare",
347
+ "status.single_refocused": "Conflitto 1 di 1 (ri-focalizzato)",
348
+ "status.conflict_of": "Conflitto {current} di {total}",
349
+ "status.conflict_all_resolved": "Conflitto {current} di {total} (tutti risolti)",
350
+ "status.cannot_save": "Impossibile salvare: {count} conflitti non risolti rimanenti",
351
+ "status.complete": "Merge completato! File aggiornato con il contenuto risolto",
352
+ "status.nothing_to_abort": "Nessun merge attivo - nulla da annullare",
353
+ "status.aborted": "Merge annullato - nessuna modifica apportata",
354
+ "status.help": "Merge: [n/p] Naviga | [u] Nostro [t] Loro [b] Entrambi | [s] Salva [q] Annulla",
355
+ "status.detected": "Conflitti rilevati! Usa 'Merge: Avvia risoluzione' o esegui start_merge_conflict",
356
+ "status.detected_file": "Conflitti di merge rilevati in {path} - Usa 'Merge: Avvia risoluzione'",
357
+ "status.conflicts_to_resolve": "Merge: {remaining} conflitti da risolvere ({auto_resolved} risolti automaticamente)",
358
+ "status.all_auto_resolved": "Merge: Tutti i {total} conflitti risolti automaticamente! Premi 's' per salvare",
359
+ "panel.ours_header": "NOSTRO (Sola lettura) - Modifiche dal tuo branch",
360
+ "panel.theirs_header": "LORO (Sola lettura) - Modifiche in entrata",
361
+ "panel.result_header": "RISULTATO (Modificabile) - Contenuto risolto",
362
+ "panel.git_unavailable": "(Versione Git non disponibile - visualizzazione solo delle regioni di conflitto)",
363
+ "panel.conflict": "Conflitto {index}",
364
+ "panel.resolved": "[RISOLTO]",
365
+ "panel.pending": "[IN ATTESA]",
366
+ "panel.empty": "(vuoto)",
367
+ "panel.remaining": "{count} conflitti rimanenti",
368
+ "panel.all_resolved": "Tutti i conflitti risolti!",
369
+ "panel.resolved_with": "[Risolto: {resolution}]",
370
+ "btn.accept_ours": "[u] Accetta nostro",
371
+ "btn.accept_theirs": "[t] Accetta loro",
372
+ "btn.both": "[b] Entrambi",
373
+ "btn.next": "[n] Succ",
374
+ "btn.prev": "[p] Prec",
375
+ "btn.use_ours": "[u] Usa nostro",
376
+ "btn.take_theirs": "[t] Prendi loro",
377
+ "btn.save_exit": "[s] Salva ed esci",
378
+ "btn.abort": "[q] Annulla"
379
+ },
317
380
  "ja": {
318
381
  "cmd.start": "Merge: 解決を開始",
319
382
  "cmd.start_desc": "現在のファイルの3方向マージ競合解決を開始",
@@ -29,6 +29,12 @@
29
29
  "suggestion.new_file": "%{filename} (nouveau fichier)",
30
30
  "suggestion.new_file_desc": "Le fichier n'existe pas encore"
31
31
  },
32
+ "it": {
33
+ "status.loaded": "Plugin completamento percorsi caricato con successo",
34
+ "suggestion.directory": "directory",
35
+ "suggestion.new_file": "%{filename} (nuovo file)",
36
+ "suggestion.new_file_desc": "Il file non esiste ancora"
37
+ },
32
38
  "ja": {
33
39
  "status.loaded": "パス補完プラグインを正常に読み込みました",
34
40
  "suggestion.directory": "ディレクトリ",
@@ -154,6 +154,37 @@
154
154
  "panel.selected": "({selected} selectionnes)",
155
155
  "panel.help": "[ESP] basculer [a] tous [n] aucun [r] REMPLACER [RET] apercu [q] fermer"
156
156
  },
157
+ "it": {
158
+ "cmd.search_replace": "Cerca e sostituisci nel progetto",
159
+ "cmd.search_replace_desc": "Cerca e sostituisci testo in tutti i file tracciati da git",
160
+ "status.ready": "Plugin Cerca e Sostituisci pronto",
161
+ "status.enter_pattern": "Inserisci il modello di ricerca...",
162
+ "status.no_matches": "Nessuna corrispondenza trovata per \"{pattern}\"",
163
+ "status.found_matches": "Trovate {count} corrispondenze",
164
+ "status.search_error": "Errore di ricerca: {error}",
165
+ "status.cancelled_empty": "Ricerca annullata - modello vuoto",
166
+ "status.cancelled": "Cerca/Sostituisci annullato",
167
+ "status.no_selected": "Nessun elemento selezionato per la sostituzione",
168
+ "status.no_items_selected": "Nessun elemento selezionato",
169
+ "status.selected_count": "{selected}/{total} selezionati",
170
+ "status.replacing": "Sostituzione di {count} occorrenze...",
171
+ "status.replaced_with_errors": "Sostituito in {files} file ({errors} errori)",
172
+ "status.replaced": "Sostituite {count} occorrenze in {files} file",
173
+ "status.closed": "Cerca/Sostituisci chiuso",
174
+ "status.failed_open_panel": "Impossibile aprire il pannello cerca/sostituisci",
175
+ "status.preview": "Anteprima: {file}:{line}",
176
+ "prompt.search": "Cerca (nel progetto): ",
177
+ "prompt.replace": "Sostituisci con: ",
178
+ "panel.header": "Cerca e Sostituisci",
179
+ "panel.search_label": "Cerca:",
180
+ "panel.replace_label": "Sostituisci:",
181
+ "panel.regex": "(regex)",
182
+ "panel.no_matches": "Nessuna corrispondenza trovata",
183
+ "panel.results": "Risultati: {count}",
184
+ "panel.limited": "(limitati a {max})",
185
+ "panel.selected": "({selected} selezionati)",
186
+ "panel.help": "[SPZ] alterna [a] tutti [n] nessuno [r] SOSTITUISCI [RET] anteprima [q] chiudi"
187
+ },
157
188
  "ja": {
158
189
  "cmd.search_replace": "プロジェクト内で検索と置換",
159
190
  "cmd.search_replace_desc": "git追跡されているすべてのファイルでテキストを検索して置換",
@@ -24,6 +24,11 @@
24
24
  "cmd.test_desc": "Une commande pour tester la localisation des plugins",
25
25
  "msg.hello": "Bonjour, %{name} ! Votre langue est %{locale}."
26
26
  },
27
+ "it": {
28
+ "cmd.test": "Comando di test localizzato",
29
+ "cmd.test_desc": "Un comando per testare la localizzazione dei plugin",
30
+ "msg.hello": "Ciao, %{name}! La tua lingua è %{locale}."
31
+ },
27
32
  "ja": {
28
33
  "cmd.test": "ローカライズテストコマンド",
29
34
  "cmd.test_desc": "プラグインのローカライズをテストするコマンド",
@@ -3454,5 +3454,293 @@
3454
3454
  "field.tab_drop_zone_bg_desc": "Tab drop zone background during drag",
3455
3455
  "field.tab_drop_zone_border": "Tab Drop Zone Border",
3456
3456
  "field.tab_drop_zone_border_desc": "Tab drop zone border during drag"
3457
+ },
3458
+ "it": {
3459
+ "cmd.edit_theme": "Modifica tema",
3460
+ "cmd.edit_theme_desc": "Apri l editor dei colori del tema",
3461
+ "cmd.close_editor": "Tema: Chiudi editor",
3462
+ "cmd.close_editor_desc": "Chiudi l editor dei temi",
3463
+ "cmd.edit_color": "Tema: Modifica colore",
3464
+ "cmd.edit_color_desc": "Modifica il colore selezionato",
3465
+ "cmd.toggle_section": "Tema: Alterna sezione",
3466
+ "cmd.toggle_section_desc": "Espandi o comprimi la sezione",
3467
+ "cmd.open_theme": "Tema: Apri tema",
3468
+ "cmd.open_theme_desc": "Apri un tema (integrato o utente) per la modifica",
3469
+ "cmd.save": "Tema: Salva",
3470
+ "cmd.save_desc": "Salva il tema",
3471
+ "cmd.save_as": "Tema: Salva come",
3472
+ "cmd.save_as_desc": "Salva il tema con un nuovo nome",
3473
+ "cmd.set_default": "Tema: Imposta come predefinito",
3474
+ "cmd.set_default_desc": "Imposta un tema come predefinito",
3475
+ "cmd.reload": "Tema: Ricarica",
3476
+ "cmd.reload_desc": "Ricarica il tema dal file",
3477
+ "cmd.show_help": "Tema: Mostra aiuto",
3478
+ "cmd.show_help_desc": "Mostra l aiuto dell editor dei temi",
3479
+ "status.already_open": "L editor dei temi è già aperto",
3480
+ "status.loading": "Caricamento editor dei temi...",
3481
+ "status.ready": "Editor dei temi | c: copia da integrato | s: salva | d: imposta come predefinito | q: esci",
3482
+ "status.open_failed": "Impossibile aprire l editor dei temi",
3483
+ "status.unsaved_discarded": "Attenzione: Modifiche non salvate scartate",
3484
+ "status.closed": "Editor dei temi chiuso",
3485
+ "status.no_field": "Nessun campo selezionato",
3486
+ "status.not_section": "Non è una sezione",
3487
+ "status.no_changes": "Nessuna modifica da salvare",
3488
+ "status.updated": "%{path} aggiornato",
3489
+ "status.autocompleted": "Completato automaticamente a: %{value}",
3490
+ "status.invalid_color": "Formato colore non valido. Usa #RRGGBB, [r,g,b] o un nome di colore.",
3491
+ "status.name_set": "Nome del tema impostato a: %{name}",
3492
+ "status.copied": "Copiato da %{theme}. Modifica e salva come nuovo tema.",
3493
+ "status.load_failed": "Impossibile caricare il tema: %{name}",
3494
+ "status.mkdir_failed": "Impossibile creare la directory dei temi: %{error}",
3495
+ "status.saved": "Tema salvato in %{path}",
3496
+ "status.saved_and_applied": "Tema \"%{name}\" salvato e applicato.",
3497
+ "status.save_failed": "Impossibile salvare il tema: %{error}",
3498
+ "status.apply_failed": "Impossibile applicare il tema: %{error}",
3499
+ "status.reloaded": "Tema ricaricato dal file",
3500
+ "status.reset": "Tema ripristinato ai valori predefiniti",
3501
+ "status.cancelled": "Annullato",
3502
+ "status.help": "Tasti: su/giù naviga | RET/SPC modifica | TAB espandi | c copia | n nome | s salva | S salva-come | d predefinito | q esci",
3503
+ "status.plugin_loaded": "Plugin Editor dei temi caricato",
3504
+ "status.at_first_field": "Al primo campo",
3505
+ "status.at_last_field": "All ultimo campo",
3506
+ "status.no_user_themes": "Nessun tema utente trovato. Usa o per aprire un tema integrato, quindi salva.",
3507
+ "status.loaded": "Tema caricato: %{name}",
3508
+ "status.opened_builtin": "Aperto tema integrato: %{name} (usa Salva come per creare il tuo)",
3509
+ "status.builtin_requires_save_as": "I temi integrati non possono essere modificati sul posto. Usa Salva come.",
3510
+ "panel.title": "Editor dei temi: %{name}",
3511
+ "panel.modified": "[modificato]",
3512
+ "panel.file": "File: %{path}",
3513
+ "panel.new_theme": "Nuovo tema (non ancora salvato)",
3514
+ "panel.nav_hint": "su/giù: naviga | RET/SPC: modifica colore | TAB: espandi/comprimi",
3515
+ "panel.action_hint": "%{open}: apri | %{save}: salva | %{save_as}: salva come | %{delete}: elimina | %{close}: esci | %{help}: aiuto",
3516
+ "prompt.open_theme": "Apri tema: ",
3517
+ "prompt.select_theme_to_edit": "Seleziona tema da modificare: ",
3518
+ "prompt.theme_name": "Nome del tema: ",
3519
+ "prompt.save_as": "Salva tema come: ",
3520
+ "prompt.color_input": "%{field} (#RRGGBB o nome): ",
3521
+ "prompt.discard_confirm": "Hai modifiche non salvate: ",
3522
+ "prompt.discard_yes": "Scarta le modifiche e chiudi",
3523
+ "prompt.discard_no": "Continua a modificare",
3524
+ "prompt.overwrite_confirm": "Il tema %{name} esiste già: ",
3525
+ "prompt.overwrite_yes": "Sovrascrivi tema esistente",
3526
+ "prompt.overwrite_no": "Annulla",
3527
+ "suggestion.current": "(corrente)",
3528
+ "suggestion.builtin_theme": "Tema integrato",
3529
+ "suggestion.builtin_theme_current": "Tema integrato (corrente)",
3530
+ "suggestion.user_theme": "Tema utente",
3531
+ "suggestion.user_theme_current": "Tema utente (corrente)",
3532
+ "suggestion.builtin": "Integrato",
3533
+ "suggestion.terminal_native": "Usa il colore nativo del terminale",
3534
+ "section.editor": "Editor",
3535
+ "section.editor_desc": "Colori dell area principale dell editor",
3536
+ "section.ui": "Elementi UI",
3537
+ "section.ui_desc": "Colori dell interfaccia utente (schede, menu, barra di stato, ecc.)",
3538
+ "section.search": "Ricerca",
3539
+ "section.search_desc": "Colori di evidenziazione dei risultati di ricerca",
3540
+ "section.diagnostic": "Diagnostica",
3541
+ "section.diagnostic_desc": "Colori della diagnostica LSP (errori, avvisi, ecc.)",
3542
+ "section.syntax": "Evidenziazione sintassi",
3543
+ "section.syntax_desc": "Colori dell evidenziazione della sintassi del codice",
3544
+ "field.bg": "Sfondo",
3545
+ "field.bg_desc": "Colore di sfondo dell editor",
3546
+ "field.fg": "Primo piano",
3547
+ "field.fg_desc": "Colore del testo predefinito",
3548
+ "field.cursor": "Cursore",
3549
+ "field.cursor_desc": "Colore del cursore",
3550
+ "field.inactive_cursor": "Cursore inattivo",
3551
+ "field.inactive_cursor_desc": "Colore del cursore nei pannelli non focalizzati",
3552
+ "field.selection_bg": "Sfondo selezione",
3553
+ "field.selection_bg_desc": "Sfondo del testo selezionato",
3554
+ "field.current_line_bg": "Sfondo riga corrente",
3555
+ "field.current_line_bg_desc": "Sfondo della riga contenente il cursore",
3556
+ "field.line_number_fg": "Primo piano numero riga",
3557
+ "field.line_number_fg_desc": "Colore del testo del numero di riga",
3558
+ "field.line_number_bg": "Sfondo numero riga",
3559
+ "field.line_number_bg_desc": "Sfondo del margine dei numeri di riga",
3560
+ "field.diff_add_bg": "Sfondo Diff Aggiunta",
3561
+ "field.diff_add_bg_desc": "Sfondo della riga aggiunta nel diff",
3562
+ "field.diff_remove_bg": "Sfondo Diff Rimozione",
3563
+ "field.diff_remove_bg_desc": "Sfondo della riga rimossa nel diff",
3564
+ "field.diff_modify_bg": "Sfondo Diff Modifica",
3565
+ "field.diff_modify_bg_desc": "Sfondo della riga modificata nel diff",
3566
+ "field.tab_active_fg": "Primo piano scheda attiva",
3567
+ "field.tab_active_fg_desc": "Colore del testo della scheda attiva",
3568
+ "field.tab_active_bg": "Sfondo scheda attiva",
3569
+ "field.tab_active_bg_desc": "Colore di sfondo della scheda attiva",
3570
+ "field.tab_inactive_fg": "Primo piano scheda inattiva",
3571
+ "field.tab_inactive_fg_desc": "Colore del testo della scheda inattiva",
3572
+ "field.tab_inactive_bg": "Sfondo scheda inattiva",
3573
+ "field.tab_inactive_bg_desc": "Colore di sfondo della scheda inattiva",
3574
+ "field.tab_separator_bg": "Separatore schede",
3575
+ "field.tab_separator_bg_desc": "Colore del separatore della barra delle schede",
3576
+ "field.tab_close_hover_fg": "Hover chiusura scheda",
3577
+ "field.tab_close_hover_fg_desc": "Colore del pulsante di chiusura scheda al passaggio del mouse",
3578
+ "field.tab_hover_bg": "Hover sfondo scheda",
3579
+ "field.tab_hover_bg_desc": "Colore di sfondo al passaggio del mouse sulla scheda",
3580
+ "field.menu_bg": "Sfondo menu",
3581
+ "field.menu_bg_desc": "Sfondo della barra dei menu",
3582
+ "field.menu_fg": "Primo piano menu",
3583
+ "field.menu_fg_desc": "Colore del testo della barra dei menu",
3584
+ "field.menu_active_bg": "Sfondo menu attivo",
3585
+ "field.menu_active_bg_desc": "Sfondo della voce di menu attiva",
3586
+ "field.menu_active_fg": "Primo piano menu attivo",
3587
+ "field.menu_active_fg_desc": "Colore del testo della voce di menu attiva",
3588
+ "field.menu_dropdown_bg": "Sfondo menu a discesa",
3589
+ "field.menu_dropdown_bg_desc": "Sfondo del menu a discesa",
3590
+ "field.menu_dropdown_fg": "Primo piano menu a discesa",
3591
+ "field.menu_dropdown_fg_desc": "Colore del testo del menu a discesa",
3592
+ "field.menu_highlight_bg": "Sfondo menu evidenziato",
3593
+ "field.menu_highlight_bg_desc": "Sfondo della voce di menu evidenziata",
3594
+ "field.menu_highlight_fg": "Primo piano menu evidenziato",
3595
+ "field.menu_highlight_fg_desc": "Colore del testo della voce di menu evidenziata",
3596
+ "field.menu_border_fg": "Bordo menu",
3597
+ "field.menu_border_fg_desc": "Colore del bordo del menu",
3598
+ "field.menu_separator_fg": "Separatore menu",
3599
+ "field.menu_separator_fg_desc": "Colore della linea di separazione del menu",
3600
+ "field.menu_hover_bg": "Hover sfondo menu",
3601
+ "field.menu_hover_bg_desc": "Sfondo della voce di menu al passaggio del mouse",
3602
+ "field.menu_hover_fg": "Hover primo piano menu",
3603
+ "field.menu_hover_fg_desc": "Colore del testo della voce di menu al passaggio del mouse",
3604
+ "field.menu_disabled_fg": "Primo piano menu disabilitato",
3605
+ "field.menu_disabled_fg_desc": "Colore del testo della voce di menu disabilitata",
3606
+ "field.menu_disabled_bg": "Sfondo menu disabilitato",
3607
+ "field.menu_disabled_bg_desc": "Sfondo della voce di menu disabilitata",
3608
+ "field.status_bar_fg": "Primo piano barra di stato",
3609
+ "field.status_bar_fg_desc": "Colore del testo della barra di stato",
3610
+ "field.status_bar_bg": "Sfondo barra di stato",
3611
+ "field.status_bar_bg_desc": "Colore di sfondo della barra di stato",
3612
+ "field.prompt_fg": "Primo piano prompt",
3613
+ "field.prompt_fg_desc": "Colore del testo del prompt dei comandi",
3614
+ "field.prompt_bg": "Sfondo prompt",
3615
+ "field.prompt_bg_desc": "Sfondo del prompt dei comandi",
3616
+ "field.prompt_selection_fg": "Primo piano selezione prompt",
3617
+ "field.prompt_selection_fg_desc": "Colore del testo selezionato nel prompt",
3618
+ "field.prompt_selection_bg": "Sfondo selezione prompt",
3619
+ "field.prompt_selection_bg_desc": "Sfondo della selezione nel prompt",
3620
+ "field.popup_border_fg": "Bordo popup",
3621
+ "field.popup_border_fg_desc": "Colore del bordo della finestra popup",
3622
+ "field.popup_bg": "Sfondo popup",
3623
+ "field.popup_bg_desc": "Sfondo della finestra popup",
3624
+ "field.popup_selection_bg": "Sfondo selezione popup",
3625
+ "field.popup_selection_bg_desc": "Sfondo dell elemento selezionato nel popup",
3626
+ "field.popup_text_fg": "Primo piano testo popup",
3627
+ "field.popup_text_fg_desc": "Colore del testo della finestra popup",
3628
+ "field.suggestion_bg": "Sfondo suggerimento",
3629
+ "field.suggestion_bg_desc": "Sfondo del suggerimento di completamento automatico",
3630
+ "field.suggestion_selected_bg": "Sfondo suggerimento selezionato",
3631
+ "field.suggestion_selected_bg_desc": "Sfondo del suggerimento selezionato",
3632
+ "field.help_bg": "Sfondo aiuto",
3633
+ "field.help_bg_desc": "Sfondo del pannello di aiuto",
3634
+ "field.help_fg": "Primo piano aiuto",
3635
+ "field.help_fg_desc": "Colore del testo del pannello di aiuto",
3636
+ "field.help_key_fg": "Primo piano tasto aiuto",
3637
+ "field.help_key_fg_desc": "Colore del testo delle scorciatoie da tastiera",
3638
+ "field.help_separator_fg": "Separatore aiuto",
3639
+ "field.help_separator_fg_desc": "Colore del separatore del pannello di aiuto",
3640
+ "field.help_indicator_fg": "Primo piano indicatore aiuto",
3641
+ "field.help_indicator_fg_desc": "Colore del testo dell indicatore di aiuto",
3642
+ "field.help_indicator_bg": "Sfondo indicatore aiuto",
3643
+ "field.help_indicator_bg_desc": "Sfondo dell indicatore di aiuto",
3644
+ "field.inline_code_bg": "Sfondo codice inline",
3645
+ "field.inline_code_bg_desc": "Sfondo del blocco di codice inline",
3646
+ "field.split_separator_fg": "Separatore split",
3647
+ "field.split_separator_fg_desc": "Colore del separatore dei pannelli split",
3648
+ "field.split_separator_hover_fg": "Hover separatore split",
3649
+ "field.split_separator_hover_fg_desc": "Colore del separatore split al passaggio del mouse",
3650
+ "field.scrollbar_track_fg": "Traccia barra di scorrimento",
3651
+ "field.scrollbar_track_fg_desc": "Colore della traccia della barra di scorrimento",
3652
+ "field.scrollbar_thumb_fg": "Cursore barra di scorrimento",
3653
+ "field.scrollbar_thumb_fg_desc": "Colore del cursore della barra di scorrimento",
3654
+ "field.scrollbar_track_hover_fg": "Hover traccia barra di scorrimento",
3655
+ "field.scrollbar_track_hover_fg_desc": "Colore della traccia al passaggio del mouse",
3656
+ "field.scrollbar_thumb_hover_fg": "Hover cursore barra di scorrimento",
3657
+ "field.scrollbar_thumb_hover_fg_desc": "Colore del cursore al passaggio del mouse",
3658
+ "field.compose_margin_bg": "Sfondo margine composizione",
3659
+ "field.compose_margin_bg_desc": "Sfondo del margine in modalità composizione",
3660
+ "field.semantic_highlight_bg": "Sfondo evidenziazione semantica",
3661
+ "field.semantic_highlight_bg_desc": "Evidenziazione della parola sotto il cursore",
3662
+ "field.terminal_bg": "Sfondo terminale",
3663
+ "field.terminal_bg_desc": "Sfondo del terminale integrato (usa Default per la trasparenza)",
3664
+ "field.terminal_fg": "Primo piano terminale",
3665
+ "field.terminal_fg_desc": "Colore del testo predefinito del terminale integrato",
3666
+ "field.match_bg": "Sfondo corrispondenza",
3667
+ "field.match_bg_desc": "Colore di sfondo della corrispondenza di ricerca",
3668
+ "field.match_fg": "Primo piano corrispondenza",
3669
+ "field.match_fg_desc": "Colore del testo della corrispondenza di ricerca",
3670
+ "field.error_fg": "Primo piano errore",
3671
+ "field.error_fg_desc": "Colore del testo del messaggio di errore",
3672
+ "field.error_bg": "Sfondo errore",
3673
+ "field.error_bg_desc": "Sfondo dell evidenziazione dell errore",
3674
+ "field.warning_fg": "Primo piano avviso",
3675
+ "field.warning_fg_desc": "Colore del testo del messaggio di avviso",
3676
+ "field.warning_bg": "Sfondo avviso",
3677
+ "field.warning_bg_desc": "Sfondo dell evidenziazione dell avviso",
3678
+ "field.info_fg": "Primo piano info",
3679
+ "field.info_fg_desc": "Colore del testo del messaggio informativo",
3680
+ "field.info_bg": "Sfondo info",
3681
+ "field.info_bg_desc": "Sfondo dell evidenziazione informativa",
3682
+ "field.hint_fg": "Primo piano suggerimento",
3683
+ "field.hint_fg_desc": "Colore del testo del messaggio di suggerimento",
3684
+ "field.hint_bg": "Sfondo suggerimento",
3685
+ "field.hint_bg_desc": "Sfondo dell evidenziazione del suggerimento",
3686
+ "field.keyword": "Parola chiave",
3687
+ "field.keyword_desc": "Parole chiave del linguaggio (if, for, fn, ecc.)",
3688
+ "field.string": "Stringa",
3689
+ "field.string_desc": "Letterali stringa",
3690
+ "field.comment": "Commento",
3691
+ "field.comment_desc": "Commenti del codice",
3692
+ "field.function": "Funzione",
3693
+ "field.function_desc": "Nomi di funzioni",
3694
+ "field.type": "Tipo",
3695
+ "field.type_desc": "Nomi di tipi",
3696
+ "field.variable": "Variabile",
3697
+ "field.variable_desc": "Nomi di variabili",
3698
+ "field.constant": "Costante",
3699
+ "field.constant_desc": "Costanti e letterali",
3700
+ "field.operator": "Operatore",
3701
+ "field.operator_desc": "Operatori (+, -, =, ecc.)",
3702
+ "cmd.delete_theme": "Tema: Elimina",
3703
+ "cmd.delete_theme_desc": "Elimina il tema utente corrente",
3704
+ "cmd.nav_up": "Tema: Naviga su",
3705
+ "cmd.nav_up_desc": "Sposta al campo o sezione precedente",
3706
+ "cmd.nav_down": "Tema: Naviga giù",
3707
+ "cmd.nav_down_desc": "Sposta al campo o sezione successiva",
3708
+ "cmd.nav_next": "Tema: Naviga successivo (Tab)",
3709
+ "cmd.nav_next_desc": "Sposta al campo o sezione successiva con wrapping",
3710
+ "cmd.nav_prev": "Tema: Naviga precedente (Shift+Tab)",
3711
+ "cmd.nav_prev_desc": "Sposta al campo o sezione precedente con wrapping",
3712
+ "cmd.set_name": "Tema: Imposta nome",
3713
+ "cmd.set_name_desc": "Imposta il nome del tema",
3714
+ "error.color_empty": "Inserisci un valore di colore",
3715
+ "error.color_hex_length": "Il colore esadecimale deve essere di 6 caratteri: #RRGGBB (es. #FF0000)",
3716
+ "error.color_hex_invalid": "Caratteri esadecimali non validi in %{input}: usa solo 0-9 e A-F",
3717
+ "error.color_rgb_range": "I valori RGB devono essere 0-255. Trovati valori non validi in %{input}",
3718
+ "error.color_unknown": "Formato colore sconosciuto %{input}. Usa #RRGGBB, [r,g,b] o un nome di colore",
3719
+ "status.cannot_delete_unsaved": "Impossibile eliminare: tema non ancora salvato",
3720
+ "status.deleted": "Tema %{name} eliminato",
3721
+ "status.delete_failed": "Eliminazione tema fallita: %{error}",
3722
+ "prompt.delete_confirm": "Eliminare il tema %{name}? ",
3723
+ "prompt.delete_yes": "Elimina permanentemente",
3724
+ "prompt.delete_no": "Annulla",
3725
+ "field.status_warning_indicator_bg": "Sfondo indicatore avviso",
3726
+ "field.status_warning_indicator_bg_desc": "Sfondo dell indicatore di avviso nella barra di stato",
3727
+ "field.status_warning_indicator_fg": "Primo piano indicatore avviso",
3728
+ "field.status_warning_indicator_fg_desc": "Colore del testo dell indicatore di avviso nella barra di stato",
3729
+ "field.status_error_indicator_bg": "Sfondo indicatore errore",
3730
+ "field.status_error_indicator_bg_desc": "Sfondo dell indicatore di errore nella barra di stato",
3731
+ "field.status_error_indicator_fg": "Primo piano indicatore errore",
3732
+ "field.status_error_indicator_fg_desc": "Colore del testo dell indicatore di errore nella barra di stato",
3733
+ "field.status_warning_indicator_hover_bg": "Hover sfondo indicatore avviso",
3734
+ "field.status_warning_indicator_hover_bg_desc": "Sfondo dell indicatore di avviso al passaggio del mouse",
3735
+ "field.status_warning_indicator_hover_fg": "Hover primo piano indicatore avviso",
3736
+ "field.status_warning_indicator_hover_fg_desc": "Colore del testo dell indicatore di avviso al passaggio del mouse",
3737
+ "field.status_error_indicator_hover_bg": "Hover sfondo indicatore errore",
3738
+ "field.status_error_indicator_hover_bg_desc": "Sfondo dell indicatore di errore al passaggio del mouse",
3739
+ "field.status_error_indicator_hover_fg": "Hover primo piano indicatore errore",
3740
+ "field.status_error_indicator_hover_fg_desc": "Colore del testo dell indicatore di errore al passaggio del mouse",
3741
+ "field.tab_drop_zone_bg": "Sfondo zona rilascio scheda",
3742
+ "field.tab_drop_zone_bg_desc": "Sfondo della zona di rilascio scheda durante il trascinamento",
3743
+ "field.tab_drop_zone_border": "Bordo zona rilascio scheda",
3744
+ "field.tab_drop_zone_border_desc": "Bordo della zona di rilascio scheda durante il trascinamento"
3457
3745
  }
3458
- }
3746
+ }
@@ -515,9 +515,15 @@ function listUserThemes(): string[] {
515
515
 
516
516
  /**
517
517
  * Get user themes directory
518
- * Uses XDG_CONFIG_HOME if set, otherwise falls back to $HOME/.config
518
+ * Uses the API to get the correct path
519
519
  */
520
520
  function getUserThemesDir(): string {
521
+ // Use the API if available (new method)
522
+ if (typeof editor.getThemesDir === "function") {
523
+ return editor.getThemesDir();
524
+ }
525
+
526
+ // Fallback for older versions (deprecated)
521
527
  // Check XDG_CONFIG_HOME first (standard on Linux)
522
528
  const xdgConfig = editor.getEnv("XDG_CONFIG_HOME");
523
529
  if (xdgConfig) {
@@ -69,6 +69,20 @@
69
69
  "status.loaded": "Plugin Surligneur TODO charge (TypeScript)",
70
70
  "status.keywords": "Mots-cles TODO: %{keywords}"
71
71
  },
72
+ "it": {
73
+ "cmd.enable": "Evidenziatore TODO: Attiva",
74
+ "cmd.enable_desc": "Attiva l'evidenziazione delle parole chiave TODO",
75
+ "cmd.disable": "Evidenziatore TODO: Disattiva",
76
+ "cmd.disable_desc": "Disattiva l'evidenziazione delle parole chiave TODO",
77
+ "cmd.toggle": "Evidenziatore TODO: Alterna",
78
+ "cmd.toggle_desc": "Alterna l'evidenziazione delle parole chiave TODO",
79
+ "cmd.show_keywords": "Evidenziatore TODO: Mostra parole chiave",
80
+ "cmd.show_keywords_desc": "Mostra le parole chiave attualmente monitorate",
81
+ "status.enabled": "Evidenziatore TODO: Attivato",
82
+ "status.disabled": "Evidenziatore TODO: Disattivato",
83
+ "status.loaded": "Plugin Evidenziatore TODO caricato (TypeScript)",
84
+ "status.keywords": "Parole chiave TODO: %{keywords}"
85
+ },
72
86
  "ja": {
73
87
  "cmd.enable": "TODOハイライター: 有効化",
74
88
  "cmd.enable_desc": "TODOキーワードのハイライトを有効化",
@@ -594,6 +594,125 @@
594
594
  "cmd.redo": "Refaire",
595
595
  "cmd.join_lines": "Joindre lignes"
596
596
  },
597
+ "it": {
598
+ "mode.normal": "NORMALE",
599
+ "mode.insert": "INSERIMENTO",
600
+ "mode.operator": "OPERATORE",
601
+ "mode.find": "TROVA",
602
+ "mode.visual": "VISUALE",
603
+ "mode.visual_line": "VISUALE RIGA",
604
+ "mode.visual_block": "VISUALE BLOCCO",
605
+
606
+ "status.enabled": "Modalità Vi abilitata - NORMALE",
607
+ "status.disabled": "Modalità Vi disabilitata",
608
+ "status.loaded": "Plugin modalità Vi caricato. Usa il comando 'Alterna modalità Vi' per abilitarlo.",
609
+ "status.yanked_lines": "Copiate %{count} righe",
610
+ "status.no_change_to_repeat": "Nessuna modifica da ripetere",
611
+ "status.replace_not_implemented": "Sostituzione carattere non ancora implementata",
612
+ "status.file_saved": "File salvato",
613
+ "status.file_reverted": "File ripristinato",
614
+ "status.file_reverted_discarded": "File ripristinato (modifiche scartate)",
615
+ "status.all_files_saved": "Tutti i file salvati",
616
+ "status.line_numbers_on": "Numeri di riga attivati",
617
+ "status.line_numbers_off": "Numeri di riga disattivati",
618
+ "status.line_wrap_toggled": "Andata a capo automatica alternata",
619
+ "status.syntax_always_on": "L'evidenziazione della sintassi è sempre attiva",
620
+ "status.line_beyond_end": "Riga %{line} oltre la fine del file, spostato alla fine",
621
+
622
+ "error.no_write_since_change": "Non salvato dall'ultima modifica (usa %{cmd} per forzare)",
623
+ "error.not_valid_command": "Comando non valido: %{cmd}",
624
+ "error.unknown_command": "Comando sconosciuto: %{cmd}",
625
+ "error.command_no_bang": "Il comando non accetta !: %{cmd}",
626
+ "error.save_as_not_implemented": "Salva come non implementato. Usa :w per salvare il file corrente.",
627
+ "error.shell_not_supported": "Comandi shell non supportati (usa il terminale)",
628
+ "error.buffer_not_found": "Buffer %{id} non trovato",
629
+ "error.multiple_buffers_match": "Più buffer corrispondono a \"%{pattern}\". Sii più specifico.",
630
+ "error.no_buffer_matching": "Nessun buffer corrispondente a \"%{pattern}\"",
631
+ "error.rename_not_implemented": "Rinomina buffer non implementata",
632
+ "error.substitute_not_implemented": "Sostituzione non implementata. Usa Ctrl+H per cerca/sostituisci.",
633
+ "error.global_not_implemented": "Comando globale non implementato",
634
+ "error.set_usage": "Utilizzo: :set opzione o :set opzione=valore",
635
+ "error.cannot_change_directory": "Impossibile cambiare directory (la cwd dell'editor è fissa)",
636
+ "error.marks_not_implemented": "Segnalibri non implementati",
637
+ "error.registers_not_implemented": "Registri non implementati (Fresh usa gli appunti di sistema)",
638
+ "error.jump_list_not_implemented": "Lista salti non implementata",
639
+ "error.syntax_cannot_disable": "L'evidenziazione della sintassi non può essere disabilitata",
640
+ "error.read_not_implemented": "Lettura file nel buffer non implementata. Usa :e per aprire i file.",
641
+ "error.saveas_not_implemented": "Salva come non implementato. Usa Ctrl+Shift+S o il menu.",
642
+ "error.use_terminal": "Usa il terminale per i comandi di build",
643
+ "error.line_must_be_positive": "Il numero di riga deve essere positivo",
644
+ "error.cannot_read_buffer": "Impossibile leggere il buffer",
645
+ "error.no_buffer": "Nessun buffer",
646
+ "error.unknown_option": "Opzione sconosciuta: %{option}",
647
+ "error.no_selection_for_motion": "Nessun equivalente di selezione per il movimento: %{motion}",
648
+
649
+ "info.buffer": "Buffer %{id}: %{name}",
650
+ "info.file": "\"%{path}\"%{modified} riga %{line}, %{bytes} byte",
651
+ "info.modified": " [Modificato]",
652
+ "info.no_name": "[Senza nome]",
653
+ "info.no_buffers": "Nessun buffer",
654
+ "info.help_not_available": "Aiuto per \"%{topic}\" non disponibile. Prova :help per la lista dei comandi.",
655
+ "info.help_commands": "Comandi: :w :q :wq :q! :e :sp :vs :bn :bp :bd :b :ls :set :noh :123 :help",
656
+ "info.version": "Fresh Editor con plugin modalità Vi",
657
+ "info.close_diagnostics": "Usa :bd per chiudere il pannello diagnostica",
658
+ "info.use_search_dialog": "Usa la finestra di ricerca per cercare: %{pattern}",
659
+ "info.status_bar_char": "Usa la barra di stato per informazioni sui caratteri",
660
+
661
+ "cmd.toggle_vi_mode": "Alterna modalità Vi",
662
+ "cmd.toggle_vi_mode_desc": "Abilita o disabilita l'editing modale in stile vi",
663
+
664
+ "cmd.move_left": "Sposta a sinistra",
665
+ "cmd.move_down": "Sposta in basso",
666
+ "cmd.move_up": "Sposta in alto",
667
+ "cmd.move_right": "Sposta a destra",
668
+ "cmd.move_word": "Sposta alla parola successiva",
669
+ "cmd.move_word_back": "Sposta alla parola precedente",
670
+ "cmd.move_word_end": "Sposta alla fine della parola",
671
+ "cmd.move_line_start": "Sposta all'inizio della riga",
672
+ "cmd.move_line_end": "Sposta alla fine della riga",
673
+ "cmd.move_doc_start": "Sposta all'inizio del documento",
674
+ "cmd.move_doc_end": "Sposta alla fine del documento",
675
+ "cmd.page_down": "Pagina giù",
676
+ "cmd.page_up": "Pagina su",
677
+ "cmd.half_page_down": "Mezza pagina giù",
678
+ "cmd.half_page_up": "Mezza pagina su",
679
+ "cmd.center_cursor": "Centra il cursore sullo schermo",
680
+ "cmd.search_forward": "Cerca in avanti",
681
+ "cmd.search_backward": "Cerca all'indietro",
682
+ "cmd.find_next": "Trova corrispondenza successiva",
683
+ "cmd.find_prev": "Trova corrispondenza precedente",
684
+ "cmd.find_char_f": "Trova carattere in avanti",
685
+ "cmd.find_char_t": "Trova fino al carattere in avanti",
686
+ "cmd.find_char_F": "Trova carattere all'indietro",
687
+ "cmd.find_char_T": "Trova fino al carattere all'indietro",
688
+ "cmd.find_char_repeat": "Ripeti ultima ricerca carattere",
689
+ "cmd.find_char_repeat_reverse": "Ripeti ultima ricerca carattere (inverso)",
690
+
691
+ "cmd.insert_before": "Inserisci prima del cursore",
692
+ "cmd.insert_after": "Inserisci dopo il cursore",
693
+ "cmd.insert_line_start": "Inserisci all'inizio della riga",
694
+ "cmd.insert_line_end": "Inserisci alla fine della riga",
695
+ "cmd.open_below": "Apri riga sotto",
696
+ "cmd.open_above": "Apri riga sopra",
697
+ "cmd.return_to_normal": "Torna alla modalità normale",
698
+
699
+ "cmd.delete_operator": "Operatore cancella",
700
+ "cmd.change_operator": "Operatore cambia",
701
+ "cmd.yank_operator": "Operatore copia (yank)",
702
+ "cmd.delete_line": "Cancella riga",
703
+ "cmd.change_line": "Cambia riga",
704
+ "cmd.yank_line": "Copia riga (yank)",
705
+ "cmd.delete_char": "Cancella carattere",
706
+ "cmd.delete_char_before": "Cancella carattere prima del cursore",
707
+ "cmd.substitute": "Sostituisci carattere",
708
+ "cmd.delete_to_end": "Cancella fino alla fine della riga",
709
+ "cmd.change_to_end": "Cambia fino alla fine della riga",
710
+ "cmd.paste_after": "Incolla dopo",
711
+ "cmd.paste_before": "Incolla prima",
712
+ "cmd.undo": "Annulla",
713
+ "cmd.redo": "Ripeti",
714
+ "cmd.join_lines": "Unisci righe"
715
+ },
597
716
  "ja": {
598
717
  "mode.normal": "NORMAL",
599
718
  "mode.insert": "INSERT",
@@ -89,6 +89,24 @@
89
89
  "text.greeting": "Bonjour depuis TypeScript! Le systeme de plugins fonctionne!",
90
90
  "text.comment": "// Ce commentaire a ete insere par un plugin TypeScript!"
91
91
  },
92
+ "it": {
93
+ "cmd.open_help": "Demo plugin: Apri aiuto",
94
+ "cmd.open_help_desc": "Apre la pagina di aiuto dell'editor (usa un'azione integrata)",
95
+ "cmd.save_file": "Demo plugin: Salva file",
96
+ "cmd.save_file_desc": "Salva il file corrente (usa un'azione integrata)",
97
+ "cmd.say_hello": "Demo plugin: Saluta",
98
+ "cmd.say_hello_desc": "Inserisce un saluto amichevole nel buffer",
99
+ "cmd.insert_time": "Demo plugin: Inserisci ora",
100
+ "cmd.insert_time_desc": "Inserisce l'ora corrente alla posizione del cursore",
101
+ "cmd.insert_comment": "Demo plugin: Inserisci commento",
102
+ "cmd.insert_comment_desc": "Inserisce un commento di esempio alla posizione del cursore",
103
+ "status.loaded": "I plugin funzionano! Plugin di benvenuto caricato con successo!",
104
+ "status.greeting_inserted": "Saluto inserito alla posizione del cursore",
105
+ "status.time_inserted": "Ora inserita alla posizione del cursore",
106
+ "status.comment_inserted": "Commento inserito dal plugin",
107
+ "text.greeting": "Ciao da TypeScript! Il sistema dei plugin funziona!",
108
+ "text.comment": "// Questo commento è stato inserito da un plugin TypeScript!"
109
+ },
92
110
  "ja": {
93
111
  "cmd.open_help": "プラグインデモ: ヘルプを開く",
94
112
  "cmd.open_help_desc": "エディタのヘルプページを開く(組み込みアクションを使用)",