dsh-oc-tui 0.2.0-pre.13 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -6
- package/docs//347/224/250/346/210/267/346/211/213/345/206/214.md +39 -6
- package/dsh-plugin.json +5 -1
- package/lib/diagnostics.js +120 -0
- package/lib/git-branch.js +157 -0
- package/lib/image.js +5 -1
- package/lib/index.js +904 -19
- package/lib/locales/ar.js +637 -560
- package/lib/locales/de.js +606 -529
- package/lib/locales/en.js +79 -0
- package/lib/locales/es.js +606 -529
- package/lib/locales/fr.js +606 -529
- package/lib/locales/id.js +608 -531
- package/lib/locales/it.js +606 -529
- package/lib/locales/ja.js +606 -529
- package/lib/locales/ko.js +606 -529
- package/lib/locales/nl.js +606 -529
- package/lib/locales/pl.js +620 -543
- package/lib/locales/pt-BR.js +606 -529
- package/lib/locales/ru.js +620 -543
- package/lib/locales/tr.js +606 -529
- package/lib/locales/vi.js +608 -531
- package/lib/locales/zh-CN.js +607 -530
- package/lib/locales/zh-TW.js +607 -530
- package/lib/mermaid-ascii.js +20 -1
- package/lib/mermaid.js +39 -20
- package/lib/providers.js +712 -0
- package/lib/splash-opencode.js +27 -9
- package/lib/std/command-list.js +2 -1
- package/lib/term.js +13 -1
- package/lib/ui.js +326 -20
- package/lib/util.js +49 -0
- package/lib/web-settings.js +182 -142
- package/package.json +5 -4
package/lib/locales/it.js
CHANGED
|
@@ -1,530 +1,607 @@
|
|
|
1
|
-
// Italian catalog. Keys, order and placeholders mirror `en.js`, the source.
|
|
2
|
-
export default {
|
|
3
|
-
// ---- shared chrome ------------------------------------------------------
|
|
4
|
-
'common.selectBack': 'Enter seleziona · Esc indietro',
|
|
5
|
-
'common.selectConfirmBack': '↑/↓ seleziona · Enter conferma · Esc indietro',
|
|
6
|
-
'common.selectContinueExit': '↑/↓ seleziona · Enter continua · Esc esci',
|
|
7
|
-
'common.escBack': 'Esc indietro',
|
|
8
|
-
'common.escClose': 'Esc chiudi',
|
|
9
|
-
'common.escCancel': 'Esc annulla',
|
|
10
|
-
'common.working': 'In corso…',
|
|
11
|
-
'common.pleaseWait': 'attendere',
|
|
12
|
-
'common.on': 'attivo',
|
|
13
|
-
'common.off': 'disattivo',
|
|
14
|
-
'common.unavailable': 'non disponibile',
|
|
15
|
-
'common.selected': 'selezionato',
|
|
16
|
-
'common.default': 'predefinito',
|
|
17
|
-
'common.system': 'sistema',
|
|
18
|
-
'common.installed': '(installato)',
|
|
19
|
-
'common.more': '… altri {count}',
|
|
20
|
-
'common.moreLines': '… altre {count} righe',
|
|
21
|
-
'common.clickExpand': ' · clic per espandere',
|
|
22
|
-
'common.clickCollapse': ' · clic per comprimere',
|
|
23
|
-
'common.unknown': 'sconosciuto',
|
|
24
|
-
'common.emptyMessage': '[messaggio vuoto]',
|
|
25
|
-
'value.queue': 'coda',
|
|
26
|
-
'value.steer': 'guida',
|
|
27
|
-
'value.auto': 'automatico',
|
|
28
|
-
'value.local': 'locale',
|
|
29
|
-
'value.textOnly': 'solo testo',
|
|
30
|
-
'value.textImage': 'testo + immagine',
|
|
1
|
+
// Italian catalog. Keys, order and placeholders mirror `en.js`, the source.
|
|
2
|
+
export default {
|
|
3
|
+
// ---- shared chrome ------------------------------------------------------
|
|
4
|
+
'common.selectBack': 'Enter seleziona · Esc indietro',
|
|
5
|
+
'common.selectConfirmBack': '↑/↓ seleziona · Enter conferma · Esc indietro',
|
|
6
|
+
'common.selectContinueExit': '↑/↓ seleziona · Enter continua · Esc esci',
|
|
7
|
+
'common.escBack': 'Esc indietro',
|
|
8
|
+
'common.escClose': 'Esc chiudi',
|
|
9
|
+
'common.escCancel': 'Esc annulla',
|
|
10
|
+
'common.working': 'In corso…',
|
|
11
|
+
'common.pleaseWait': 'attendere',
|
|
12
|
+
'common.on': 'attivo',
|
|
13
|
+
'common.off': 'disattivo',
|
|
14
|
+
'common.unavailable': 'non disponibile',
|
|
15
|
+
'common.selected': 'selezionato',
|
|
16
|
+
'common.default': 'predefinito',
|
|
17
|
+
'common.system': 'sistema',
|
|
18
|
+
'common.installed': '(installato)',
|
|
19
|
+
'common.more': '… altri {count}',
|
|
20
|
+
'common.moreLines': '… altre {count} righe',
|
|
21
|
+
'common.clickExpand': ' · clic per espandere',
|
|
22
|
+
'common.clickCollapse': ' · clic per comprimere',
|
|
23
|
+
'common.unknown': 'sconosciuto',
|
|
24
|
+
'common.emptyMessage': '[messaggio vuoto]',
|
|
25
|
+
'value.queue': 'coda',
|
|
26
|
+
'value.steer': 'guida',
|
|
27
|
+
'value.auto': 'automatico',
|
|
28
|
+
'value.local': 'locale',
|
|
29
|
+
'value.textOnly': 'solo testo',
|
|
30
|
+
'value.textImage': 'testo + immagine',
|
|
31
|
+
|
|
32
|
+
// ---- title screen -------------------------------------------------------
|
|
33
|
+
'splash.hint': 'Chiedere qualsiasi cosa... "Correggere i test rotti"',
|
|
34
|
+
'splash.shortcutSettings': 'impostazioni',
|
|
35
|
+
'splash.shortcutThinking': 'pensiero',
|
|
36
|
+
'splash.shortcutBranches': 'branch',
|
|
37
|
+
|
|
38
|
+
// ---- header / sidebar / status row -------------------------------------
|
|
39
|
+
// ---- command-line help (dsh --profile tui --help) -----------------------
|
|
40
|
+
'startup.description': "Avvia l'interfaccia terminale di DeepSeek Harness.",
|
|
41
|
+
'startup.helpOption': 'mostra questo aiuto',
|
|
42
|
+
'startup.resume': 'riprendi una sessione persistente esistente per id',
|
|
43
|
+
'startup.model': 'id modello predefinito per le nuove sessioni',
|
|
44
|
+
'startup.provider': 'route del provider predefinita per le nuove sessioni',
|
|
45
|
+
'startup.sidebar': 'mostra la barra laterale delle sessioni (predefinito)',
|
|
46
|
+
'startup.noSidebar': 'avvia senza la barra laterale',
|
|
47
|
+
'startup.examples': 'Esempi:',
|
|
48
|
+
'startup.exampleFresh': 'avvia una nuova sessione',
|
|
49
|
+
'startup.exampleResume': 'riprendi una sessione persistente',
|
|
50
|
+
|
|
51
|
+
'header.workspace': 'AREA DI LAVORO',
|
|
52
|
+
'sidebar.sessions': 'SESSIONI',
|
|
53
|
+
'sidebar.recent': 'RECENTI',
|
|
54
|
+
'sidebar.newSession': '+ Nuova sessione',
|
|
55
|
+
'status.model': 'modello',
|
|
56
|
+
'status.draftTokens': '{count} tok bozza',
|
|
57
|
+
'status.ctrlP': 'ctrl+p comandi',
|
|
58
|
+
'status.interrupt': 'interrompi: ctrl+c',
|
|
59
|
+
|
|
60
|
+
// ---- composer command hints --------------------------------------------
|
|
61
|
+
'hint.help': 'mostra aiuto',
|
|
62
|
+
'hint.settings': 'apri impostazioni',
|
|
63
|
+
'hint.new': 'nuova sessione',
|
|
64
|
+
'hint.resume': 'riprendi sessione',
|
|
65
|
+
'hint.model': 'seleziona modello',
|
|
66
|
+
'hint.provider': 'seleziona provider',
|
|
67
|
+
'hint.rewind': 'riavvolgi',
|
|
68
|
+
'hint.branch': 'cambia branch git',
|
|
69
|
+
'hint.stats': 'statistiche e uso dei token',
|
|
70
|
+
'hint.clear': 'svuota la vista',
|
|
71
|
+
'hint.cancel': 'annulla il turno in corso',
|
|
72
|
+
'hint.quit': 'esci',
|
|
73
|
+
'hint.compact': 'comprimi contesto',
|
|
74
|
+
'hint.goal': 'gestisci obiettivo',
|
|
75
|
+
|
|
76
|
+
// ---- transcript blocks --------------------------------------------------
|
|
77
|
+
'transcript.turns.one': '{count} turno',
|
|
78
|
+
'transcript.turns.other': '{count} turni',
|
|
79
|
+
'transcript.steps.one': '{count} passo',
|
|
80
|
+
'transcript.steps.other': '{count} passi',
|
|
81
|
+
'transcript.thinking': ' pensiero',
|
|
82
|
+
'transcript.streaming': ' · in streaming…',
|
|
83
|
+
'transcript.steeringBadge': ' ⟲ intervento',
|
|
84
|
+
'transcript.tasks': 'attività',
|
|
85
|
+
'transcript.systemPrompt': ' prompt di sistema',
|
|
86
|
+
'transcript.pendingInput': ' input in attesa · ',
|
|
87
|
+
'transcript.steering': ' intervento',
|
|
88
|
+
'transcript.queued': ' in coda',
|
|
89
|
+
'note.systemReminder': 'system-reminder',
|
|
90
|
+
'note.compaction': 'compattazione',
|
|
91
|
+
|
|
92
|
+
// ---- images and mermaid -------------------------------------------------
|
|
93
|
+
'image.attachment': '🖼 immagine allegata',
|
|
94
|
+
'image.rendering': '⏳ rendering dell\'immagine…',
|
|
95
|
+
'image.renderFailed': '⚠ rendering dell\'immagine non riuscito · {error}',
|
|
96
|
+
'image.mermaidRendering': '⏳ rendering del diagramma mermaid…',
|
|
97
|
+
'image.mermaidTooWide': '↔ il diagramma mermaid richiede {width} colonne, questo pannello ne ha {budget}',
|
|
98
|
+
'image.altFallback': 'immagine',
|
|
99
|
+
|
|
100
|
+
// ---- composer / approval prompt ----------------------------------------
|
|
101
|
+
'composer.imageHint': 'Immagine incollata: serve un modello/plugin multimodale o deepseek-v4-flash-vision-exp, altrimenti l\'immagine non può essere letta',
|
|
102
|
+
'composer.approval': 'Approvazione · ',
|
|
103
|
+
'composer.summary': 'Riepilogo · ',
|
|
104
|
+
'composer.origin': 'Origine · ',
|
|
105
|
+
'composer.risk': 'Rischio · ',
|
|
106
|
+
'composer.approvalHint': 'y consenti · n nega · Esc annulla',
|
|
107
|
+
'risk.low': 'basso',
|
|
108
|
+
'risk.medium': 'medio',
|
|
109
|
+
'risk.high': 'alto',
|
|
110
|
+
'composer.effortHint': 'Tab / ←/→ regola · Esc chiudi',
|
|
111
|
+
|
|
112
|
+
// ---- right status rail --------------------------------------------------
|
|
113
|
+
'rail.model': 'MODELLO',
|
|
114
|
+
'rail.thinking': 'PENSIERO',
|
|
115
|
+
'rail.context': 'CONTESTO',
|
|
116
|
+
'rail.session': 'SESSIONE',
|
|
117
|
+
'rail.goal': 'OBIETTIVO',
|
|
118
|
+
'rail.subagents': 'SUBAGENTI',
|
|
119
|
+
'rail.noData': '—',
|
|
120
|
+
'rail.percentUsed': '{percent}% usato',
|
|
121
|
+
'rail.tokens': '~{used} / {window} token',
|
|
122
|
+
'rail.cacheHit': 'cache {percent}% di hit',
|
|
123
|
+
'rail.breakdown': 'sistema {system} · strumenti {tools} · messaggi {messages}',
|
|
124
|
+
'rail.contextPending': 'mostrato quando l\'uso viene riportato',
|
|
125
|
+
'rail.subagentCounts': '{running} attivi · {total} totali',
|
|
126
|
+
'rail.unreadable': '{label} (illeggibile)',
|
|
127
|
+
'rail.more': '… +{count} altri',
|
|
128
|
+
'rail.round': ' · turno {started}/{max}',
|
|
129
|
+
'goal.active': 'attivo',
|
|
130
|
+
'goal.paused': 'in pausa',
|
|
131
|
+
'goal.blocked': 'bloccato',
|
|
132
|
+
'goal.complete': 'completato',
|
|
133
|
+
|
|
134
|
+
// ---- session stats window ----------------------------------------------
|
|
135
|
+
'stats.title': 'statistiche sessione',
|
|
136
|
+
'stats.hint': 'clic sulla striscia o /stats',
|
|
137
|
+
'stats.usage': 'uso',
|
|
138
|
+
'stats.duration': 'durata',
|
|
139
|
+
'stats.speed': 'velocità',
|
|
140
|
+
'stats.tokens': 'token',
|
|
141
|
+
'stats.cache': 'cache',
|
|
142
|
+
'stats.context': 'contesto',
|
|
143
|
+
'stats.noSteps': 'nessun passo completato',
|
|
144
|
+
'stats.llmTime': 'LLM {value}',
|
|
145
|
+
'stats.toolTime': 'strumenti {value}',
|
|
146
|
+
'stats.ttft': 'TTFT medio {value}',
|
|
147
|
+
'stats.tokensPerSecond': '{value} tok/s',
|
|
148
|
+
'stats.cacheRate': 'cache {percent}%',
|
|
149
|
+
'stats.inOut': 'in {input} · out {output}',
|
|
150
|
+
'stats.cacheDetail': '{percent}% di hit · letti {read} · scritti {write} · mancati {miss}',
|
|
151
|
+
'stats.contextUsed': 'usato {percent}% ~{used} / {window}',
|
|
152
|
+
'stats.systemPrompt': 'prompt di sistema',
|
|
153
|
+
'stats.tools': 'strumenti',
|
|
154
|
+
'stats.messages': 'messaggi',
|
|
155
|
+
'stats.compositionUnavailable': 'composizione non disponibile',
|
|
156
|
+
'stats.contextPending': 'l\'occupazione del contesto appare quando una richiesta riporta l\'uso',
|
|
157
|
+
|
|
158
|
+
// ---- questions modal ----------------------------------------------------
|
|
159
|
+
'questions.title': 'Domanda',
|
|
160
|
+
'questions.titleOf': 'Domanda {index} di {total}',
|
|
161
|
+
'questions.defer': 'Esc rinvia',
|
|
162
|
+
'questions.range': '{from}-{to} di {total} PgUp/PgDn',
|
|
163
|
+
'questions.other': 'Altro: ',
|
|
164
|
+
'questions.answer': 'Risposta: ',
|
|
165
|
+
'questions.placeholder': 'digitare una risposta propria',
|
|
166
|
+
'questions.hintCustom': 'Enter conferma · Esc indietro',
|
|
167
|
+
'questions.hintMulti': 'Spazio alterna · Enter continua · Su/Giù sposta',
|
|
168
|
+
'questions.hintSingle': 'Enter seleziona · Su/Giù sposta',
|
|
169
|
+
|
|
170
|
+
// ---- secret prompt ------------------------------------------------------
|
|
171
|
+
'secret.hint': 'Enter invia · Esc annulla',
|
|
172
|
+
|
|
173
|
+
// ---- settings dialog chrome --------------------------------------------
|
|
174
|
+
'settings.title': 'Impostazioni',
|
|
175
|
+
'settings.menu': 'MENU',
|
|
176
|
+
'settings.shared': 'Condiviso con DeepSeek Harness WebUI',
|
|
177
|
+
'settings.footerEdit': 'Enter salva · Esc annulla',
|
|
178
|
+
'settings.footerMenu': '↑/↓ sposta · Tab menu · Enter seleziona · Esc indietro',
|
|
179
|
+
'settings.footerPlain': '↑/↓ sposta · Enter seleziona · Esc indietro',
|
|
180
|
+
'settings.confirmHint': '{text} · Y / N',
|
|
181
|
+
'settings.confirmDefault': 'Y conferma · N annulla',
|
|
182
|
+
'settings.confirmDeleteSession': 'Ctrl+D di nuovo per eliminare',
|
|
183
|
+
'settings.confirmChange': 'Confermare questa modifica?',
|
|
184
|
+
'settings.deleteTwice': 'Ctrl+D di nuovo per eliminare ',
|
|
185
|
+
'settings.deleteMcpTwice': 'Canc di nuovo per rimuovere ',
|
|
186
|
+
'settings.noSession': 'nessuna sessione selezionata',
|
|
187
|
+
'settings.noSessions': 'nessuna sessione disponibile',
|
|
188
|
+
'settings.noMcp': 'nessun server MCP selezionato',
|
|
189
|
+
'settings.noOptions': 'nessuna opzione disponibile per {label}',
|
|
190
|
+
'settings.saved': 'salvato nelle impostazioni DSH',
|
|
191
|
+
'settings.providerRemoved': 'provider rimosso',
|
|
192
|
+
'settings.conflict': 'impostazioni modificate altrove; ricaricate',
|
|
193
|
+
'settings.error': 'impostazioni: {error}',
|
|
194
|
+
'settings.dshSettings': 'Impostazioni DSH',
|
|
195
|
+
'settings.optionList': 'Enter seleziona · Esc indietro',
|
|
196
|
+
|
|
197
|
+
// ---- settings left menu -------------------------------------------------
|
|
198
|
+
'menu.main': 'Principale',
|
|
199
|
+
'menu.model': 'Modello',
|
|
200
|
+
'menu.update': 'Aggiornamento',
|
|
201
|
+
'menu.mcp': 'MCP',
|
|
202
|
+
|
|
203
|
+
// ---- settings rows: main tab -------------------------------------------
|
|
204
|
+
'settings.general': 'Generale',
|
|
205
|
+
'settings.graphics': 'Grafica',
|
|
206
|
+
'settings.sessions': 'Sessioni',
|
|
207
|
+
'settings.system': 'Sistema',
|
|
208
|
+
'settings.busyEnter': 'Enter occupato',
|
|
209
|
+
'settings.defaultPreset': 'Preset predefinito',
|
|
210
|
+
'settings.permissionPreset': 'Preset permessi',
|
|
211
|
+
'settings.permissionDangerConfirm': 'Abilitare accesso illimitato a strumenti e file?',
|
|
212
|
+
'settings.graphicsRendering': 'Rendering grafico',
|
|
213
|
+
'settings.noProtocolFallback': 'Fallback senza protocollo',
|
|
214
|
+
'settings.imageHeightCap': 'Altezza max immagine (righe)',
|
|
215
|
+
'settings.mermaidRendering': 'Rendering Mermaid',
|
|
216
|
+
'settings.newSession': 'Nuova sessione',
|
|
217
|
+
'settings.manageSessions': 'Gestisci sessioni',
|
|
218
|
+
'settings.providerConfig': 'Config API del provider',
|
|
219
|
+
'settings.updateManager': 'Gestione aggiornamenti',
|
|
220
|
+
'settings.settingsFile': 'File delle impostazioni',
|
|
221
|
+
'settings.language': 'Lingua',
|
|
222
|
+
'settings.languageSystem': 'Sistema ({language})',
|
|
223
|
+
'settings.languageSaved': 'lingua: {language}',
|
|
224
|
+
|
|
225
|
+
// ---- model tab ----------------------------------------------------------
|
|
226
|
+
'model.title': 'Modello',
|
|
227
|
+
'model.subtitle': 'Enter imposta un modello elencato come predefinito',
|
|
228
|
+
'model.defaultSection': 'Predefinito',
|
|
229
|
+
'model.defaultProvider': 'Provider predefinito',
|
|
230
|
+
'model.defaultModel': 'Modello predefinito',
|
|
231
|
+
'model.reasoning': 'Ragionamento',
|
|
232
|
+
'model.providerUrl': 'URL del provider',
|
|
233
|
+
'model.providerApiKey': 'Chiave API del provider',
|
|
234
|
+
'model.displayName': 'Nome visualizzato',
|
|
235
|
+
'model.wireProtocol': 'Protocollo di trasporto',
|
|
236
|
+
'model.defaultImageInput': 'Input immagine predefinito',
|
|
237
|
+
'model.models': 'Modelli',
|
|
238
|
+
'model.fetch': 'recupera…',
|
|
239
|
+
'model.selectedCount': '{count} selezionati',
|
|
240
|
+
'model.removeProvider': 'Rimuovi provider',
|
|
241
|
+
'model.removeProviderConfirm': 'Rimuovere {name} e la sua credenziale gestita?',
|
|
242
|
+
'model.noModels': 'nessun modello disponibile',
|
|
243
|
+
'model.noModelsReturned': 'il provider non ha restituito modelli',
|
|
244
|
+
'model.fetchUnavailable': 'recupero automatico non disponibile — modelli salvati · Enter alterna',
|
|
245
|
+
'model.fetchOk': 'recuperato automaticamente · Enter alterna · Esc indietro',
|
|
246
|
+
'model.fetching': 'Recupero dei modelli…',
|
|
247
|
+
'model.autoFetching': 'recupero automatico…',
|
|
248
|
+
'model.credentialConfigured': 'configurata ({source})',
|
|
249
|
+
'model.credentialMissing': 'non configurata',
|
|
250
|
+
'model.defaultTag': 'predefinito',
|
|
251
|
+
'model.providerUnavailable': 'il provider non è più disponibile',
|
|
252
|
+
'model.namespaceUnavailable': 'il namespace delle impostazioni del provider non è disponibile',
|
|
253
|
+
'model.apiKeyEmpty': 'la chiave API non può essere vuota',
|
|
254
|
+
'model.credentialsUnavailable': 'il servizio credenziali non è disponibile',
|
|
255
|
+
'model.noProviderModels': 'il provider selezionato non ha modelli disponibili',
|
|
256
|
+
'model.addCount.one': '{count} disponibile',
|
|
257
|
+
'model.addCount.other': '{count} disponibili',
|
|
258
|
+
|
|
259
|
+
// ---- add-provider flow --------------------------------------------------
|
|
260
|
+
'provider.add': 'Aggiungi provider',
|
|
261
|
+
'provider.empty': 'nessun provider configurato',
|
|
262
|
+
'provider.pickSubtitle': 'Invio scegli · Esc indietro',
|
|
263
|
+
'provider.catalog': 'Provider installati',
|
|
264
|
+
'provider.catalogEmpty': 'tutti i provider installati sono già configurati',
|
|
265
|
+
'provider.custom': 'API personalizzata — dichiara un endpoint',
|
|
266
|
+
'provider.form.catalog': 'Adotta un provider installato',
|
|
267
|
+
'provider.form.custom': 'Dichiara un provider personalizzato',
|
|
268
|
+
'provider.formSubtitle': 'Invio modifica · Esc indietro',
|
|
269
|
+
'provider.field.route': 'ID route',
|
|
270
|
+
'provider.field.addModel': 'Aggiungi ID modello',
|
|
271
|
+
'provider.field.save': 'Salva provider',
|
|
272
|
+
'provider.hint.route': 'minuscole, cifre e trattini · chiave salvata come {ref}',
|
|
273
|
+
'provider.error.route': 'ID route: deve iniziare con una lettera e usare solo minuscole, cifre e trattini',
|
|
274
|
+
'provider.error.routeNeeded': 'scegli un provider',
|
|
275
|
+
'provider.error.taken': 'un provider usa già questo ID route',
|
|
276
|
+
'provider.error.baseUrl': 'endpoint: deve essere un URL http o https',
|
|
277
|
+
'provider.error.baseUrlNeeded': 'un provider personalizzato richiede un endpoint',
|
|
278
|
+
'provider.error.apiNeeded': 'scegli il protocollo parlato da questo endpoint',
|
|
279
|
+
'provider.error.modelsNeeded': 'un provider personalizzato richiede almeno un modello',
|
|
280
|
+
'provider.error.modelId': 'il modello {index} richiede un ID',
|
|
281
|
+
'provider.error.modelDuplicate': 'il modello "{id}" è elencato due volte',
|
|
282
|
+
'provider.added': 'provider aggiunto',
|
|
283
|
+
'provider.accountManaged': 'accesso effettuato con il tuo account DeepSeek',
|
|
284
|
+
'provider.search': 'Cerca',
|
|
285
|
+
'provider.searchPlaceholder': 'digita per filtrare',
|
|
286
|
+
'provider.searchEmpty': 'nessun provider corrisponde a "{query}"',
|
|
287
|
+
|
|
288
|
+
// ---- una voce di modello --------------------------------------------------
|
|
289
|
+
'model.edit': 'Modifica modello',
|
|
290
|
+
'model.editHint': 'e modifica · Canc rimuovi',
|
|
291
|
+
'model.refresh': 'Aggiorna catalogo',
|
|
292
|
+
'model.selectAll': 'Seleziona tutto',
|
|
293
|
+
'model.fetchRefused': 'l endpoint non ha restituito alcun elenco di modelli',
|
|
294
|
+
'model.notSaved': 'questo modello non è ancora salvato',
|
|
295
|
+
'model.removed': 'modello rimosso',
|
|
296
|
+
'model.form.add': 'Aggiungi modello',
|
|
297
|
+
'model.form.edit': 'Modello · {id}',
|
|
298
|
+
'model.form.save': 'Salva modello',
|
|
299
|
+
'model.form.remove': 'Rimuovi dal provider',
|
|
300
|
+
'model.form.removeConfirm': 'Rimuovere questo modello dal provider?',
|
|
301
|
+
'model.field.id': 'ID modello',
|
|
302
|
+
'model.field.name': 'Nome mostrato',
|
|
303
|
+
'model.field.contextWindow': 'Finestra di contesto',
|
|
304
|
+
'model.field.maxTokens': 'Token di output max',
|
|
305
|
+
'model.field.input': 'Input',
|
|
306
|
+
'model.error.idNeeded': 'un modello richiede un ID',
|
|
307
|
+
'model.error.idDuplicate': 'il modello "{id}" è già elencato',
|
|
308
|
+
'model.error.capacity': 'finestra di contesto e token massimi devono essere interi (256K, 1M)',
|
|
309
|
+
|
|
310
|
+
// ---- MCP tab ------------------------------------------------------------
|
|
311
|
+
'mcp.title': 'MCP',
|
|
312
|
+
'mcp.subtitle': 'Enter modifica · Canc rimuovi · Esc indietro',
|
|
313
|
+
'mcp.editSubtitle': 'Enter modifica · Esc indietro',
|
|
314
|
+
'mcp.servers': 'Server MCP',
|
|
315
|
+
'mcp.empty': 'Nessun server MCP configurato',
|
|
316
|
+
'mcp.add': 'Aggiungi server MCP',
|
|
317
|
+
'mcp.scope': 'ambito',
|
|
318
|
+
'mcp.scopeUserPrefix': 'utente · {path}',
|
|
319
|
+
'mcp.scopePathPrefix': 'percorso · {path}',
|
|
320
|
+
'mcp.configFiles': 'File di configurazione',
|
|
321
|
+
'mcp.userScope': 'utente (tutte le sessioni)',
|
|
322
|
+
'mcp.secrets': 'Segreti',
|
|
323
|
+
'mcp.secretsPlain': 'testo in chiaro nei file di configurazione',
|
|
324
|
+
'mcp.loaded': 'caricato',
|
|
325
|
+
'mcp.notCreated': 'non ancora creato',
|
|
326
|
+
'mcp.type.stdio': 'Comando locale',
|
|
327
|
+
'mcp.type.http': 'HTTP',
|
|
328
|
+
'mcp.type.sse': 'SSE',
|
|
329
|
+
'mcp.state.connected': '● connesso',
|
|
330
|
+
'mcp.state.tools.one': '● {count} strumento',
|
|
331
|
+
'mcp.state.tools.other': '● {count} strumenti',
|
|
332
|
+
'mcp.state.pending': '… connessione',
|
|
333
|
+
'mcp.state.disabled': '○ disattivato',
|
|
334
|
+
'mcp.state.idle': '○ non connesso',
|
|
335
|
+
'mcp.form.add': 'Aggiungi server MCP',
|
|
336
|
+
'mcp.form.edit': 'Modifica server MCP · {name}',
|
|
337
|
+
'mcp.titleAdd': 'MCP · aggiungi',
|
|
338
|
+
'mcp.titleEdit': 'MCP · modifica',
|
|
339
|
+
'mcp.field.name': 'Nome',
|
|
340
|
+
'mcp.field.type': 'Tipo',
|
|
341
|
+
'mcp.field.timeout': 'Timeout (ms)',
|
|
342
|
+
'mcp.field.command': 'Comando',
|
|
343
|
+
'mcp.field.args': 'Argomenti',
|
|
344
|
+
'mcp.field.env': 'Ambiente (JSON)',
|
|
345
|
+
'mcp.field.url': 'URL',
|
|
346
|
+
'mcp.field.headers': 'Intestazioni (JSON)',
|
|
347
|
+
'mcp.field.scope': 'Ambito',
|
|
348
|
+
'mcp.field.path': 'Percorso',
|
|
349
|
+
'mcp.field.enabled': 'Attivato',
|
|
350
|
+
'mcp.field.save': 'Salva',
|
|
351
|
+
'mcp.field.remove': 'Rimuovi',
|
|
352
|
+
'mcp.choice.stdio': 'Comando locale (stdio)',
|
|
353
|
+
'mcp.choice.http': 'HTTP (con streaming)',
|
|
354
|
+
'mcp.choice.sse': 'SSE (HTTP+SSE legacy)',
|
|
355
|
+
'mcp.choice.scopeUser': 'Utente — tutte le sessioni',
|
|
356
|
+
'mcp.choice.scopePath': 'Percorso — sessioni sotto una directory',
|
|
357
|
+
'mcp.removeConfirm': 'Rimuovere questo server MCP e disconnetterlo?',
|
|
358
|
+
'mcp.saved': 'Server MCP salvato',
|
|
359
|
+
'mcp.added': 'Server MCP aggiunto',
|
|
360
|
+
'mcp.removed': 'Server MCP rimosso',
|
|
361
|
+
'mcp.error.name': 'il nome deve avere da 1 a 32 caratteri tra lettere, cifre, "-" o "_"',
|
|
362
|
+
'mcp.error.duplicate': 'un server MCP chiamato "{name}" è già configurato',
|
|
363
|
+
'mcp.error.timeout': 'timeoutMs deve essere un intero tra 1 e {max}',
|
|
364
|
+
'mcp.error.pathNeeded': 'un server con ambito percorso richiede una directory',
|
|
365
|
+
'mcp.error.pathAbsolute': 'l\'ambito percorso deve essere una directory assoluta',
|
|
366
|
+
'mcp.error.commandNeeded': 'un server stdio richiede un comando',
|
|
367
|
+
'mcp.error.urlParse': 'impossibile analizzare l\'URL',
|
|
368
|
+
'mcp.error.urlScheme': 'l\'URL deve usare http o https',
|
|
369
|
+
'mcp.error.pathNotDir': 'l\'ambito percorso non è una directory: {path}',
|
|
370
|
+
'mcp.error.configIsDir': 'il percorso del file di configurazione è una directory: {path}',
|
|
371
|
+
'mcp.error.notFound': 'nessun server MCP chiamato "{name}" è configurato',
|
|
372
|
+
'mcp.error.documentGone': 'il documento che definisce "{name}" è sparito: {error}',
|
|
373
|
+
'mcp.error.noClient': 'l\'host non fornisce alcun client MCP',
|
|
374
|
+
'mcp.error.connectTimeout': 'timeout durante la connessione a {name}',
|
|
375
|
+
'mcp.error.json': 'il documento non è JSON valido: {error}',
|
|
376
|
+
'mcp.error.jsonObject': 'il documento deve essere un oggetto JSON',
|
|
377
|
+
'mcp.error.serversObject': '"servers" deve essere un oggetto JSON',
|
|
378
|
+
'mcp.error.argsArray': 'gli argomenti devono essere un array JSON di stringhe',
|
|
379
|
+
'mcp.error.argsTypes': 'gli argomenti devono essere stringhe o numeri',
|
|
380
|
+
'mcp.error.argsUnclosed': 'gli argomenti contengono una virgoletta non chiusa',
|
|
381
|
+
'mcp.error.envObject': '{label} deve essere un oggetto JSON',
|
|
382
|
+
'mcp.error.envValue': 'il valore "{name}" di {label} deve essere stringa, numero o booleano',
|
|
383
|
+
'mcp.error.header': 'intestazione HTTP non valida "{name}"',
|
|
384
|
+
'mcp.error.envName': 'nome ambiente non valido "{name}"',
|
|
385
|
+
|
|
386
|
+
// ---- rewind -------------------------------------------------------------
|
|
387
|
+
'rewind.title': 'Riavvolgi',
|
|
388
|
+
'rewind.restoreTo': 'Ripristina al punto precedente: {label}',
|
|
389
|
+
'rewind.restorePrompt': 'Ripristina la conversazione al punto precedente a…',
|
|
390
|
+
'rewind.empty': 'Ancora nulla a cui riavvolgere.',
|
|
391
|
+
'rewind.option.conversation': 'Ripristina conversazione',
|
|
392
|
+
'rewind.option.both': 'Ripristina conversazione e file',
|
|
393
|
+
'rewind.option.code': 'Ripristina file',
|
|
394
|
+
'rewind.option.cancel': 'Annulla',
|
|
395
|
+
'rewind.current': '(corrente)',
|
|
396
|
+
'rewind.noPoints': 'nessun messaggio utente a cui riavvolgere',
|
|
397
|
+
'rewind.unknownPoint': 'punto di riavvolgimento sconosciuto "{selector}" — usare un numero o last',
|
|
398
|
+
'rewind.noPoint': 'nessun punto di riavvolgimento {n} — 1..{count}',
|
|
399
|
+
'rewind.notGit': 'non è un worktree git',
|
|
400
|
+
'rewind.noBackup': 'nessuna posizione di backup',
|
|
401
|
+
'rewind.filesNotRestored': 'file non ripristinati',
|
|
402
|
+
'rewind.filesNotRestoredReason': 'file non ripristinati ({reason})',
|
|
403
|
+
'rewind.restored.one': '{count} file tracciato ripristinato da HEAD',
|
|
404
|
+
'rewind.restored.other': '{count} file tracciati ripristinati da HEAD',
|
|
405
|
+
'rewind.removed.one': '{count} nuovo file rimosso',
|
|
406
|
+
'rewind.removed.other': '{count} nuovi file rimossi',
|
|
407
|
+
'rewind.skipped': '{count} saltati',
|
|
408
|
+
'rewind.previousSaved': 'contenuto precedente salvato in {path}',
|
|
409
|
+
'rewind.noChanges': 'nessuna modifica ai file dopo questo punto',
|
|
410
|
+
'rewind.image': '[immagine]',
|
|
411
|
+
'rewind.images': '[{count} immagini]',
|
|
412
|
+
'rewind.emptyMessage': '(vuoto)',
|
|
413
|
+
'git.title': 'Branch Git',
|
|
414
|
+
'git.subtitle': 'Attuale: {branch} · {path}',
|
|
415
|
+
'git.local': 'Branch locali',
|
|
416
|
+
'git.remote': 'Branch remote',
|
|
417
|
+
'git.empty': 'Nessun branch in questo repository.',
|
|
418
|
+
'git.detached': '(staccato)',
|
|
419
|
+
'git.switched': 'Passato al branch {branch}',
|
|
420
|
+
'git.switchFailed': 'Impossibile passare a {branch}: {error}',
|
|
421
|
+
'git.pullDone': 'Aggiornamenti scaricati',
|
|
422
|
+
'git.pullFailed': 'Impossibile scaricare gli aggiornamenti: {error}',
|
|
423
|
+
'git.listFailed': 'Impossibile elencare i branch: {error}',
|
|
424
|
+
'git.notRepo': 'non è un albero di lavoro git',
|
|
425
|
+
'git.gitMissing': 'git non è disponibile nel PATH',
|
|
426
|
+
'git.timedOut': 'git ha superato il tempo limite',
|
|
427
|
+
'git.onlyTitleScreen': 'Il cambio di branch è disponibile solo nella pagina vuota — usa /new per lasciare la sessione',
|
|
428
|
+
'git.footer': '↑/↓ scegli · Enter cambia · P pull · R aggiorna · Esc chiudi',
|
|
429
|
+
|
|
430
|
+
// ---- update tab ---------------------------------------------------------
|
|
431
|
+
'update.title': 'Aggiornamento',
|
|
432
|
+
'update.checking': 'Verifica delle versioni…',
|
|
433
|
+
'update.fetching': 'recupero dal registro npm…',
|
|
434
|
+
'update.fetchingVersions': 'Recupero delle versioni…',
|
|
435
|
+
'update.versionsSubtitle': 'Enter scarica · Esc indietro',
|
|
436
|
+
'update.installed': 'Installata',
|
|
437
|
+
'update.latest': 'Più recente (tag npm)',
|
|
438
|
+
'update.status': 'Stato',
|
|
439
|
+
'update.versions': 'Versioni',
|
|
440
|
+
'update.selectVersion': 'Seleziona versione…',
|
|
441
|
+
'update.restartApply': 'Riavvia per applicare {version}',
|
|
442
|
+
'update.enterRestart': 'Enter riavvia',
|
|
443
|
+
'update.discard': 'Scarta {version} scaricata',
|
|
444
|
+
'update.actions': 'Azioni',
|
|
445
|
+
'update.checkNow': 'Verifica ora',
|
|
446
|
+
'update.checkingShort': 'Verifica…',
|
|
447
|
+
'update.startupCheck': 'Verifica all\'avvio',
|
|
448
|
+
'update.profile': 'profilo',
|
|
449
|
+
'update.dshPackage': 'dsh (@deepseek-ai/dsh)',
|
|
450
|
+
'update.statusCorrupt': 'Installazione danneggiata — reinstalla sotto',
|
|
451
|
+
'update.statusError': 'Verifica del registro non riuscita: {error}',
|
|
452
|
+
'update.statusAvailable': 'Aggiornamento disponibile → {version}',
|
|
453
|
+
'update.statusUpToDate': 'Aggiornato',
|
|
454
|
+
'update.statusNoStable': 'Nessuna versione stabile — scegli in Versioni',
|
|
455
|
+
'update.notOnPath': 'non trovato nel PATH',
|
|
456
|
+
'update.subtitleStaged': '{package} {version} scaricata — riavvia per applicare',
|
|
457
|
+
'update.subtitleIdle': 'Enter seleziona · scarica e riavvia per applicare',
|
|
458
|
+
'update.download': 'Scarica',
|
|
459
|
+
'update.contacting': 'contatto del registro…',
|
|
460
|
+
'update.version': 'Versione',
|
|
461
|
+
'update.savingTo': 'Salvataggio in',
|
|
462
|
+
'update.escCancels': 'Esc annulla',
|
|
463
|
+
'update.restartApplyQ': 'Riavviare per applicare {label} {version}? (già scaricata)',
|
|
464
|
+
'update.downloadQ': 'Scaricare {label} {version} e riavviare per applicare?',
|
|
465
|
+
'update.localSwitch': ' — passa l\'installazione locale a una versione del registro',
|
|
466
|
+
'update.downloaded': 'scaricata · riavvia per applicare',
|
|
467
|
+
'update.downloadedToast': '{label} {version} scaricata · applicala dalla scheda Aggiornamento',
|
|
468
|
+
'update.downloadedConfirm': 'Scaricato riavviare per applicare {label} {version}? (y/n)',
|
|
469
|
+
'update.alreadyDownloadedConfirm': 'Già scaricato · riavviare per applicare {label} {version}? (y/n)',
|
|
470
|
+
'update.downloadCancelled': 'download annullato',
|
|
471
|
+
'update.downloadFailed': 'download non riuscito: {error}',
|
|
472
|
+
'update.stagedGone': 'il download preparato è sparito — scegli di nuovo la versione',
|
|
473
|
+
'update.locks.one': 'impossibile applicare mentre dsh è in esecuzione in {count} altro processo — chiudilo e riprova',
|
|
474
|
+
'update.locks.other': 'impossibile applicare mentre dsh è in esecuzione in {count} altri processi — chiudili e riprova',
|
|
475
|
+
'update.noNpm': 'impossibile applicare: npm non trovato',
|
|
476
|
+
'update.noDshCli': 'impossibile applicare: la CLI dsh non è stata trovata',
|
|
477
|
+
'update.installerFailed': 'impossibile avviare l\'installer — riavvia dsh per applicare {label}',
|
|
478
|
+
'update.applying': 'applicazione di {label} · uscita, riavvio…',
|
|
479
|
+
'update.stagedDiscarded': 'download preparato scartato',
|
|
480
|
+
'update.tagCached': 'in cache',
|
|
481
|
+
'update.tagStaged': 'preparata',
|
|
482
|
+
'update.installFailed': 'Installazione non riuscita (codice {code}) — riprova da Versioni',
|
|
483
|
+
'update.installFailedRetry': 'apri Aggiornamento → dsh-oc-tui → Versioni, poi scegli una versione da scaricare di nuovo',
|
|
484
|
+
'update.installUnreadable': 'l\'installazione ha riportato successo ma la versione installata è {installed} (attesa {expected}) — riparazione: {repair}',
|
|
485
|
+
'update.registryUnreachable': 'registro irraggiungibile: {error}',
|
|
486
|
+
'update.notOnRegistry': '{package} non è nel registro',
|
|
487
|
+
'update.registryHttp': 'il registro ha restituito HTTP {status} per {package}',
|
|
488
|
+
'update.noTarballUrl': 'la risposta del registro non contiene alcun URL del tarball',
|
|
489
|
+
'update.downloadHttp': 'download non riuscito: HTTP {status} per {url}',
|
|
490
|
+
'update.downloadEmpty': 'download non riuscito: corpo della risposta vuoto',
|
|
491
|
+
'update.integrityFailed': 'verifica di integrità non riuscita per {file} — download scartato',
|
|
492
|
+
'update.npmMissing': 'npm non trovato nel PATH',
|
|
493
|
+
'update.npmViewFailed': 'npm view {package} è uscito con {code}',
|
|
494
|
+
'update.timedOut': '\n(timeout dopo {ms}ms)',
|
|
495
|
+
'update.noOutput': '(nessun output)',
|
|
496
|
+
|
|
497
|
+
// ---- commands -----------------------------------------------------------
|
|
498
|
+
'command.settings': 'Apri le pagine delle impostazioni della TUI',
|
|
499
|
+
'command.help': 'Mostra il riferimento di tasti e comandi della TUI',
|
|
500
|
+
'command.stats': 'Mostra statistiche di token e cache della sessione',
|
|
501
|
+
'command.new': 'Avvia una nuova sessione',
|
|
502
|
+
'command.resume': 'Riprendi una sessione salvata',
|
|
503
|
+
'command.clear': 'Svuota il transcript',
|
|
504
|
+
'command.cancel': 'Annulla il turno in corso',
|
|
505
|
+
'command.rewind': 'Riavvolgi la sessione a un punto precedente',
|
|
506
|
+
'command.branch': 'Cambia branch git nella pagina vuota',
|
|
507
|
+
'command.quit': 'Esci dalla TUI',
|
|
508
|
+
|
|
509
|
+
// ---- help overlay -------------------------------------------------------
|
|
510
|
+
'help.title': 'DeepSeek Harness TUI — aiuto',
|
|
511
|
+
'help.enter': 'Enter',
|
|
512
|
+
'help.enterDesc': 'invia messaggio',
|
|
513
|
+
'help.ctrlEnter': 'Ctrl+Enter',
|
|
514
|
+
'help.ctrlEnterDesc': 'inserisci nuova riga',
|
|
515
|
+
'help.ctrlC': 'Ctrl+C',
|
|
516
|
+
'help.ctrlCDesc': 'annulla il turno in corso; premi di nuovo per uscire',
|
|
517
|
+
'help.ctrlP': 'Ctrl+P',
|
|
518
|
+
'help.ctrlPDesc': 'apri impostazioni',
|
|
519
|
+
'help.ctrlE': 'Ctrl+E',
|
|
520
|
+
'help.ctrlEDesc': 'attiva/disattiva il cursore del pensiero',
|
|
521
|
+
'help.tab': 'Tab',
|
|
522
|
+
'help.tabDesc': 'scorri l\'intensità di pensiero',
|
|
523
|
+
'help.ctrlN': 'Ctrl+N',
|
|
524
|
+
'help.ctrlNDesc': 'nuova sessione',
|
|
525
|
+
'help.ctrlG': 'Ctrl+G',
|
|
526
|
+
'help.ctrlGDesc': 'cambia branch git (pagina vuota)',
|
|
527
|
+
'help.ctrlD': 'Ctrl+D',
|
|
528
|
+
'help.ctrlDDesc': 'elimina sessione in Gestisci sessioni (premi due volte)',
|
|
529
|
+
'help.pg': 'PgUp / PgDn',
|
|
530
|
+
'help.pgDesc': 'scorri il transcript',
|
|
531
|
+
'help.shiftArrows': 'Shift+↑/↓',
|
|
532
|
+
'help.shiftArrowsDesc': 'scorri la barra di stato (finestre larghe)',
|
|
533
|
+
'help.upDown': 'Su / Giù',
|
|
534
|
+
'help.upDownDesc': 'cursore su/giù; cronologia ai bordi',
|
|
535
|
+
'help.mouse': 'Trascina mouse',
|
|
536
|
+
'help.mouseDesc': 'seleziona testo; clic destro copia',
|
|
537
|
+
'help.wheel': 'Rotella',
|
|
538
|
+
'help.wheelDesc': 'scorri transcript / impostazioni',
|
|
539
|
+
'help.escEsc': 'Esc Esc',
|
|
540
|
+
'help.escEscDesc': 'selettore riavvolgimento',
|
|
541
|
+
'help.esc': 'Esc',
|
|
542
|
+
'help.escDesc': 'chiudi overlay · annulla turno · svuota input',
|
|
543
|
+
'help.commands': 'Comandi:',
|
|
544
|
+
|
|
545
|
+
// ---- session manager / toasts ------------------------------------------
|
|
546
|
+
'session.newTitle': 'Nuova sessione',
|
|
547
|
+
'session.noSaved': 'Nessuna sessione salvata',
|
|
548
|
+
'session.manageTitle': 'Gestisci sessioni',
|
|
549
|
+
'session.manageSubtitle': 'Enter apri · Ctrl+D due volte per eliminare · Esc indietro',
|
|
550
|
+
'session.loading': 'Caricamento sessioni...',
|
|
551
|
+
'session.deleted': 'sessione {label} eliminata',
|
|
552
|
+
'session.deleteFailed': 'elimina sessione: {error}',
|
|
553
|
+
'session.deleteNotFound': 'la directory della sessione salvata non è stata trovata',
|
|
554
|
+
'session.deleteCancelled': 'eliminazione annullata',
|
|
555
|
+
'session.resumed': 'sessione {id} ripresa',
|
|
556
|
+
'session.started': 'sessione {id} avviata',
|
|
557
|
+
'session.openFailed': 'impossibile aprire la sessione: {error}',
|
|
558
|
+
'session.forkSummary': '{label} da {parent} · {files}',
|
|
559
|
+
'session.forkDropped': ' · {count} input in attesa ereditati scartati',
|
|
560
|
+
'session.conversationOnly': 'solo conversazione',
|
|
561
|
+
'session.rewindLabel': 'riavvolgimento #{n}',
|
|
562
|
+
'session.files': 'file: {summary}',
|
|
563
|
+
'session.error': 'errore: {error}',
|
|
564
|
+
'session.interruptFirst': 'annulla prima il turno in corso (/cancel)',
|
|
565
|
+
'session.interruptFirstEsc': 'annulla prima il turno in corso (Esc o /cancel)',
|
|
566
|
+
'session.startFirst': 'avvia prima una sessione',
|
|
567
|
+
'session.noReasoningLevels': 'il modello corrente non espone livelli di ragionamento',
|
|
568
|
+
'session.settingsUnavailable': 'impostazioni non disponibili',
|
|
569
|
+
'session.interruptRequested': 'interruzione richiesta',
|
|
570
|
+
'session.nothingToInterrupt': 'nulla da interrompere',
|
|
571
|
+
'session.noSessionRunning': 'nessuna sessione in esecuzione',
|
|
572
|
+
'session.promptCleared': 'input svuotato',
|
|
573
|
+
'session.exitAgain': 'premi Ctrl+C di nuovo per uscire',
|
|
574
|
+
'session.usageResume': 'uso: /resume <sessionId>',
|
|
575
|
+
'session.currentModel': 'modello corrente: {model}',
|
|
576
|
+
'session.modelSet': 'modello impostato su {model} (vale per la prossima richiesta)',
|
|
577
|
+
'session.currentProvider': 'provider corrente: {provider}',
|
|
578
|
+
'session.providerSet': 'provider impostato su {provider} (vale per la prossima richiesta)',
|
|
579
|
+
'session.unknownCommand': 'comando sconosciuto /{name} — prova /help',
|
|
580
|
+
'session.queryMissing': 'la query di sessione non è montata in questo profilo',
|
|
581
|
+
'session.listHeader': 'sessioni:',
|
|
582
|
+
'session.noPersisted': 'nessuna sessione salvata',
|
|
583
|
+
'session.listFailed': 'impossibile elencare le sessioni: {error}',
|
|
584
|
+
'session.modelNoImages': 'il modello "{model}" non supporta input immagine',
|
|
585
|
+
'session.imageAttachFailed': 'allegato immagine non riuscito: {error}',
|
|
586
|
+
'session.attachmentsUnavailable': 'servizio allegati non disponibile; impossibile leggere l\'immagine',
|
|
587
|
+
'session.copied.one': '{count} riga copiata negli appunti',
|
|
588
|
+
'session.copied.other': '{count} righe copiate negli appunti',
|
|
589
|
+
'session.valueRequired': 'è richiesto un valore',
|
|
590
|
+
'session.minChars': 'almeno {count} caratteri',
|
|
591
|
+
'session.maxChars': 'al massimo {count} caratteri',
|
|
592
|
+
'session.answerRequired': 'seleziona un\'opzione o digita una risposta',
|
|
593
|
+
'session.typeAnswer': 'digita una risposta o premi Esc',
|
|
594
|
+
'session.updatesAvailable': 'Aggiornamenti: {list} — Ctrl+P → Aggiornamento',
|
|
595
|
+
'session.versionsError': 'versioni: {error}',
|
|
596
|
+
'session.mcpError': 'MCP: {error}',
|
|
597
|
+
'session.noClipboard': 'nessun percorso degli appunti disponibile',
|
|
598
|
+
'session.unsupportedInteraction': 'tipo di interazione non supportato: {kind}',
|
|
599
|
+
|
|
600
|
+
// ---- tool activity summaries -------------------------------------------
|
|
601
|
+
'tool.run': 'esegui {command}',
|
|
602
|
+
'tool.askUser': 'chiedi all\'utente',
|
|
603
|
+
'tool.askQuestions': 'fai {count} domande',
|
|
31
604
|
|
|
32
|
-
// ----
|
|
33
|
-
'
|
|
34
|
-
|
|
35
|
-
'splash.shortcutThinking': 'pensiero',
|
|
36
|
-
|
|
37
|
-
// ---- header / sidebar / status row -------------------------------------
|
|
38
|
-
// ---- command-line help (dsh --profile tui --help) -----------------------
|
|
39
|
-
'startup.description': "Avvia l'interfaccia terminale di DeepSeek Harness.",
|
|
40
|
-
'startup.helpOption': 'mostra questo aiuto',
|
|
41
|
-
'startup.resume': 'riprendi una sessione persistente esistente per id',
|
|
42
|
-
'startup.model': 'id modello predefinito per le nuove sessioni',
|
|
43
|
-
'startup.provider': 'route del provider predefinita per le nuove sessioni',
|
|
44
|
-
'startup.sidebar': 'mostra la barra laterale delle sessioni (predefinito)',
|
|
45
|
-
'startup.noSidebar': 'avvia senza la barra laterale',
|
|
46
|
-
'startup.examples': 'Esempi:',
|
|
47
|
-
'startup.exampleFresh': 'avvia una nuova sessione',
|
|
48
|
-
'startup.exampleResume': 'riprendi una sessione persistente',
|
|
49
|
-
|
|
50
|
-
'header.workspace': 'AREA DI LAVORO',
|
|
51
|
-
'sidebar.sessions': 'SESSIONI',
|
|
52
|
-
'sidebar.recent': 'RECENTI',
|
|
53
|
-
'sidebar.newSession': '+ Nuova sessione',
|
|
54
|
-
'status.model': 'modello',
|
|
55
|
-
'status.draftTokens': '{count} tok bozza',
|
|
56
|
-
'status.ctrlP': 'ctrl+p comandi',
|
|
57
|
-
'status.interrupt': 'interrompi: ctrl+c',
|
|
58
|
-
|
|
59
|
-
// ---- composer command hints --------------------------------------------
|
|
60
|
-
'hint.help': 'mostra aiuto',
|
|
61
|
-
'hint.settings': 'apri impostazioni',
|
|
62
|
-
'hint.new': 'nuova sessione',
|
|
63
|
-
'hint.resume': 'riprendi sessione',
|
|
64
|
-
'hint.model': 'seleziona modello',
|
|
65
|
-
'hint.provider': 'seleziona provider',
|
|
66
|
-
'hint.rewind': 'riavvolgi',
|
|
67
|
-
'hint.stats': 'statistiche e uso dei token',
|
|
68
|
-
'hint.clear': 'svuota la vista',
|
|
69
|
-
'hint.cancel': 'annulla il turno in corso',
|
|
70
|
-
'hint.quit': 'esci',
|
|
71
|
-
'hint.compact': 'comprimi contesto',
|
|
72
|
-
'hint.goal': 'gestisci obiettivo',
|
|
73
|
-
|
|
74
|
-
// ---- transcript blocks --------------------------------------------------
|
|
75
|
-
'transcript.turns.one': '{count} turno',
|
|
76
|
-
'transcript.turns.other': '{count} turni',
|
|
77
|
-
'transcript.steps.one': '{count} passo',
|
|
78
|
-
'transcript.steps.other': '{count} passi',
|
|
79
|
-
'transcript.thinking': ' pensiero',
|
|
80
|
-
'transcript.streaming': ' · in streaming…',
|
|
81
|
-
'transcript.steeringBadge': ' ⟲ intervento',
|
|
82
|
-
'transcript.tasks': 'attività',
|
|
83
|
-
'transcript.systemPrompt': ' prompt di sistema',
|
|
84
|
-
'transcript.pendingInput': ' input in attesa · ',
|
|
85
|
-
'transcript.steering': ' intervento',
|
|
86
|
-
'transcript.queued': ' in coda',
|
|
87
|
-
'note.systemReminder': 'system-reminder',
|
|
88
|
-
'note.compaction': 'compattazione',
|
|
89
|
-
|
|
90
|
-
// ---- images and mermaid -------------------------------------------------
|
|
91
|
-
'image.attachment': '🖼 immagine allegata',
|
|
92
|
-
'image.rendering': '⏳ rendering dell\'immagine…',
|
|
93
|
-
'image.renderFailed': '⚠ rendering dell\'immagine non riuscito · {error}',
|
|
94
|
-
'image.mermaidRendering': '⏳ rendering del diagramma mermaid…',
|
|
95
|
-
'image.mermaidTooWide': '↔ il diagramma mermaid richiede {width} colonne, questo pannello ne ha {budget}',
|
|
96
|
-
'image.altFallback': 'immagine',
|
|
97
|
-
|
|
98
|
-
// ---- composer / approval prompt ----------------------------------------
|
|
99
|
-
'composer.imageHint': 'Immagine incollata: serve un modello/plugin multimodale o deepseek-v4-flash-vision-exp, altrimenti l\'immagine non può essere letta',
|
|
100
|
-
'composer.approval': 'Approvazione · ',
|
|
101
|
-
'composer.summary': 'Riepilogo · ',
|
|
102
|
-
'composer.origin': 'Origine · ',
|
|
103
|
-
'composer.risk': 'Rischio · ',
|
|
104
|
-
'composer.approvalHint': 'y consenti · n nega · Esc annulla',
|
|
105
|
-
'risk.low': 'basso',
|
|
106
|
-
'risk.medium': 'medio',
|
|
107
|
-
'risk.high': 'alto',
|
|
108
|
-
'composer.effortHint': 'Tab / ←/→ regola · Esc chiudi',
|
|
109
|
-
|
|
110
|
-
// ---- right status rail --------------------------------------------------
|
|
111
|
-
'rail.model': 'MODELLO',
|
|
112
|
-
'rail.thinking': 'PENSIERO',
|
|
113
|
-
'rail.context': 'CONTESTO',
|
|
114
|
-
'rail.session': 'SESSIONE',
|
|
115
|
-
'rail.goal': 'OBIETTIVO',
|
|
116
|
-
'rail.subagents': 'SUBAGENTI',
|
|
117
|
-
'rail.noData': '—',
|
|
118
|
-
'rail.percentUsed': '{percent}% usato',
|
|
119
|
-
'rail.tokens': '~{used} / {window} token',
|
|
120
|
-
'rail.cacheHit': 'cache {percent}% di hit',
|
|
121
|
-
'rail.breakdown': 'sistema {system} · strumenti {tools} · messaggi {messages}',
|
|
122
|
-
'rail.contextPending': 'mostrato quando l\'uso viene riportato',
|
|
123
|
-
'rail.subagentCounts': '{running} attivi · {total} totali',
|
|
124
|
-
'rail.unreadable': '{label} (illeggibile)',
|
|
125
|
-
'rail.more': '… +{count} altri',
|
|
126
|
-
'rail.round': ' · turno {started}/{max}',
|
|
127
|
-
'goal.active': 'attivo',
|
|
128
|
-
'goal.paused': 'in pausa',
|
|
129
|
-
'goal.blocked': 'bloccato',
|
|
130
|
-
'goal.complete': 'completato',
|
|
131
|
-
|
|
132
|
-
// ---- session stats window ----------------------------------------------
|
|
133
|
-
'stats.title': 'statistiche sessione',
|
|
134
|
-
'stats.hint': 'clic sulla striscia o /stats',
|
|
135
|
-
'stats.usage': 'uso',
|
|
136
|
-
'stats.duration': 'durata',
|
|
137
|
-
'stats.speed': 'velocità',
|
|
138
|
-
'stats.tokens': 'token',
|
|
139
|
-
'stats.cache': 'cache',
|
|
140
|
-
'stats.context': 'contesto',
|
|
141
|
-
'stats.noSteps': 'nessun passo completato',
|
|
142
|
-
'stats.llmTime': 'LLM {value}',
|
|
143
|
-
'stats.toolTime': 'strumenti {value}',
|
|
144
|
-
'stats.ttft': 'TTFT medio {value}',
|
|
145
|
-
'stats.tokensPerSecond': '{value} tok/s',
|
|
146
|
-
'stats.cacheRate': 'cache {percent}%',
|
|
147
|
-
'stats.inOut': 'in {input} · out {output}',
|
|
148
|
-
'stats.cacheDetail': '{percent}% di hit · letti {read} · scritti {write} · mancati {miss}',
|
|
149
|
-
'stats.contextUsed': 'usato {percent}% ~{used} / {window}',
|
|
150
|
-
'stats.systemPrompt': 'prompt di sistema',
|
|
151
|
-
'stats.tools': 'strumenti',
|
|
152
|
-
'stats.messages': 'messaggi',
|
|
153
|
-
'stats.compositionUnavailable': 'composizione non disponibile',
|
|
154
|
-
'stats.contextPending': 'l\'occupazione del contesto appare quando una richiesta riporta l\'uso',
|
|
155
|
-
|
|
156
|
-
// ---- questions modal ----------------------------------------------------
|
|
157
|
-
'questions.title': 'Domanda',
|
|
158
|
-
'questions.titleOf': 'Domanda {index} di {total}',
|
|
159
|
-
'questions.defer': 'Esc rinvia',
|
|
160
|
-
'questions.range': '{from}-{to} di {total} PgUp/PgDn',
|
|
161
|
-
'questions.other': 'Altro: ',
|
|
162
|
-
'questions.answer': 'Risposta: ',
|
|
163
|
-
'questions.placeholder': 'digitare una risposta propria',
|
|
164
|
-
'questions.hintCustom': 'Enter conferma · Esc indietro',
|
|
165
|
-
'questions.hintMulti': 'Spazio alterna · Enter continua · Su/Giù sposta',
|
|
166
|
-
'questions.hintSingle': 'Enter seleziona · Su/Giù sposta',
|
|
167
|
-
|
|
168
|
-
// ---- secret prompt ------------------------------------------------------
|
|
169
|
-
'secret.hint': 'Enter invia · Esc annulla',
|
|
170
|
-
|
|
171
|
-
// ---- settings dialog chrome --------------------------------------------
|
|
172
|
-
'settings.title': 'Impostazioni',
|
|
173
|
-
'settings.menu': 'MENU',
|
|
174
|
-
'settings.shared': 'Condiviso con DeepSeek Harness WebUI',
|
|
175
|
-
'settings.footerEdit': 'Enter salva · Esc annulla',
|
|
176
|
-
'settings.footerMenu': '↑/↓ sposta · Tab menu · Enter seleziona · Esc indietro',
|
|
177
|
-
'settings.footerPlain': '↑/↓ sposta · Enter seleziona · Esc indietro',
|
|
178
|
-
'settings.confirmHint': '{text} · Y / N',
|
|
179
|
-
'settings.confirmDefault': 'Y conferma · N annulla',
|
|
180
|
-
'settings.confirmDeleteSession': 'Ctrl+D di nuovo per eliminare',
|
|
181
|
-
'settings.confirmChange': 'Confermare questa modifica?',
|
|
182
|
-
'settings.deleteTwice': 'Ctrl+D di nuovo per eliminare ',
|
|
183
|
-
'settings.deleteMcpTwice': 'Canc di nuovo per rimuovere ',
|
|
184
|
-
'settings.noSession': 'nessuna sessione selezionata',
|
|
185
|
-
'settings.noSessions': 'nessuna sessione disponibile',
|
|
186
|
-
'settings.noMcp': 'nessun server MCP selezionato',
|
|
187
|
-
'settings.noOptions': 'nessuna opzione disponibile per {label}',
|
|
188
|
-
'settings.saved': 'salvato nelle impostazioni DSH',
|
|
189
|
-
'settings.providerRemoved': 'provider rimosso',
|
|
190
|
-
'settings.conflict': 'impostazioni modificate altrove; ricaricate',
|
|
191
|
-
'settings.error': 'impostazioni: {error}',
|
|
192
|
-
'settings.dshSettings': 'Impostazioni DSH',
|
|
193
|
-
'settings.optionList': 'Enter seleziona · Esc indietro',
|
|
194
|
-
|
|
195
|
-
// ---- settings left menu -------------------------------------------------
|
|
196
|
-
'menu.main': 'Principale',
|
|
197
|
-
'menu.model': 'Modello',
|
|
198
|
-
'menu.update': 'Aggiornamento',
|
|
199
|
-
'menu.mcp': 'MCP',
|
|
200
|
-
|
|
201
|
-
// ---- settings rows: main tab -------------------------------------------
|
|
202
|
-
'settings.general': 'Generale',
|
|
203
|
-
'settings.graphics': 'Grafica',
|
|
204
|
-
'settings.sessions': 'Sessioni',
|
|
205
|
-
'settings.system': 'Sistema',
|
|
206
|
-
'settings.busyEnter': 'Enter occupato',
|
|
207
|
-
'settings.defaultPreset': 'Preset predefinito',
|
|
208
|
-
'settings.permissionPreset': 'Preset permessi',
|
|
209
|
-
'settings.permissionDangerConfirm': 'Abilitare accesso illimitato a strumenti e file?',
|
|
210
|
-
'settings.graphicsRendering': 'Rendering grafico',
|
|
211
|
-
'settings.noProtocolFallback': 'Fallback senza protocollo',
|
|
212
|
-
'settings.imageHeightCap': 'Altezza max immagine (righe)',
|
|
213
|
-
'settings.mermaidRendering': 'Rendering Mermaid',
|
|
214
|
-
'settings.newSession': 'Nuova sessione',
|
|
215
|
-
'settings.manageSessions': 'Gestisci sessioni',
|
|
216
|
-
'settings.providerConfig': 'Config API del provider',
|
|
217
|
-
'settings.updateManager': 'Gestione aggiornamenti',
|
|
218
|
-
'settings.settingsFile': 'File delle impostazioni',
|
|
219
|
-
'settings.language': 'Lingua',
|
|
220
|
-
'settings.languageSystem': 'Sistema ({language})',
|
|
221
|
-
'settings.languageSaved': 'lingua: {language}',
|
|
222
|
-
|
|
223
|
-
// ---- model tab ----------------------------------------------------------
|
|
224
|
-
'model.title': 'Modello',
|
|
225
|
-
'model.subtitle': 'Enter imposta un modello elencato come predefinito',
|
|
226
|
-
'model.defaultSection': 'Predefinito',
|
|
227
|
-
'model.defaultProvider': 'Provider predefinito',
|
|
228
|
-
'model.defaultModel': 'Modello predefinito',
|
|
229
|
-
'model.reasoning': 'Ragionamento',
|
|
230
|
-
'model.providerUrl': 'URL del provider',
|
|
231
|
-
'model.providerApiKey': 'Chiave API del provider',
|
|
232
|
-
'model.displayName': 'Nome visualizzato',
|
|
233
|
-
'model.wireProtocol': 'Protocollo di trasporto',
|
|
234
|
-
'model.defaultImageInput': 'Input immagine predefinito',
|
|
235
|
-
'model.models': 'Modelli',
|
|
236
|
-
'model.fetch': 'recupera…',
|
|
237
|
-
'model.selectedCount': '{count} selezionati',
|
|
238
|
-
'model.removeProvider': 'Rimuovi provider',
|
|
239
|
-
'model.removeProviderConfirm': 'Rimuovere {name} e la sua credenziale gestita?',
|
|
240
|
-
'model.noModels': 'nessun modello disponibile',
|
|
241
|
-
'model.noModelsReturned': 'il provider non ha restituito modelli',
|
|
242
|
-
'model.fetchUnavailable': 'recupero automatico non disponibile — modelli salvati · Enter alterna',
|
|
243
|
-
'model.fetchOk': 'recuperato automaticamente · Enter alterna · Esc indietro',
|
|
244
|
-
'model.fetching': 'Recupero dei modelli…',
|
|
245
|
-
'model.autoFetching': 'recupero automatico…',
|
|
246
|
-
'model.credentialConfigured': 'configurata ({source})',
|
|
247
|
-
'model.credentialMissing': 'non configurata',
|
|
248
|
-
'model.defaultTag': 'predefinito',
|
|
249
|
-
'model.providerUnavailable': 'il provider non è più disponibile',
|
|
250
|
-
'model.namespaceUnavailable': 'il namespace delle impostazioni del provider non è disponibile',
|
|
251
|
-
'model.apiKeyEmpty': 'la chiave API non può essere vuota',
|
|
252
|
-
'model.credentialsUnavailable': 'il servizio credenziali non è disponibile',
|
|
253
|
-
'model.noProviderModels': 'il provider selezionato non ha modelli disponibili',
|
|
254
|
-
|
|
255
|
-
// ---- MCP tab ------------------------------------------------------------
|
|
256
|
-
'mcp.title': 'MCP',
|
|
257
|
-
'mcp.subtitle': 'Enter modifica · Canc rimuovi · Esc indietro',
|
|
258
|
-
'mcp.editSubtitle': 'Enter modifica · Esc indietro',
|
|
259
|
-
'mcp.servers': 'Server MCP',
|
|
260
|
-
'mcp.empty': 'Nessun server MCP configurato',
|
|
261
|
-
'mcp.add': 'Aggiungi server MCP',
|
|
262
|
-
'mcp.scope': 'ambito',
|
|
263
|
-
'mcp.scopeUserPrefix': 'utente · {path}',
|
|
264
|
-
'mcp.scopePathPrefix': 'percorso · {path}',
|
|
265
|
-
'mcp.configFiles': 'File di configurazione',
|
|
266
|
-
'mcp.userScope': 'utente (tutte le sessioni)',
|
|
267
|
-
'mcp.secrets': 'Segreti',
|
|
268
|
-
'mcp.secretsPlain': 'testo in chiaro nei file di configurazione',
|
|
269
|
-
'mcp.loaded': 'caricato',
|
|
270
|
-
'mcp.notCreated': 'non ancora creato',
|
|
271
|
-
'mcp.type.stdio': 'Comando locale',
|
|
272
|
-
'mcp.type.http': 'HTTP',
|
|
273
|
-
'mcp.type.sse': 'SSE',
|
|
274
|
-
'mcp.state.connected': '● connesso',
|
|
275
|
-
'mcp.state.tools.one': '● {count} strumento',
|
|
276
|
-
'mcp.state.tools.other': '● {count} strumenti',
|
|
277
|
-
'mcp.state.pending': '… connessione',
|
|
278
|
-
'mcp.state.disabled': '○ disattivato',
|
|
279
|
-
'mcp.state.idle': '○ non connesso',
|
|
280
|
-
'mcp.form.add': 'Aggiungi server MCP',
|
|
281
|
-
'mcp.form.edit': 'Modifica server MCP · {name}',
|
|
282
|
-
'mcp.titleAdd': 'MCP · aggiungi',
|
|
283
|
-
'mcp.titleEdit': 'MCP · modifica',
|
|
284
|
-
'mcp.field.name': 'Nome',
|
|
285
|
-
'mcp.field.type': 'Tipo',
|
|
286
|
-
'mcp.field.timeout': 'Timeout (ms)',
|
|
287
|
-
'mcp.field.command': 'Comando',
|
|
288
|
-
'mcp.field.args': 'Argomenti',
|
|
289
|
-
'mcp.field.env': 'Ambiente (JSON)',
|
|
290
|
-
'mcp.field.url': 'URL',
|
|
291
|
-
'mcp.field.headers': 'Intestazioni (JSON)',
|
|
292
|
-
'mcp.field.scope': 'Ambito',
|
|
293
|
-
'mcp.field.path': 'Percorso',
|
|
294
|
-
'mcp.field.enabled': 'Attivato',
|
|
295
|
-
'mcp.field.save': 'Salva',
|
|
296
|
-
'mcp.field.remove': 'Rimuovi',
|
|
297
|
-
'mcp.choice.stdio': 'Comando locale (stdio)',
|
|
298
|
-
'mcp.choice.http': 'HTTP (con streaming)',
|
|
299
|
-
'mcp.choice.sse': 'SSE (HTTP+SSE legacy)',
|
|
300
|
-
'mcp.choice.scopeUser': 'Utente — tutte le sessioni',
|
|
301
|
-
'mcp.choice.scopePath': 'Percorso — sessioni sotto una directory',
|
|
302
|
-
'mcp.removeConfirm': 'Rimuovere questo server MCP e disconnetterlo?',
|
|
303
|
-
'mcp.saved': 'Server MCP salvato',
|
|
304
|
-
'mcp.added': 'Server MCP aggiunto',
|
|
305
|
-
'mcp.removed': 'Server MCP rimosso',
|
|
306
|
-
'mcp.error.name': 'il nome deve avere da 1 a 32 caratteri tra lettere, cifre, "-" o "_"',
|
|
307
|
-
'mcp.error.duplicate': 'un server MCP chiamato "{name}" è già configurato',
|
|
308
|
-
'mcp.error.timeout': 'timeoutMs deve essere un intero tra 1 e {max}',
|
|
309
|
-
'mcp.error.pathNeeded': 'un server con ambito percorso richiede una directory',
|
|
310
|
-
'mcp.error.pathAbsolute': 'l\'ambito percorso deve essere una directory assoluta',
|
|
311
|
-
'mcp.error.commandNeeded': 'un server stdio richiede un comando',
|
|
312
|
-
'mcp.error.urlParse': 'impossibile analizzare l\'URL',
|
|
313
|
-
'mcp.error.urlScheme': 'l\'URL deve usare http o https',
|
|
314
|
-
'mcp.error.pathNotDir': 'l\'ambito percorso non è una directory: {path}',
|
|
315
|
-
'mcp.error.configIsDir': 'il percorso del file di configurazione è una directory: {path}',
|
|
316
|
-
'mcp.error.notFound': 'nessun server MCP chiamato "{name}" è configurato',
|
|
317
|
-
'mcp.error.documentGone': 'il documento che definisce "{name}" è sparito: {error}',
|
|
318
|
-
'mcp.error.noClient': 'l\'host non fornisce alcun client MCP',
|
|
319
|
-
'mcp.error.connectTimeout': 'timeout durante la connessione a {name}',
|
|
320
|
-
'mcp.error.json': 'il documento non è JSON valido: {error}',
|
|
321
|
-
'mcp.error.jsonObject': 'il documento deve essere un oggetto JSON',
|
|
322
|
-
'mcp.error.serversObject': '"servers" deve essere un oggetto JSON',
|
|
323
|
-
'mcp.error.argsArray': 'gli argomenti devono essere un array JSON di stringhe',
|
|
324
|
-
'mcp.error.argsTypes': 'gli argomenti devono essere stringhe o numeri',
|
|
325
|
-
'mcp.error.argsUnclosed': 'gli argomenti contengono una virgoletta non chiusa',
|
|
326
|
-
'mcp.error.envObject': '{label} deve essere un oggetto JSON',
|
|
327
|
-
'mcp.error.envValue': 'il valore "{name}" di {label} deve essere stringa, numero o booleano',
|
|
328
|
-
'mcp.error.header': 'intestazione HTTP non valida "{name}"',
|
|
329
|
-
'mcp.error.envName': 'nome ambiente non valido "{name}"',
|
|
330
|
-
|
|
331
|
-
// ---- rewind -------------------------------------------------------------
|
|
332
|
-
'rewind.title': 'Riavvolgi',
|
|
333
|
-
'rewind.restoreTo': 'Ripristina al punto precedente: {label}',
|
|
334
|
-
'rewind.restorePrompt': 'Ripristina la conversazione al punto precedente a…',
|
|
335
|
-
'rewind.empty': 'Ancora nulla a cui riavvolgere.',
|
|
336
|
-
'rewind.option.conversation': 'Ripristina conversazione',
|
|
337
|
-
'rewind.option.both': 'Ripristina conversazione e file',
|
|
338
|
-
'rewind.option.code': 'Ripristina file',
|
|
339
|
-
'rewind.option.cancel': 'Annulla',
|
|
340
|
-
'rewind.current': '(corrente)',
|
|
341
|
-
'rewind.noPoints': 'nessun messaggio utente a cui riavvolgere',
|
|
342
|
-
'rewind.unknownPoint': 'punto di riavvolgimento sconosciuto "{selector}" — usare un numero o last',
|
|
343
|
-
'rewind.noPoint': 'nessun punto di riavvolgimento {n} — 1..{count}',
|
|
344
|
-
'rewind.notGit': 'non è un worktree git',
|
|
345
|
-
'rewind.noBackup': 'nessuna posizione di backup',
|
|
346
|
-
'rewind.filesNotRestored': 'file non ripristinati',
|
|
347
|
-
'rewind.filesNotRestoredReason': 'file non ripristinati ({reason})',
|
|
348
|
-
'rewind.restored.one': '{count} file tracciato ripristinato da HEAD',
|
|
349
|
-
'rewind.restored.other': '{count} file tracciati ripristinati da HEAD',
|
|
350
|
-
'rewind.removed.one': '{count} nuovo file rimosso',
|
|
351
|
-
'rewind.removed.other': '{count} nuovi file rimossi',
|
|
352
|
-
'rewind.skipped': '{count} saltati',
|
|
353
|
-
'rewind.previousSaved': 'contenuto precedente salvato in {path}',
|
|
354
|
-
'rewind.noChanges': 'nessuna modifica ai file dopo questo punto',
|
|
355
|
-
'rewind.image': '[immagine]',
|
|
356
|
-
'rewind.images': '[{count} immagini]',
|
|
357
|
-
'rewind.emptyMessage': '(vuoto)',
|
|
358
|
-
|
|
359
|
-
// ---- update tab ---------------------------------------------------------
|
|
360
|
-
'update.title': 'Aggiornamento',
|
|
361
|
-
'update.checking': 'Verifica delle versioni…',
|
|
362
|
-
'update.fetching': 'recupero dal registro npm…',
|
|
363
|
-
'update.fetchingVersions': 'Recupero delle versioni…',
|
|
364
|
-
'update.versionsSubtitle': 'Enter scarica · Esc indietro',
|
|
365
|
-
'update.installed': 'Installata',
|
|
366
|
-
'update.latest': 'Più recente (tag npm)',
|
|
367
|
-
'update.status': 'Stato',
|
|
368
|
-
'update.versions': 'Versioni',
|
|
369
|
-
'update.selectVersion': 'Seleziona versione…',
|
|
370
|
-
'update.restartApply': 'Riavvia per applicare {version}',
|
|
371
|
-
'update.enterRestart': 'Enter riavvia',
|
|
372
|
-
'update.discard': 'Scarta {version} scaricata',
|
|
373
|
-
'update.actions': 'Azioni',
|
|
374
|
-
'update.checkNow': 'Verifica ora',
|
|
375
|
-
'update.checkingShort': 'Verifica…',
|
|
376
|
-
'update.startupCheck': 'Verifica all\'avvio',
|
|
377
|
-
'update.profile': 'profilo',
|
|
378
|
-
'update.dshPackage': 'dsh (@deepseek-ai/dsh)',
|
|
379
|
-
'update.statusCorrupt': 'Installazione danneggiata — reinstalla sotto',
|
|
380
|
-
'update.statusError': 'Verifica del registro non riuscita: {error}',
|
|
381
|
-
'update.statusAvailable': 'Aggiornamento disponibile → {version}',
|
|
382
|
-
'update.statusUpToDate': 'Aggiornato',
|
|
383
|
-
'update.statusNoStable': 'Nessuna versione stabile — scegli in Versioni',
|
|
384
|
-
'update.notOnPath': 'non trovato nel PATH',
|
|
385
|
-
'update.subtitleStaged': '{package} {version} scaricata — riavvia per applicare',
|
|
386
|
-
'update.subtitleIdle': 'Enter seleziona · scarica e riavvia per applicare',
|
|
387
|
-
'update.download': 'Scarica',
|
|
388
|
-
'update.contacting': 'contatto del registro…',
|
|
389
|
-
'update.version': 'Versione',
|
|
390
|
-
'update.savingTo': 'Salvataggio in',
|
|
391
|
-
'update.escCancels': 'Esc annulla',
|
|
392
|
-
'update.restartApplyQ': 'Riavviare per applicare {label} {version}? (già scaricata)',
|
|
393
|
-
'update.downloadQ': 'Scaricare {label} {version} e riavviare per applicare?',
|
|
394
|
-
'update.localSwitch': ' — passa l\'installazione locale a una versione del registro',
|
|
395
|
-
'update.downloaded': 'scaricata · riavvia per applicare',
|
|
396
|
-
'update.downloadedToast': '{label} {version} scaricata · applicala dalla scheda Aggiornamento',
|
|
397
|
-
'update.downloadedConfirm': 'Scaricato riavviare per applicare {label} {version}? (y/n)',
|
|
398
|
-
'update.alreadyDownloadedConfirm': 'Già scaricato · riavviare per applicare {label} {version}? (y/n)',
|
|
399
|
-
'update.downloadCancelled': 'download annullato',
|
|
400
|
-
'update.downloadFailed': 'download non riuscito: {error}',
|
|
401
|
-
'update.stagedGone': 'il download preparato è sparito — scegli di nuovo la versione',
|
|
402
|
-
'update.locks.one': 'impossibile applicare mentre dsh è in esecuzione in {count} altro processo — chiudilo e riprova',
|
|
403
|
-
'update.locks.other': 'impossibile applicare mentre dsh è in esecuzione in {count} altri processi — chiudili e riprova',
|
|
404
|
-
'update.noNpm': 'impossibile applicare: npm non trovato',
|
|
405
|
-
'update.noDshCli': 'impossibile applicare: la CLI dsh non è stata trovata',
|
|
406
|
-
'update.installerFailed': 'impossibile avviare l\'installer — riavvia dsh per applicare {label}',
|
|
407
|
-
'update.applying': 'applicazione di {label} · uscita, riavvio…',
|
|
408
|
-
'update.stagedDiscarded': 'download preparato scartato',
|
|
409
|
-
'update.tagCached': 'in cache',
|
|
410
|
-
'update.tagStaged': 'preparata',
|
|
411
|
-
'update.installFailed': 'Installazione non riuscita (codice {code}) — riprova da Versioni',
|
|
412
|
-
'update.installFailedRetry': 'apri Aggiornamento → dsh-oc-tui → Versioni, poi scegli una versione da scaricare di nuovo',
|
|
413
|
-
'update.installUnreadable': 'l\'installazione ha riportato successo ma la versione installata è {installed} (attesa {expected}) — riparazione: {repair}',
|
|
414
|
-
'update.registryUnreachable': 'registro irraggiungibile: {error}',
|
|
415
|
-
'update.notOnRegistry': '{package} non è nel registro',
|
|
416
|
-
'update.registryHttp': 'il registro ha restituito HTTP {status} per {package}',
|
|
417
|
-
'update.noTarballUrl': 'la risposta del registro non contiene alcun URL del tarball',
|
|
418
|
-
'update.downloadHttp': 'download non riuscito: HTTP {status} per {url}',
|
|
419
|
-
'update.downloadEmpty': 'download non riuscito: corpo della risposta vuoto',
|
|
420
|
-
'update.integrityFailed': 'verifica di integrità non riuscita per {file} — download scartato',
|
|
421
|
-
'update.npmMissing': 'npm non trovato nel PATH',
|
|
422
|
-
'update.npmViewFailed': 'npm view {package} è uscito con {code}',
|
|
423
|
-
'update.timedOut': '\n(timeout dopo {ms}ms)',
|
|
424
|
-
'update.noOutput': '(nessun output)',
|
|
425
|
-
|
|
426
|
-
// ---- commands -----------------------------------------------------------
|
|
427
|
-
'command.settings': 'Apri le pagine delle impostazioni della TUI',
|
|
428
|
-
'command.help': 'Mostra il riferimento di tasti e comandi della TUI',
|
|
429
|
-
'command.stats': 'Mostra statistiche di token e cache della sessione',
|
|
430
|
-
'command.new': 'Avvia una nuova sessione',
|
|
431
|
-
'command.resume': 'Riprendi una sessione salvata',
|
|
432
|
-
'command.clear': 'Svuota il transcript',
|
|
433
|
-
'command.cancel': 'Annulla il turno in corso',
|
|
434
|
-
'command.rewind': 'Riavvolgi la sessione a un punto precedente',
|
|
435
|
-
'command.quit': 'Esci dalla TUI',
|
|
436
|
-
|
|
437
|
-
// ---- help overlay -------------------------------------------------------
|
|
438
|
-
'help.title': 'DeepSeek Harness TUI — aiuto',
|
|
439
|
-
'help.enter': 'Enter',
|
|
440
|
-
'help.enterDesc': 'invia messaggio',
|
|
441
|
-
'help.ctrlEnter': 'Ctrl+Enter',
|
|
442
|
-
'help.ctrlEnterDesc': 'inserisci nuova riga',
|
|
443
|
-
'help.ctrlC': 'Ctrl+C',
|
|
444
|
-
'help.ctrlCDesc': 'annulla il turno in corso; premi di nuovo per uscire',
|
|
445
|
-
'help.ctrlP': 'Ctrl+P',
|
|
446
|
-
'help.ctrlPDesc': 'apri impostazioni',
|
|
447
|
-
'help.ctrlE': 'Ctrl+E',
|
|
448
|
-
'help.ctrlEDesc': 'attiva/disattiva il cursore del pensiero',
|
|
449
|
-
'help.tab': 'Tab',
|
|
450
|
-
'help.tabDesc': 'scorri l\'intensità di pensiero',
|
|
451
|
-
'help.ctrlN': 'Ctrl+N',
|
|
452
|
-
'help.ctrlNDesc': 'nuova sessione',
|
|
453
|
-
'help.ctrlD': 'Ctrl+D',
|
|
454
|
-
'help.ctrlDDesc': 'elimina sessione in Gestisci sessioni (premi due volte)',
|
|
455
|
-
'help.pg': 'PgUp / PgDn',
|
|
456
|
-
'help.pgDesc': 'scorri il transcript',
|
|
457
|
-
'help.shiftArrows': 'Shift+↑/↓',
|
|
458
|
-
'help.shiftArrowsDesc': 'scorri la barra di stato (finestre larghe)',
|
|
459
|
-
'help.upDown': 'Su / Giù',
|
|
460
|
-
'help.upDownDesc': 'cursore su/giù; cronologia ai bordi',
|
|
461
|
-
'help.mouse': 'Trascina mouse',
|
|
462
|
-
'help.mouseDesc': 'seleziona testo; clic destro copia',
|
|
463
|
-
'help.wheel': 'Rotella',
|
|
464
|
-
'help.wheelDesc': 'scorri transcript / impostazioni',
|
|
465
|
-
'help.escEsc': 'Esc Esc',
|
|
466
|
-
'help.escEscDesc': 'selettore riavvolgimento',
|
|
467
|
-
'help.esc': 'Esc',
|
|
468
|
-
'help.escDesc': 'chiudi overlay · annulla turno · svuota input',
|
|
469
|
-
'help.commands': 'Comandi:',
|
|
470
|
-
|
|
471
|
-
// ---- session manager / toasts ------------------------------------------
|
|
472
|
-
'session.newTitle': 'Nuova sessione',
|
|
473
|
-
'session.noSaved': 'Nessuna sessione salvata',
|
|
474
|
-
'session.manageTitle': 'Gestisci sessioni',
|
|
475
|
-
'session.manageSubtitle': 'Enter apri · Ctrl+D due volte per eliminare · Esc indietro',
|
|
476
|
-
'session.loading': 'Caricamento sessioni...',
|
|
477
|
-
'session.deleted': 'sessione {label} eliminata',
|
|
478
|
-
'session.deleteFailed': 'elimina sessione: {error}',
|
|
479
|
-
'session.deleteNotFound': 'la directory della sessione salvata non è stata trovata',
|
|
480
|
-
'session.deleteCancelled': 'eliminazione annullata',
|
|
481
|
-
'session.resumed': 'sessione {id} ripresa',
|
|
482
|
-
'session.started': 'sessione {id} avviata',
|
|
483
|
-
'session.openFailed': 'impossibile aprire la sessione: {error}',
|
|
484
|
-
'session.forkSummary': '{label} da {parent} · {files}',
|
|
485
|
-
'session.forkDropped': ' · {count} input in attesa ereditati scartati',
|
|
486
|
-
'session.conversationOnly': 'solo conversazione',
|
|
487
|
-
'session.rewindLabel': 'riavvolgimento #{n}',
|
|
488
|
-
'session.files': 'file: {summary}',
|
|
489
|
-
'session.error': 'errore: {error}',
|
|
490
|
-
'session.interruptFirst': 'annulla prima il turno in corso (/cancel)',
|
|
491
|
-
'session.interruptFirstEsc': 'annulla prima il turno in corso (Esc o /cancel)',
|
|
492
|
-
'session.startFirst': 'avvia prima una sessione',
|
|
493
|
-
'session.noReasoningLevels': 'il modello corrente non espone livelli di ragionamento',
|
|
494
|
-
'session.settingsUnavailable': 'impostazioni non disponibili',
|
|
495
|
-
'session.interruptRequested': 'interruzione richiesta',
|
|
496
|
-
'session.nothingToInterrupt': 'nulla da interrompere',
|
|
497
|
-
'session.noSessionRunning': 'nessuna sessione in esecuzione',
|
|
498
|
-
'session.promptCleared': 'input svuotato',
|
|
499
|
-
'session.exitAgain': 'premi Ctrl+C di nuovo per uscire',
|
|
500
|
-
'session.usageResume': 'uso: /resume <sessionId>',
|
|
501
|
-
'session.currentModel': 'modello corrente: {model}',
|
|
502
|
-
'session.modelSet': 'modello impostato su {model} (vale per la prossima richiesta)',
|
|
503
|
-
'session.currentProvider': 'provider corrente: {provider}',
|
|
504
|
-
'session.providerSet': 'provider impostato su {provider} (vale per la prossima richiesta)',
|
|
505
|
-
'session.unknownCommand': 'comando sconosciuto /{name} — prova /help',
|
|
506
|
-
'session.queryMissing': 'la query di sessione non è montata in questo profilo',
|
|
507
|
-
'session.listHeader': 'sessioni:',
|
|
508
|
-
'session.noPersisted': 'nessuna sessione salvata',
|
|
509
|
-
'session.listFailed': 'impossibile elencare le sessioni: {error}',
|
|
510
|
-
'session.modelNoImages': 'il modello "{model}" non supporta input immagine',
|
|
511
|
-
'session.imageAttachFailed': 'allegato immagine non riuscito: {error}',
|
|
512
|
-
'session.attachmentsUnavailable': 'servizio allegati non disponibile; impossibile leggere l\'immagine',
|
|
513
|
-
'session.copied.one': '{count} riga copiata negli appunti',
|
|
514
|
-
'session.copied.other': '{count} righe copiate negli appunti',
|
|
515
|
-
'session.valueRequired': 'è richiesto un valore',
|
|
516
|
-
'session.minChars': 'almeno {count} caratteri',
|
|
517
|
-
'session.maxChars': 'al massimo {count} caratteri',
|
|
518
|
-
'session.answerRequired': 'seleziona un\'opzione o digita una risposta',
|
|
519
|
-
'session.typeAnswer': 'digita una risposta o premi Esc',
|
|
520
|
-
'session.updatesAvailable': 'Aggiornamenti: {list} — Ctrl+P → Aggiornamento',
|
|
521
|
-
'session.versionsError': 'versioni: {error}',
|
|
522
|
-
'session.mcpError': 'MCP: {error}',
|
|
523
|
-
'session.noClipboard': 'nessun percorso degli appunti disponibile',
|
|
524
|
-
'session.unsupportedInteraction': 'tipo di interazione non supportato: {kind}',
|
|
525
|
-
|
|
526
|
-
// ---- tool activity summaries -------------------------------------------
|
|
527
|
-
'tool.run': 'esegui {command}',
|
|
528
|
-
'tool.askUser': 'chiedi all\'utente',
|
|
529
|
-
'tool.askQuestions': 'fai {count} domande',
|
|
530
|
-
}
|
|
605
|
+
// ---- host diagnostics ----------------------------------------------------
|
|
606
|
+
'diagnostics.notice': 'Diagnostica dell’host registrata in {path}',
|
|
607
|
+
}
|