@cat-factory/app 0.100.2 → 0.101.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.
@@ -0,0 +1,4360 @@
1
+ {
2
+ "settings": {
3
+ "modelConfiguration": {
4
+ "title": "Configurazione del modello",
5
+ "subtitle": "Preset che associano un modello a ogni agente. Un'attivita ne sceglie uno; le attivita usano per impostazione predefinita il preset predefinito del workspace.",
6
+ "back": "Indietro",
7
+ "closeEsc": "Chiudi (Esc)",
8
+ "confirmDelete": {
9
+ "title": "Eliminare questo preset del modello?",
10
+ "body": "\"{name}\" verra rimosso. Le attivita che lo usano ricadono sul preset predefinito del workspace."
11
+ },
12
+ "quota": "quota",
13
+ "list": {
14
+ "intro": "Ogni preset imposta un {baseModel} per ogni agente, con override facoltativi per singolo agente. Un modello fissato su una singola attivita ha comunque la precedenza sul preset.",
15
+ "introBaseModel": "modello di base",
16
+ "newPreset": "Nuovo preset",
17
+ "loadingCatalog": "Caricamento del catalogo dei modelli…",
18
+ "default": "Predefinito",
19
+ "setDefaultTitle": "Imposta come predefinito del workspace",
20
+ "editTitle": "Modifica preset",
21
+ "deleteDisabledTitle": "Il preset predefinito non puo essere eliminato",
22
+ "deleteTitle": "Elimina preset",
23
+ "basePrefix": "Base:",
24
+ "overrideCount": "{count} override | {count} override",
25
+ "empty": "Ancora nessun preset. Creane uno per associare i modelli ai tuoi agenti."
26
+ },
27
+ "editor": {
28
+ "useBaseModel": "Usa il modello di base",
29
+ "baseModel": "Modello di base",
30
+ "nameLabel": "Nome",
31
+ "namePlaceholder": "es. Kimi K2.7",
32
+ "baseModelLabel": "Modello di base (applicato a ogni agente)",
33
+ "makeDefault": "Imposta come predefinito del workspace",
34
+ "perAgentOverrides": "Override per singolo agente",
35
+ "filterPlaceholder": "Filtra agenti…",
36
+ "noAgentsMatch": "Nessun agente corrisponde a \"{filter}\".",
37
+ "saveChanges": "Salva le modifiche",
38
+ "createPreset": "Crea preset"
39
+ },
40
+ "toast": {
41
+ "setDefaultFailed": "Impossibile impostare il preset predefinito",
42
+ "deleteFailed": "Impossibile eliminare il preset",
43
+ "nameRequiredTitle": "Nome obbligatorio",
44
+ "nameRequiredBody": "Assegna un nome al preset.",
45
+ "saveFailed": "Impossibile salvare il preset"
46
+ }
47
+ },
48
+ "account": {
49
+ "title": "Impostazioni dell'account",
50
+ "noAccount": "Nessun account selezionato.",
51
+ "tabs": {
52
+ "team": "Team e accesso",
53
+ "fragments": "Frammenti di contesto"
54
+ }
55
+ },
56
+ "infrastructure": {
57
+ "active": "Attivo: {backend}",
58
+ "registerHint": "Registra un pool di runner qui sotto per abilitarlo.",
59
+ "updateFailed": "Impossibile aggiornare il backend di esecuzione",
60
+ "executionBackend": {
61
+ "label": "Dove vengono eseguiti gli agenti",
62
+ "local-docker": "Docker locale (host)",
63
+ "local-dockerDesc": "Esegui ogni agente in un container sul daemon Docker di questa macchina.",
64
+ "cloudflare-containers": "Cloudflare Containers (integrato)",
65
+ "cloudflare-containersDesc": "Esegui gli agenti sulla piattaforma di container per-run integrata di Cloudflare.",
66
+ "kubernetes": "Cluster Kubernetes",
67
+ "kubernetesDesc": "Esegui ogni agente come pod in un cluster Kubernetes gestito da te.",
68
+ "runner-pool": "Pool di runner personalizzato (HTTP)",
69
+ "runner-poolDesc": "Invia gli agenti al tuo scheduler dietro un'API manifest HTTP.",
70
+ "k3s": "Kubernetes locale (k3s)",
71
+ "k3sDesc": "Precompilato per un cluster k3s/k3d locale su questa macchina — basta incollare un token."
72
+ },
73
+ "testEnvBackend": {
74
+ "label": "Dove vengono eseguiti gli ambienti di test",
75
+ "local-compose": "docker-compose in-container (dipendenze Tester)",
76
+ "local-composeDesc": "Avvia le dipendenze del Tester con docker-compose all'interno del container del run. Per un ambiente completo di anteprima dell'app, usa l'opzione dell'ambiente di anteprima Docker Compose qui sotto.",
77
+ "kubernetes": "Cluster Kubernetes",
78
+ "kubernetesDesc": "Provisiona un namespace per-PR in un cluster Kubernetes gestito da te. Ideale per app native Kubernetes o quando gestisci gia un cluster.",
79
+ "environment-provider": "Provider HTTP personalizzato",
80
+ "environment-providerDesc": "Provisiona ambienti effimeri tramite la tua API di gestione HTTP. Ideale quando disponi gia di strumenti dedicati per gli ambienti di anteprima.",
81
+ "compose": "Ambiente di anteprima Docker Compose",
82
+ "composeDesc": "Avvia il docker-compose.yml del repository su un daemon Docker locale come URL del Tester. Ideale per app locali basate su Compose. Supporta immagini pre-compilate o la build dai sorgenti; richiede un daemon Docker, quindi solo per deployment locali."
83
+ },
84
+ "dockerComposeInfo": "I servizi Docker Compose vengono avviati sul Docker locale del runtime: nessuna connessione necessaria (il container del run deve supportare Docker-in-Docker). Configura il servizio, la porta e l'origine dell'immagine (pull pre-compilata o build dai sorgenti) nelle impostazioni dell'ambiente del servizio.",
85
+ "engine": {
86
+ "local-k3s": "k3s locale",
87
+ "remote-kubernetes": "Kubernetes remoto"
88
+ },
89
+ "kubernetesEngine": {
90
+ "localK3sHint": "Precompilato per un cluster k3s/k3d/kind locale su questa macchina. Associa un ServiceAccount a un ruolo e incolla qui sotto un token a lunga durata. Nota che un token semplice `kubectl create token NAME -n NAMESPACE` scade dopo 1 ora: aggiungi `--duration=720h` per una durata maggiore, oppure crea un Secret kubernetes.io/service-account-token senza scadenza e rileggilo. Poi scegli come viene derivato l'URL dell'ambiente e modifica l'URL dell'API server se il tuo cluster ascolta su una porta diversa.",
91
+ "autoSetup": {
92
+ "title": "Configurazione automatica con la CLI",
93
+ "description": "Esegui questo comando nel terminale per rilevare o provisionare un cluster locale, generare un token ServiceAccount e aprire questo modulo precompilato. Incolla il token stampato, poi esegui Test e Salva."
94
+ },
95
+ "label": "Etichetta della connessione",
96
+ "labelPlaceholder": "Cluster di anteprima",
97
+ "apiServerUrl": "URL dell'API server",
98
+ "apiServerUrlHelp": "La radice del kube-apiserver, es. https://my-cluster.example:6443.",
99
+ "apiToken": "Token ServiceAccount",
100
+ "apiTokenHelp": "Solo scrittura; reinseriscilo per ruotarlo. Memorizzato cifrato, mai restituito.",
101
+ "apiTokenHelpStored": "Un token e salvato e riutilizzato per i test. Lascia vuoto per mantenerlo, oppure inseriscine uno nuovo per sostituirlo.",
102
+ "apiTokenPlaceholderStored": "Lascia vuoto per mantenere il token salvato",
103
+ "tokenSaved": "Salvato",
104
+ "urlSourceLabel": "Origine dell'URL dell'ambiente",
105
+ "urlIngressTemplate": "Template dell'host Ingress",
106
+ "urlIngressStatus": "Stato dell'Ingress",
107
+ "urlServiceStatus": "Stato del Service (LoadBalancer)",
108
+ "urlGatewayStatus": "Stato del Gateway (Gateway API)",
109
+ "urlHttpRouteStatus": "Stato dell'HTTPRoute (Gateway API)",
110
+ "hostTemplate": "Template dell'host",
111
+ "hostTemplateHelp": "Il template dell'host, renderizzato con le variabili di provisioning (es. branch, sha).",
112
+ "ingressName": "Nome dell'Ingress",
113
+ "serviceName": "Nome del Service",
114
+ "port": "Porta",
115
+ "gatewayName": "Nome del Gateway",
116
+ "httpRouteName": "Nome dell'HTTPRoute",
117
+ "scheme": "Schema dell'URL",
118
+ "schemeDefault": "Predefinito",
119
+ "namespaceTemplate": "Template del namespace",
120
+ "namespaceTemplateHelp": "Il nome del namespace per-PR, renderizzato con le variabili di provisioning. Per kustomize, lascia vuoto per rispettare il namespace dell'overlay.",
121
+ "imageTemplate": "Template dell'immagine",
122
+ "imageTemplateHelp": "Un riferimento a un'immagine reso disponibile ai manifest come variabile image.",
123
+ "caCertPem": "Certificato CA (PEM)",
124
+ "caCertPemHelp": "Verifica il certificato TLS dell'apiserver. Ometti solo per una CA attendibile pubblicamente.",
125
+ "insecureSkipTlsVerify": "Salta la verifica TLS",
126
+ "insecureSkipTlsVerifyHelp": "Fortemente sconsigliato: solo per cluster dev/kind.",
127
+ "invalidPort": "Inserisci una porta compresa tra 1 e 65535."
128
+ },
129
+ "customType": {
130
+ "title": "Tipi di manifest personalizzati",
131
+ "hint": "Il catalogo aperto dei tipi di provisioning personalizzati che un servizio puo fissare. Aggiungi i tuoi qui sotto; i tipi provenienti dal codice sono in sola lettura.",
132
+ "empty": "Ancora nessun tipo di manifest personalizzato.",
133
+ "source": {
134
+ "registered": "Dal codice",
135
+ "workspace": "Workspace"
136
+ },
137
+ "editTitle": "Modifica {id}",
138
+ "addTitle": "Aggiungi un tipo",
139
+ "manifestId": "Id del manifest",
140
+ "manifestIdHelp": "Uno slug in lower-kebab, es. my-kargo-template.",
141
+ "label": "Etichetta",
142
+ "acceptsInputHint": "Suggerimento di input (facoltativo)",
143
+ "acceptsInputHintHelp": "Descrive la forma di input attesa dal provider.",
144
+ "description": "Descrizione (facoltativa)",
145
+ "defaultManifestPath": "Percorso manifest predefinito (facoltativo)",
146
+ "defaultManifestPathHelp": "Precompilato su un servizio che fissa questo tipo, e il seme per il rilevamento automatico del percorso. Un percorso completo (deploy/preview.yaml) o un semplice nome di file.",
147
+ "fixerPrompt": "Prompt del fixer (facoltativo)",
148
+ "fixerPromptHelp": "Istruzioni per l'agente di coding per generare o correggere il manifest. Se impostato, un servizio mostra un pulsante Genera / correggi.",
149
+ "add": "Aggiungi tipo",
150
+ "saveFailed": "Impossibile salvare il tipo personalizzato",
151
+ "removeFailed": "Impossibile rimuovere il tipo personalizzato"
152
+ },
153
+ "handler": {
154
+ "intro": "Configura come viene gestito ogni tipo di provisioning dichiarato da un servizio: il motore e la connessione. Il percorso dei manifest/compose di un servizio (il cosa/dove) si imposta sul servizio.",
155
+ "activeEngine": "Motore:",
156
+ "connectionEstablished": "Connessione stabilita",
157
+ "notConnected": "Nessuna connessione ancora configurata",
158
+ "disconnect": "Rimuovi connessione",
159
+ "engineLabel": "Motore",
160
+ "customHandlerTitle": "Handler remote-custom",
161
+ "customTypeLabel": "Tipo personalizzato",
162
+ "customBackendLabel": "Backend",
163
+ "customBackendHelp": "Quale backend registrato provisiona questo ambiente personalizzato.",
164
+ "customConnected": "Handler connesso.",
165
+ "saved": "Handler salvato",
166
+ "removed": "Handler rimosso",
167
+ "saveFailed": "Impossibile salvare l'handler",
168
+ "personalOverride": "Override personale (questa macchina)",
169
+ "overrideActive": "Attivo",
170
+ "personalOverrideHint": "Sostituisci l'handler del workspace per questo tipo di provisioning sulla tua macchina. Memorizzato per utente.",
171
+ "removeOverride": "Rimuovi override",
172
+ "loading": "Caricamento delle impostazioni dell'infrastruttura…",
173
+ "kubeNoun": "l'handler Kubernetes",
174
+ "kubeOverrideNoun": "l'override Kubernetes",
175
+ "customNoun": "questo handler"
176
+ }
177
+ },
178
+ "providerConnection": {
179
+ "fallbackTitle": "Provider",
180
+ "windowTitle": "Infrastruttura",
181
+ "noneAvailable": "Nessun provider di infrastruttura e abilitato su questo deployment.",
182
+ "tabs": {
183
+ "agentContainers": "Container degli agenti",
184
+ "testEnvironments": "Ambienti di test"
185
+ },
186
+ "kind": {
187
+ "environment": {
188
+ "title": "Provider di ambienti effimeri",
189
+ "blurb": "Dove l'agente Tester viene eseguito contro un ambiente di anteprima live. Configura le impostazioni e le credenziali per-workspace richieste dal tuo provider."
190
+ },
191
+ "runner-pool": {
192
+ "title": "Backend dei runner degli agenti",
193
+ "blurb": "Dove vengono eseguiti gli agenti di coding quando non si usano i Cloudflare Containers. Scegli un pool di runner self-hosted (il tuo scheduler) o un cluster Kubernetes, poi configura il suo endpoint e le sue credenziali."
194
+ }
195
+ },
196
+ "kubernetesEnv": {
197
+ "label": "Nome",
198
+ "labelPlaceholder": "Cluster di anteprima",
199
+ "apiServerUrl": "URL dell'API server",
200
+ "apiServerUrlHelp": "La radice del kube-apiserver, es. https://10.0.0.1:6443. L'orchestratore applica i manifest di ogni PR tramite l'apiserver, quindi solo questo endpoint deve essere raggiungibile.",
201
+ "apiToken": "Token ServiceAccount",
202
+ "apiTokenHelp": "Un bearer token con RBAC per creare namespace e applicare le risorse dell'operatore. Memorizzato cifrato; mai mostrato di nuovo.",
203
+ "manifestSourceLabel": "Origine dei manifest",
204
+ "sourceColocated": "Co-localizzati nel repository della PR",
205
+ "sourceSeparate": "Repository separato",
206
+ "repo": "Repository dei manifest",
207
+ "repoHelp": "L'owner/repo che contiene i manifest Kubernetes, es. acme/preview-manifests.",
208
+ "ref": "Ref",
209
+ "refHelp": "Branch, tag o SHA da cui leggere i manifest. Se vuoto, usa il branch predefinito del repository.",
210
+ "path": "Percorso dei manifest",
211
+ "pathHelp": "File o directory all'interno del repository che contiene le risorse da applicare.",
212
+ "urlSourceLabel": "URL dell'ambiente",
213
+ "urlIngressTemplate": "Template dell'host Ingress",
214
+ "urlIngressStatus": "Leggi lo stato dell'Ingress",
215
+ "urlServiceStatus": "Leggi lo stato del Service",
216
+ "hostTemplate": "Template dell'host",
217
+ "hostTemplateHelp": "Template dell'host renderizzato con le variabili di provisioning come branch e pullNumber; l'host renderizzato diventa l'URL dell'ambiente.",
218
+ "ingressName": "Nome dell'Ingress",
219
+ "ingressNameHelp": "Ingress da cui leggere l'host del load balancer. Se vuoto, usa l'unico Ingress applicato.",
220
+ "serviceName": "Nome del Service",
221
+ "port": "Porta",
222
+ "scheme": "Schema dell'URL",
223
+ "schemeDefault": "https (predefinito)",
224
+ "namespaceTemplate": "Template del namespace",
225
+ "namespaceTemplateHelp": "Nome del namespace per-PR renderizzato dalle variabili di provisioning come pullNumber. Se vuoto, ne deriva uno dal numero della PR.",
226
+ "imageTemplate": "Template dell'immagine",
227
+ "imageTemplateHelp": "Riferimento all'immagine esposto ai manifest, renderizzato sulle variabili di provisioning come branch e sha.",
228
+ "caCertPem": "Certificato CA del cluster (PEM)",
229
+ "caCertPemHelp": "Incolla il bundle CA del cluster affinche il certificato TLS dell'apiserver venga verificato. Ometti solo per una CA attendibile pubblicamente.",
230
+ "insecureSkipTlsVerify": "Salta la verifica TLS",
231
+ "insecureSkipTlsVerifyHelp": "Fortemente sconsigliato. Disabilita la verifica TLS dell'apiserver; usalo solo per cluster kind/dev.",
232
+ "invalidFields": "Completa i campi obbligatori con valori validi per connetterti."
233
+ },
234
+ "kubernetes": {
235
+ "label": "Nome",
236
+ "labelPlaceholder": "Cluster di produzione",
237
+ "apiServerUrl": "URL dell'API server",
238
+ "apiServerUrlHelp": "La radice del kube-apiserver, es. https://10.0.0.1:6443. L'orchestratore raggiunge il pod di ogni run tramite l'apiserver, quindi solo questo endpoint deve essere raggiungibile.",
239
+ "namespace": "Namespace",
240
+ "image": "Immagine dell'executor",
241
+ "imageHelp": "L'immagine executor-harness eseguita da ogni pod per-run.",
242
+ "imageUi": "Immagine UI-tester",
243
+ "apiToken": "Token ServiceAccount",
244
+ "apiTokenHelp": "Un bearer token con RBAC per creare, ottenere ed eliminare pod e pods/proxy nel namespace. Memorizzato cifrato; mai mostrato di nuovo.",
245
+ "caCertPem": "Certificato CA del cluster (PEM)",
246
+ "caCertPemHelp": "Incolla il bundle CA del cluster affinche il certificato TLS dell'apiserver venga verificato. Ometti solo per una CA attendibile pubblicamente.",
247
+ "insecureSkipTlsVerify": "Salta la verifica TLS",
248
+ "insecureSkipTlsVerifyHelp": "Fortemente sconsigliato. Disabilita la verifica TLS dell'apiserver; usalo solo per cluster locali k3s/kind/dev.",
249
+ "harnessPort": "Porta dell'harness"
250
+ },
251
+ "manifestEditor": {
252
+ "title": "Manifest del provider",
253
+ "jsonLabel": "Manifest (JSON)",
254
+ "jsonHelp": "Descrivi l'API del tuo provider in modo dichiarativo: l'URL di base, lo schema di autenticazione, i template delle richieste e la mappatura delle risposte. Validato secondo lo stesso contratto applicato dal server.",
255
+ "invalidJson": "Il manifest non e un JSON valido.",
256
+ "invalidShape": "Il manifest non corrisponde alla forma attesa.",
257
+ "schemaError": "Problema nel manifest: {message}",
258
+ "secretsLabel": "Segreti",
259
+ "noSecrets": "Questo manifest non fa riferimento ad alcun segreto.",
260
+ "stored": "Attualmente memorizzati: {keys}",
261
+ "reenterSecrets": "Reinserisci ogni segreto per salvare. I segreti memorizzati sono in sola scrittura e non vengono mostrati.",
262
+ "starterHint": "Questo e un esempio di partenza. Modificalo per adattarlo all'API del tuo provider."
263
+ },
264
+ "viewLogs": "Visualizza i log",
265
+ "hideLogs": "Nascondi i log",
266
+ "connectedAt": "Connesso · {baseUrl}",
267
+ "missingConfig": "Configurazione obbligatoria mancante: {fields}",
268
+ "form": {
269
+ "updateConfiguration": "Aggiorna la configurazione",
270
+ "connect": "Connetti",
271
+ "reenterSecrets": "Reinserisci il campo segreto per salvare le modifiche — i segreti memorizzati sono in sola scrittura e non vengono mostrati. | Reinserisci i campi segreti per salvare le modifiche — i segreti memorizzati sono in sola scrittura e non vengono mostrati.",
272
+ "optionalLabel": "{label} (facoltativo)",
273
+ "missingFields": "Compila i campi obbligatori per connetterti: {fields}."
274
+ },
275
+ "field": {
276
+ "defaultsTo": "Predefinito: {value}"
277
+ },
278
+ "test": {
279
+ "button": "Testa la connessione",
280
+ "ok": "Connessione OK",
281
+ "failed": "Connessione fallita"
282
+ },
283
+ "toast": {
284
+ "saved": "{title} salvato",
285
+ "saveFailed": "Impossibile salvare la connessione",
286
+ "removed": "Connessione rimossa",
287
+ "removeFailed": "Impossibile rimuovere la connessione"
288
+ }
289
+ },
290
+ "serviceFragmentDefaults": {
291
+ "intro": "Scegli i frammenti di best practice con cui parte ogni nuovo servizio. La loro guida viene inclusa nel prompt di ogni agente consapevole del codice (coder, reviewer, architect, fixer) sulle attivita del servizio. Puoi affinare l'insieme per singolo servizio nel suo inspector; modificare questa impostazione predefinita non influisce sui servizi gia esistenti.",
292
+ "defaultFragments": "Frammenti predefiniti",
293
+ "addFragment": "Aggiungi frammento",
294
+ "empty": "Nessuno — i nuovi servizi partono senza frammenti a livello di servizio.",
295
+ "saveFailed": "Impossibile salvare i frammenti predefiniti",
296
+ "footer": {
297
+ "question": "Devi aggiungere o modificare i frammenti stessi (creati a mano, documenti collegati, repository)?",
298
+ "manageBoard": "Gestisci la libreria di frammenti di questa board →",
299
+ "manageAccount": "Gestisci i frammenti dell'account →"
300
+ }
301
+ },
302
+ "issueTracker": {
303
+ "filing": {
304
+ "heading": "Dove vengono registrati i ticket",
305
+ "description": "La pipeline ricorrente per il debito tecnico solleva un issue prima dell'implementazione e lo registra in questo tracker. Scegli {none} per saltare la registrazione.",
306
+ "none": "Nessuno",
307
+ "githubHint": "GitHub Issues si appoggia alla tua GitHub App installata, che non e ancora connessa. Installala in {link} — la registrazione resta disattivata fino ad allora.",
308
+ "githubHintLink": "Integrazioni → GitHub",
309
+ "jiraHint": "Jira non e ancora connesso. {link} per registrare e collegare gli issue.",
310
+ "linearHint": "Linear non e ancora connesso. {link} per registrare e collegare gli issue.",
311
+ "connectLink": "Connettilo",
312
+ "jiraProjectKey": "Chiave del progetto Jira",
313
+ "jiraProjectKeyHelp": "I nuovi ticket vengono registrati sotto questo progetto.",
314
+ "linearTeamId": "Id del team Linear",
315
+ "linearTeamIdHelp": "I nuovi issue vengono creati sotto questo team (Linear richiede un team per creare un issue).",
316
+ "linearTeamSearchPlaceholder": "Cerca team…"
317
+ },
318
+ "vendor": {
319
+ "github": "GitHub Issues",
320
+ "jira": "Jira",
321
+ "linear": "Linear"
322
+ },
323
+ "linking": {
324
+ "heading": "Collega gli issue come contesto",
325
+ "description": "Quando una sorgente e disponibile, puoi importare i suoi issue e allegarli a un'attivita, cosicche gli agenti vedano la descrizione e i commenti dell'issue durante l'implementazione. Questo e indipendente dal tracker di registrazione qui sopra.",
326
+ "github": {
327
+ "available": "Si appoggia alla tua GitHub App installata — nessuna credenziale necessaria.",
328
+ "unavailable": "Installa la GitHub App (Integrazioni → GitHub) per offrire questa sorgente."
329
+ },
330
+ "checkSetup": "Verifica la configurazione",
331
+ "install": "Installa",
332
+ "connected": "Connesso.",
333
+ "jira": {
334
+ "connectHint": "Connettiti con un account Jira e un token API."
335
+ },
336
+ "linear": {
337
+ "connectHint": "Connettiti con una chiave API personale Linear."
338
+ },
339
+ "connect": "Connetti"
340
+ },
341
+ "writeback": {
342
+ "heading": "Writeback",
343
+ "description": "Scrivi sull'issue o sugli issue collegati a un'attivita man mano che la sua pull request avanza. Ogni interruttore e l'impostazione predefinita del workspace e puo essere sovrascritto per singola attivita nell'inspector. Gli issue GitHub si chiudono nativamente; gli issue Jira passano al primo stato della loro categoria {done}.",
344
+ "done": "Done",
345
+ "commentOnOpen": {
346
+ "label": "Commenta quando una PR viene aperta",
347
+ "help": "Pubblica un commento sull'issue collegato con il link alla nuova pull request."
348
+ },
349
+ "resolveOnMerge": {
350
+ "label": "Chiudi come risolto quando una PR viene mergiata",
351
+ "help": "Commenta che la PR e stata mergiata, poi chiudi / risolvi l'issue collegato."
352
+ }
353
+ },
354
+ "probeFailure": {
355
+ "title": "Il tracciamento degli issue non e disponibile",
356
+ "disabled": "L'integrazione delle sorgenti di attivita e disattivata su questo deployment (la sua chiave di cifratura non e configurata). Imposta ENCRYPTION_KEY sul backend per abilitare il tracciamento degli issue.",
357
+ "serverError": "Il servizio di tracciamento degli issue ha restituito un errore (HTTP {status}): {message}. Di solito significa che il backend non e completamente migrato/configurato.",
358
+ "loadFailedStatus": "Impossibile caricare le impostazioni del tracker degli issue (HTTP {status}): {message}",
359
+ "loadFailed": "Impossibile caricare le impostazioni del tracker degli issue: {message}"
360
+ },
361
+ "toast": {
362
+ "saved": "Tracker degli issue salvato",
363
+ "saveFailed": "Impossibile salvare le impostazioni",
364
+ "updateFailed": "Impossibile aggiornare",
365
+ "checkFailed": "Verifica fallita"
366
+ }
367
+ },
368
+ "userSecrets": {
369
+ "title": "Il mio token GitHub",
370
+ "intro": "Memorizza un personal access token usato per i run che {you} avvii — push, pull request, il gate CI e i merge sono attribuiti al tuo accesso GitHub. Memorizzato {scope}; il token e in sola scrittura e non viene mai mostrato di nuovo.",
371
+ "introYou": "tu",
372
+ "introScope": "solo per te",
373
+ "connectedStored": "Connesso · token memorizzato",
374
+ "replaceToken": "Sostituisci il token",
375
+ "addToken": "Aggiungi token",
376
+ "labelField": "Etichetta (facoltativa)",
377
+ "optionalField": "{label} (facoltativo)",
378
+ "testConnection": "Testa la connessione",
379
+ "tokenValid": "Token valido",
380
+ "tokenRejected": "Token rifiutato",
381
+ "secretFallback": "Segreto",
382
+ "toast": {
383
+ "saved": "{label} salvato",
384
+ "saveFailed": "Impossibile salvare il segreto",
385
+ "removed": "Segreto rimosso",
386
+ "removeFailed": "Impossibile rimuovere il segreto"
387
+ },
388
+ "confirmRemove": {
389
+ "title": "Rimuovere questo segreto?",
390
+ "body": "\"{name}\" verra rimosso. Questa operazione non puo essere annullata."
391
+ }
392
+ },
393
+ "mergeThresholds": {
394
+ "intro": "Politiche di auto-merge con nome che un'attivita puo scegliere. Dopo il passaggio della CI, l'agente {merger} valuta la PR su complessita, rischio e impatto (0-100%); la PR viene mergiata automaticamente solo quando ogni punteggio e pari o inferiore ai limiti del preset, altrimenti viene sollevata una notifica di revisione. Il preset predefinito regola qualsiasi attivita che non ne sceglie nessuno.",
395
+ "mergerAgent": "merger",
396
+ "confirmDelete": {
397
+ "title": "Eliminare questo preset di merge?",
398
+ "body": "\"{name}\" verra rimosso. Le attivita che lo usano ricadono sul preset predefinito del workspace."
399
+ },
400
+ "concern": {
401
+ "none": "Nessuno (interrompi sempre)",
402
+ "low": "Basso",
403
+ "medium": "Medio",
404
+ "high": "Alto (non interrompere mai)"
405
+ },
406
+ "presetNamePlaceholder": "Nome del preset",
407
+ "default": "Predefinito",
408
+ "makeDefault": "Imposta come predefinito",
409
+ "deleteDefaultBlocked": "Il preset predefinito non puo essere eliminato",
410
+ "deletePreset": "Elimina preset",
411
+ "field": {
412
+ "maxComplexity": "Complessita max %",
413
+ "maxRisk": "Rischio max %",
414
+ "maxImpact": "Impatto max %",
415
+ "ciMaxAttempts": "Tentativi di correzione CI",
416
+ "maxRequirementIterations": "Iterazioni sui requisiti",
417
+ "maxRequirementConcernAllowed": "Auto-pass per criticita pari o inferiori a",
418
+ "autoMerge": "Auto-merge"
419
+ },
420
+ "autoMergeOnHint": "Mergia automaticamente quando rientra nelle soglie.",
421
+ "autoMergeOffHint": "Instrada sempre la PR a una revisione umana.",
422
+ "newPreset": "Nuovo preset",
423
+ "create": {
424
+ "name": "Nome",
425
+ "namePlaceholder": "es. Cauto",
426
+ "complexity": "Cmplx%",
427
+ "risk": "Rischio%",
428
+ "impact": "Impatto%",
429
+ "ciFix": "Corr. CI",
430
+ "reqIter": "Iter req",
431
+ "autoPass": "Auto-pass pari o inferiore a"
432
+ },
433
+ "add": "Aggiungi",
434
+ "toast": {
435
+ "saved": "Preset salvato",
436
+ "saveFailed": "Impossibile salvare il preset",
437
+ "created": "Preset creato",
438
+ "createFailed": "Impossibile creare il preset",
439
+ "defaultFailed": "Impossibile impostare il predefinito",
440
+ "deleteFailed": "Impossibile eliminare il preset"
441
+ }
442
+ },
443
+ "observabilityConnection": {
444
+ "title": "Salute post-rilascio",
445
+ "intro": "Dopo il rilascio di una release, il gate {gate} monitora i monitor/SLO di osservabilita configurati. In caso di regressione genera un agente on-call per indagare (la decisione di eseguire il rollback spetta a un umano). Mappa quali monitor/SLO un servizio monitora dall'inspector di quel servizio.",
446
+ "connection": {
447
+ "heading": "Connessione",
448
+ "provider": "Provider"
449
+ },
450
+ "datadog": {
451
+ "site": "Site Datadog",
452
+ "apiKey": "Chiave API",
453
+ "appKey": "Chiave applicazione"
454
+ },
455
+ "saveConnection": "Salva la connessione",
456
+ "disconnect": "Disconnetti",
457
+ "incident": {
458
+ "heading": "Arricchimento degli incidenti",
459
+ "configured": "Configurato",
460
+ "notSet": "Non impostato",
461
+ "description": "Facoltativo. In caso di regressione, l'indagine on-call viene pubblicata su un incidente che questi sistemi hanno GIA aperto a partire dagli stessi segnali (annota, senza mai riallertare). I segreti sono in sola scrittura: lasciando vuoto, un valore memorizzato resta invariato.",
462
+ "pagerDutyToken": "Token API PagerDuty",
463
+ "pagerDutyFromEmail": "Email From di PagerDuty",
464
+ "incidentIoKey": "Chiave API incident.io",
465
+ "clear": "Cancella"
466
+ },
467
+ "status": {
468
+ "notConnected": "Non connesso",
469
+ "connected": "Connesso",
470
+ "connectedWithSite": "Connesso ({site})"
471
+ },
472
+ "toast": {
473
+ "loadFailed": "Impossibile caricare le impostazioni di osservabilita",
474
+ "incidentCredsRequired": "Inserisci le credenziali PagerDuty o incident.io",
475
+ "incidentSaved": "Arricchimento degli incidenti salvato",
476
+ "incidentSaveFailed": "Impossibile salvare l'arricchimento degli incidenti",
477
+ "incidentDisconnectFailed": "Impossibile disconnettere l'arricchimento degli incidenti",
478
+ "connected": "Osservabilita connessa",
479
+ "connectFailed": "Impossibile salvare la connessione",
480
+ "disconnectFailed": "Impossibile disconnettere"
481
+ },
482
+ "connectionNoun": "la connessione di osservabilita",
483
+ "incidentNoun": "il provider degli incidenti"
484
+ },
485
+ "packageRegistries": {
486
+ "title": "Registry di package privati",
487
+ "intro": "Connetti i registry privati da cui i tuoi repository installano. Gli agenti li ricevono quando effettuano il checkout di un repository, cosicche le dipendenze private si risolvano durante le installazioni. I token sono in sola scrittura: per modificarne uno, rimuovi la voce e aggiungila di nuovo.",
488
+ "entryNoun": "voce del registry",
489
+ "list": {
490
+ "heading": "Registry connessi",
491
+ "tokenTail": "token …{tail}",
492
+ "remove": "Rimuovi voce"
493
+ },
494
+ "add": {
495
+ "heading": "Aggiungi un registry",
496
+ "vendor": "Registry",
497
+ "host": "Il token viene inviato solo a {host}.",
498
+ "scopes": "Scope dei package",
499
+ "scopesHelp": "Scope npm separati da virgola",
500
+ "token": "Token di accesso",
501
+ "save": "Aggiungi registry"
502
+ },
503
+ "toast": {
504
+ "loadFailed": "Impossibile caricare i registry di package",
505
+ "added": "Registry aggiunto",
506
+ "addFailed": "Impossibile aggiungere il registry",
507
+ "removeFailed": "Impossibile rimuovere la voce del registry"
508
+ }
509
+ },
510
+ "sharedStacks": {
511
+ "tab": "Stack condivisi",
512
+ "intro": "Infrastruttura compose a lunga durata (database, broker, ricerca, mail) avviata una volta per workspace e riutilizzata tra run e pull request. Un ambiente di test si collega alla rete gestita di uno stack. L'avvio di uno stack viene eseguito su un deployment Docker locale; su altri backend puoi comunque gestire la definizione.",
513
+ "stackNoun": "stack condiviso",
514
+ "status": {
515
+ "stopped": "Fermato",
516
+ "starting": "In avvio",
517
+ "running": "In esecuzione",
518
+ "failed": "Fallito"
519
+ },
520
+ "list": {
521
+ "heading": "Stack configurati",
522
+ "start": "Avvia",
523
+ "stop": "Ferma",
524
+ "edit": "Modifica",
525
+ "remove": "Elimina stack"
526
+ },
527
+ "add": {
528
+ "heading": "Aggiungi uno stack condiviso",
529
+ "name": "Nome",
530
+ "cloneUrl": "URL di clone del repository",
531
+ "cloneUrlHelp": "Il repository git in cui risiedono i file compose dello stack.",
532
+ "gitRef": "Branch o tag (facoltativo)",
533
+ "composeFiles": "File compose",
534
+ "composeFilesHelp": "Separati da virgola, relativi al repository, in ordine di override.",
535
+ "composeProfiles": "Profili compose (facoltativo)",
536
+ "managedNetworks": "Reti gestite (facoltativo)",
537
+ "managedNetworksHelp": "Reti che questo stack crea e possiede affinche i consumatori vi si colleghino.",
538
+ "allowHostCommands": "Consenti passaggi di setup con comandi host",
539
+ "save": "Aggiungi stack"
540
+ },
541
+ "edit": {
542
+ "heading": "Modifica stack condiviso",
543
+ "save": "Salva le modifiche",
544
+ "cancel": "Annulla"
545
+ },
546
+ "toast": {
547
+ "created": "Stack condiviso aggiunto",
548
+ "createFailed": "Impossibile aggiungere lo stack condiviso",
549
+ "updated": "Stack condiviso aggiornato",
550
+ "updateFailed": "Impossibile aggiornare lo stack condiviso",
551
+ "startFailed": "Impossibile avviare lo stack condiviso",
552
+ "stopFailed": "Impossibile fermare lo stack condiviso",
553
+ "removeFailed": "Impossibile eliminare lo stack condiviso"
554
+ }
555
+ },
556
+ "localMode": {
557
+ "title": "Modalita locale",
558
+ "intro": "Ottimizzazione per il runner di container locale, memorizzata sul deployment di questa macchina (ha sostituito le variabili d'ambiente {poolVars} / {harnessVars}). Il salvataggio ridimensiona il pool caldo in tempo reale, senza necessita di riavvio; i run in corso mantengono il container che gia detengono.",
559
+ "pool": {
560
+ "heading": "Pool di container caldi",
561
+ "description": "Mantieni pronti i container harness inattivi e riassegnane uno (preferendo un container che detiene gia il repository del run) invece di un avvio a freddo per ogni run. Una dimensione del pool pari a 0 lo disabilita. Richiede un runtime della famiglia Docker (Docker/Podman/OrbStack/Colima); ignorato su Apple {appleContainer}.",
562
+ "size": {
563
+ "label": "Dimensione del pool",
564
+ "help": "Numero massimo di container caldi inattivi. 0 = pooling disattivato."
565
+ },
566
+ "minWarm": {
567
+ "label": "Pre-riscaldamento all'avvio",
568
+ "help": "Container avviati quando il servizio si avvia."
569
+ },
570
+ "max": {
571
+ "label": "Container massimi",
572
+ "help": "Limite rigido (assegnati + inattivi). Vuoto = dimensione del pool.",
573
+ "placeholder": "(dimensione del pool)"
574
+ },
575
+ "idleTimeout": {
576
+ "label": "Timeout di inattivita (minuti)",
577
+ "help": "Rimuovi un container inattivo del pool dopo."
578
+ }
579
+ },
580
+ "checkout": {
581
+ "heading": "Riutilizzo del checkout",
582
+ "description": "Quando un container caldo detiene gia il repository del run, l'harness riutilizza il suo checkout per-repo (pulizia + fetch + cambio branch) invece di clonare da zero.",
583
+ "workspaceRoot": {
584
+ "label": "Radice del workspace",
585
+ "help": "Directory assoluta nel container in cui risiede il checkout riutilizzato."
586
+ },
587
+ "cleanKeep": {
588
+ "label": "Mantieni durante la pulizia (separati da virgola)",
589
+ "help": "Directory della cache delle dipendenze che la pulizia per-run preserva."
590
+ }
591
+ },
592
+ "toast": {
593
+ "saved": "Impostazioni locali salvate",
594
+ "saveFailed": "Impossibile salvare le impostazioni locali"
595
+ }
596
+ },
597
+ "openRouterCatalog": {
598
+ "intro": "Raggiungi {models} attraverso un unico gateway. Aggiungi la tua chiave OpenRouter qui sotto, poi abilita i modelli che desideri. Compaiono nel selettore dei modelli con la loro finestra di contesto e il prezzo, e vengono contabilizzati sul tuo budget di spesa.",
599
+ "introModels": "oltre 300 modelli",
600
+ "connectHeading": "Connetti la tua chiave OpenRouter",
601
+ "step1": "Apri {link} e crea una chiave API.",
602
+ "step1Link": "openrouter.ai → Keys ↗",
603
+ "step2": "Copia la chiave (inizia con {prefix}) e incollala qui sotto.",
604
+ "scope": "Ambito",
605
+ "scopeWorkspace": "Questo workspace",
606
+ "scopeUser": "Le mie chiavi (solo io)",
607
+ "labelOptional": "Etichetta (facoltativa)",
608
+ "labelPlaceholder": "es. chiave del team",
609
+ "apiKey": "Chiave API",
610
+ "connectAndBrowse": "Connetti ed esplora",
611
+ "keyConnected": "Chiave OpenRouter connessa",
612
+ "manageKeys": "Gestisci in Vendor e chiavi",
613
+ "refresh": "Aggiorna il catalogo",
614
+ "enableRecommended": "Abilita i consigliati",
615
+ "filterPlaceholder": "Filtra per nome o slug…",
616
+ "empty": "Ancora nessun modello. Premi {action} per caricare la lista live di OpenRouter.",
617
+ "enabledCount": "nessun modello abilitato | {count} abilitato | {count} abilitati",
618
+ "context": "{value} ctx",
619
+ "contextThousands": "{value}K ctx",
620
+ "price": "{input}/{output} per Mtok",
621
+ "toast": {
622
+ "connected": "Chiave OpenRouter connessa",
623
+ "connectFailed": "Impossibile connettere la chiave",
624
+ "rejected": "OpenRouter ha rifiutato la chiave.",
625
+ "unreachable": "Impossibile raggiungere OpenRouter",
626
+ "connectFirst": "Connetti prima una chiave OpenRouter.",
627
+ "saved": "Catalogo OpenRouter salvato",
628
+ "saveFailed": "Impossibile salvare il catalogo"
629
+ }
630
+ },
631
+ "workspaceSettings": {
632
+ "title": "Impostazioni del workspace",
633
+ "tabs": {
634
+ "workspace": "Workspace",
635
+ "budget": "Budget",
636
+ "merge": "Soglie di merge",
637
+ "tracker": "Tracker degli issue",
638
+ "fragments": "Best practice dei servizi"
639
+ },
640
+ "waiting": {
641
+ "heading": "In attesa di un umano",
642
+ "body": "Un run in pausa su una decisione umana (una revisione, un'approvazione, un merge) attende per tutto il tempo necessario e non viene mai annullato. Trascorsi questi minuti, la sua notifica diventa rossa e viene contrassegnata come {overdue} nella inbox.",
643
+ "overdue": "In ritardo",
644
+ "escalateAfter": "Escala dopo (minuti)"
645
+ },
646
+ "taskLimit": {
647
+ "heading": "Attivita in esecuzione per servizio",
648
+ "body": "Limita quante attivita possono essere in esecuzione contemporaneamente sotto un servizio. L'avvio di un'attivita oltre il limite viene rifiutato con un messaggio chiaro finche un'attivita in esecuzione non termina.",
649
+ "mode": "Modalita",
650
+ "maxRunning": "Attivita in esecuzione massime",
651
+ "maxPerType": "Attivita {type} massime",
652
+ "modes": {
653
+ "off": "Nessun limite",
654
+ "shared": "Condiviso tra tutti i tipi",
655
+ "per_type": "Per tipo di attivita"
656
+ }
657
+ },
658
+ "taskTypes": {
659
+ "feature": "feature",
660
+ "bug": "bug",
661
+ "document": "documento",
662
+ "spike": "spike"
663
+ },
664
+ "observability": {
665
+ "heading": "Osservabilita degli agenti",
666
+ "body": "Memorizza il contesto completo fornito a ogni agente: i prompt composti, i frammenti di best practice inclusi e il contenuto completo dei file iniettati nel suo container, cosicche possa essere ispezionato in seguito nella vista di osservabilita. I corpi vengono conservati per la stessa finestra della telemetria LLM per chiamata. Disattiva per interrompere la memorizzazione (gli snapshot esistenti vengono eliminati dalla retention).",
667
+ "toggle": "Memorizza il contesto completo dell'agente"
668
+ },
669
+ "retention": {
670
+ "heading": "Retention degli screenshot",
671
+ "body": "Per quanto tempo conservare gli screenshot catturati dal tester UI e le immagini di design di riferimento con cui vengono confrontati (il gate di conferma visiva). Un job di pulizia giornaliero elimina sia i byte delle immagini sia i loro metadati una volta superata questa finestra.",
672
+ "days": "Retention (giorni)"
673
+ },
674
+ "kaizen": {
675
+ "heading": "Agente Kaizen",
676
+ "body": "Al termine di ogni run, l'agente Kaizen valuta l'andamento di ogni passo dell'agente, da fluido ed efficiente a confuso e caotico, e raccomanda miglioramenti al prompt/modello. Una combinazione di prompt + agente + modello che ottiene una valutazione elevata senza raccomandazioni per cinque volte di fila viene contrassegnata come verificata e non viene piu valutata. La valutazione viene eseguita in background ed e mostrata all'interno dei dettagli del run e nella schermata Kaizen. Imposta il modello del valutatore in Configurazione del modello (l'agente \"Kaizen\").",
677
+ "toggle": "Valuta i run degli agenti con Kaizen"
678
+ },
679
+ "budget": {
680
+ "heading": "Budget di spesa mensile",
681
+ "body": "L'utilizzo dei token viene contabilizzato per chiamata LLM, prezzato e regolato da questi budget. Un run va in pausa quando qualsiasi livello a cui appartiene si esaurisce. Lascia un campo vuoto per nessun limite su quel livello (il livello del workspace eredita allora il valore predefinito integrato, circa 100 EUR/mese).",
682
+ "monthlyLimit": "Limite mensile",
683
+ "defaultPlaceholder": "Predefinito",
684
+ "currency": "Valuta (ISO 4217)",
685
+ "save": "Salva il budget",
686
+ "saveTier": "Salva",
687
+ "workspace": "Questo workspace",
688
+ "account": "Account (tutti i workspace)",
689
+ "user": "Tu (tutti i tuoi run)",
690
+ "accountBody": "Un tetto massimo su ogni workspace di questo account.",
691
+ "userBody": "Un tetto massimo su ogni run che avvii, in qualsiasi workspace.",
692
+ "hardCap": "Limite dell'operatore: {amount}",
693
+ "hardCapHint": "impostato dal deployment; il valore non puo superarlo",
694
+ "spent": "{spent} di {limit} spesi questo mese",
695
+ "adminOnly": "Solo un amministratore dell'account puo modificare il budget dell'account.",
696
+ "noLimitPlaceholder": "Nessun limite"
697
+ },
698
+ "toast": {
699
+ "saved": "Impostazioni salvate",
700
+ "saveFailed": "Impossibile salvare le impostazioni",
701
+ "budgetSaved": "Budget salvato",
702
+ "budgetSaveFailed": "Impossibile salvare il budget"
703
+ }
704
+ },
705
+ "localModelEndpoints": {
706
+ "title": "I miei runner locali",
707
+ "intro": "Indirizza gli agenti verso un LLM in esecuzione su {ownMachine} (Ollama, LM Studio, llama.cpp, vLLM o qualsiasi server compatibile con OpenAI). Un runner e memorizzato {justForYou} (un runner risiede sulla tua macchina) e i modelli che abiliti compaiono automaticamente nel selettore dei modelli. La chiave API (la maggior parte dei runner la ignora) e in sola scrittura e non viene mai mostrata di nuovo.",
708
+ "introOwnMachine": "la tua macchina",
709
+ "introJustForYou": "solo per te",
710
+ "modelCount": "nessun modello | {count} modello | {count} modelli",
711
+ "keySet": "chiave impostata",
712
+ "edit": "Modifica",
713
+ "editRunner": "Modifica runner",
714
+ "addRunner": "Aggiungi un runner",
715
+ "runnerType": "Tipo di runner",
716
+ "labelOptional": "Etichetta (facoltativa)",
717
+ "labelPlaceholder": "Il mio {name}",
718
+ "baseUrl": "URL di base",
719
+ "apiKeyOptional": "Chiave API (facoltativa)",
720
+ "apiKeyKeepPlaceholder": "lascia vuoto per mantenere la chiave memorizzata",
721
+ "apiKeyIgnorePlaceholder": "la maggior parte dei runner la ignora",
722
+ "testConnection": "Testa la connessione",
723
+ "unreachable": "Impossibile raggiungere il runner.",
724
+ "reachable": "Raggiungibile · nessun modello | Raggiungibile · {count} modello | Raggiungibile · {count} modelli",
725
+ "noModels": "Nessun modello riportato.",
726
+ "enableModels": "Abilita i modelli",
727
+ "toast": {
728
+ "saved": "{name} salvato",
729
+ "saveFailed": "Impossibile salvare il runner",
730
+ "removed": "Runner rimosso",
731
+ "removeFailed": "Impossibile rimuovere il runner"
732
+ },
733
+ "confirmRemove": {
734
+ "title": "Rimuovere questo runner?",
735
+ "body": "\"{name}\" verra rimosso. Questa operazione non puo essere annullata."
736
+ }
737
+ }
738
+ },
739
+ "inspector": {
740
+ "detectRepoUnresolved": "Il repository di questo blocco non e' tra i repository GitHub collegati, quindi non puo' essere letto. Collega o sincronizza GitHub per esso, poi riprova.",
741
+ "container": {
742
+ "title": "Contenuti",
743
+ "hint": "I moduli e le attivita' all'interno di questo blocco. Fai clic su una voce per selezionarla sulla board.",
744
+ "modules": "Moduli ({count})",
745
+ "taskCount": "{count} attivita' | {count} attivita'",
746
+ "allTasks": "Tutte le attivita' ({count})",
747
+ "tasks": "Attivita' ({count})",
748
+ "addTask": "Aggiungi attivita'",
749
+ "noTasks": "Nessuna attivita' ancora. Aggiungine una per iniziare il lavoro.",
750
+ "servicesHint": "I servizi sono di lunga durata e non si completano. Il lavoro avviene nelle loro attivita' e nei loro moduli."
751
+ },
752
+ "epicChildren": {
753
+ "title": "Attivita' dell'epic",
754
+ "hint": "Tutte le attivita' assegnate a questo epic, raggruppate per il servizio e il modulo in cui risiedono. Un epic si limita a raggruppare le attivita'; non esegue nulla di per se'.",
755
+ "doneCount": "{done}/{total} completate",
756
+ "empty": "Nessuna attivita' appartiene ancora a questo epic. Importa le attivita' figlie di un epic, oppure imposta l'epic di un'attivita'.",
757
+ "unassigned": "Non assegnato"
758
+ },
759
+ "recurring": {
760
+ "title": "Pipeline ricorrente",
761
+ "active": "Attiva",
762
+ "paused": "In pausa",
763
+ "intervalDays": "{count}g",
764
+ "intervalHours": "{count}h",
765
+ "anyDay": "qualsiasi giorno",
766
+ "cadence": "Ogni {every} · {days}{window} · {timezone}",
767
+ "weekdays": {
768
+ "sun": "Dom",
769
+ "mon": "Lun",
770
+ "tue": "Mar",
771
+ "wed": "Mer",
772
+ "thu": "Gio",
773
+ "fri": "Ven",
774
+ "sat": "Sab"
775
+ },
776
+ "nextRun": "Prossima esecuzione: {time}",
777
+ "runNow": "Esegui ora",
778
+ "pause": "Metti in pausa",
779
+ "resume": "Riprendi",
780
+ "editCadence": "Modifica cadenza",
781
+ "recentRuns": "Esecuzioni recenti",
782
+ "runStatus": {
783
+ "running": "In esecuzione",
784
+ "done": "Completata",
785
+ "failed": "Non riuscita",
786
+ "skipped": "Saltata"
787
+ },
788
+ "updateFailed": "Impossibile aggiornare la pianificazione",
789
+ "runNowFailed": "Impossibile eseguire ora",
790
+ "onDemand": "Su richiesta",
791
+ "onDemandHint": "Solo manuale. Viene eseguita quando la attivi e puo' utilizzare un modello con abbonamento a uso individuale."
792
+ },
793
+ "fragments": {
794
+ "serviceTitle": "Best practice del servizio",
795
+ "serviceHint": "Standard di programmazione per l'intero servizio. Il contenuto di ogni frammento selezionato viene aggiunto al prompt di ogni agente code-aware che lavora sulle attivita' di questo servizio.",
796
+ "serviceEmpty": "Nessuno. Gli agenti code-aware su questo servizio seguono le loro linee guida predefinite.",
797
+ "manageBoard": "Gestisci la libreria di frammenti di questa board…",
798
+ "manageAccount": "Gestisci i frammenti dell'account…"
799
+ },
800
+ "frontendConfig": {
801
+ "title": "Frontend",
802
+ "hint": "Come compilare, servire e simulare questo frontend per un test dell'interfaccia autonomo. I binding qui sotto lo collegano ai servizi backend che chiama.",
803
+ "detect": {
804
+ "title": "Rileva dal repository",
805
+ "button": "Rileva",
806
+ "hint": "Legge il repository collegato e propone una configurazione da esaminare prima di applicarla. Nulla viene salvato finche' non applichi.",
807
+ "error": "Impossibile leggere il repository. Verifica che il frontend sia collegato a un repository connesso.",
808
+ "none": "Non e' stato rilevato nulla che assomigli a un frontend. Imposta la directory del frontend (per un monorepo) oppure compila i campi manualmente.",
809
+ "apply": "Applica",
810
+ "dismiss": "Ignora",
811
+ "confidenceHigh": "certo",
812
+ "confidenceLow": "ipotesi"
813
+ },
814
+ "groups": {
815
+ "build": "Build",
816
+ "serve": "Serve",
817
+ "mocking": "Mocking",
818
+ "envInjection": "Iniezione env",
819
+ "bindings": "Binding backend",
820
+ "preview": "Anteprima"
821
+ },
822
+ "packageManager": "Package manager",
823
+ "directory": "Directory del frontend",
824
+ "directoryHint": "La sottocartella dell'app frontend nel repository (un monorepo, ad es. frontend/). Lascia vuoto se l'app si trova nella radice del repository.",
825
+ "installCommand": "Comando di installazione",
826
+ "buildScript": "Script di build",
827
+ "outputDir": "Directory di output",
828
+ "serveMode": "Modalita' serve",
829
+ "serveStatic": "Statico",
830
+ "serveCommand": "Comando",
831
+ "serveStaticDesc": "serve la directory di output compilata come file statici. Il piu' economico per un test dell'interfaccia di un'app completamente compilata.",
832
+ "serveCommandDesc": "esegue uno script di package.json (ad es. preview) per servire l'app, per build che necessitano di un server in esecuzione.",
833
+ "serveEnvAxisNote": "Separato dall'Iniezione env (in fase di build vs runtime) qui sotto, che controlla come gli URL del backend raggiungono l'app, non come viene servita.",
834
+ "serveScript": "Script serve",
835
+ "servePort": "Porta serve",
836
+ "mockMappingsPath": "Percorso dei mapping mock",
837
+ "mockMappingsHint": "La directory radice di WireMock. Inserisci lo stub JSON in una sottocartella mappings/ al suo interno (e i corpi delle risposte in __files/), ad es. mocks/mappings/. Una cartella senza mappings/ al suo interno esegue un mock vuoto.",
838
+ "envInjection": "Iniezione env",
839
+ "envBuild": "In fase di build",
840
+ "envRuntime": "Runtime",
841
+ "envInjectionHint": "L'iniezione in fase di build inietta gli URL del backend come variabili env di build; il runtime le scrive in uno shim window.env. Nota che il tuo strumento di build potrebbe esporre al browser solo variabili con prefisso (ad es. VITE_), quindi assegna nomi ai binding coerenti con la sua convenzione.",
842
+ "previewEnabled": "Abilita anteprima navigabile",
843
+ "previewHint": "Mantiene in esecuzione un'anteprima servita con un URL cliccabile. Solo runtime Local e Node.",
844
+ "previewUnsupported": "Questo deployment non puo' ospitare un'anteprima navigabile. Esegui su un deployment Local o Node per mantenere un'anteprima servita con un URL cliccabile.",
845
+ "bindings": {
846
+ "title": "Binding backend",
847
+ "hint": "Ogni variabile env che il frontend legge per un URL upstream, e dove si risolve: l'ambiente effimero di un servizio associato, oppure uno stub WireMock.",
848
+ "mock": "Mock (WireMock)",
849
+ "remove": "Rimuovi binding",
850
+ "empty": "Nessun binding backend. Aggiungine uno per puntare una variabile env a un servizio o a un mock."
851
+ },
852
+ "preview": {
853
+ "open": "Apri anteprima",
854
+ "start": "Avvia anteprima",
855
+ "stop": "Arresta",
856
+ "status": {
857
+ "starting": "Avvio in corso…",
858
+ "ready": "In esecuzione",
859
+ "failed": "Non riuscita",
860
+ "stopped": "Non in esecuzione"
861
+ }
862
+ },
863
+ "resolved": {
864
+ "title": "Si risolve in",
865
+ "duplicateWarning": "Usato su piu' di un binding, quindi si applica solo l'ultimo: {vars}.",
866
+ "serviceOffline": "{service}: nessun ambiente attivo (simulato)",
867
+ "mock": "Mock (WireMock)"
868
+ }
869
+ },
870
+ "serviceConnections": {
871
+ "title": "Connessioni di servizio",
872
+ "hint": "Gli altri servizi che questo utilizza, ad es. un servizio che invia le sue email. Le connessioni tracciano archi sulla board e le attivita' possono contrassegnare un servizio connesso come direttamente coinvolto.",
873
+ "descriptionPlaceholder": "Come questo servizio lo utilizza, ad es. invia email tramite esso",
874
+ "remove": "Rimuovi connessione",
875
+ "empty": "Nessuna connessione. Aggiungine una per collegare questo servizio a un altro servizio che utilizza.",
876
+ "usedBy": "Utilizzato da"
877
+ },
878
+ "releaseHealth": {
879
+ "title": "Stato post-rilascio",
880
+ "sectionHint": "Dopo che le modifiche di questo servizio vengono unite e distribuite, un gate osserva i monitor e gli SLO mappati per un certo tempo. In caso di regressione avvia un agente on-call per investigare; nulla viene ripristinato automaticamente.",
881
+ "clear": "Cancella",
882
+ "connectPrompt": "Collega un'integrazione di osservabilita' per monitorare questo servizio dopo i rilasci.",
883
+ "connectFirst": "Collega prima un'integrazione di osservabilita'",
884
+ "connect": "Collega",
885
+ "hint": "I monitor e gli SLO che il gate osserva dopo la distribuzione di questo servizio. Separa gli id con virgole.",
886
+ "monitorIds": "Id dei monitor",
887
+ "sloIds": "Id degli SLO",
888
+ "envTag": "Tag env (facoltativo)",
889
+ "saveMonitoring": "Salva monitoraggio",
890
+ "savedToast": "Monitoraggio salvato",
891
+ "saveFailed": "Impossibile salvare il mapping",
892
+ "clearFailed": "Impossibile cancellare il mapping",
893
+ "configNoun": "la configurazione dello stato di rilascio"
894
+ },
895
+ "testConfig": {
896
+ "title": "Infrastruttura di test",
897
+ "hint": "Come viene predisposto un ambiente di test per questo servizio quando una pipeline deve eseguirlo: nessuna infrastruttura, un file Docker Compose, manifest Kubernetes, o un tipo di manifest personalizzato.",
898
+ "provisionType": "Tipo di provisioning",
899
+ "provisionTypeHint": "Come questo servizio predispone il proprio ambiente per il Tester. Il workspace configura come viene gestito ogni tipo (l'engine + la connessione).",
900
+ "provisionTypes": {
901
+ "infraless": "Nessuna infrastruttura",
902
+ "docker-compose": "Docker Compose",
903
+ "kubernetes": "Kubernetes",
904
+ "custom": "Personalizzato"
905
+ },
906
+ "composePath": "Percorso docker-compose",
907
+ "browseRepo": "Sfoglia il repository per il file compose",
908
+ "composeHint": "Utilizzato dal Tester per predisporre localmente le dipendenze del servizio.",
909
+ "selectComposeTitle": "Seleziona il file docker-compose",
910
+ "selectComposeHint": "Scegli il file compose nel repository. Il suo percorso viene memorizzato relativo alla radice del repository.",
911
+ "selectManifestTitle": "Seleziona i manifest Kubernetes",
912
+ "selectManifestHint": "Scegli il file o la directory dei manifest nel repository. Il suo percorso viene memorizzato relativo alla radice del repository.",
913
+ "selected": "Selezionato: {path}",
914
+ "noFileSelected": "Nessun file selezionato.",
915
+ "useThisFile": "Usa questo file",
916
+ "provisioningTitle": "Provisioning dell'ambiente effimero",
917
+ "provisioningHint": "Un suggerimento per il provisioning dell'ambiente di test effimero di questo servizio: su quale provider cloud distribuire e quanto grande deve essere l'istanza da richiedere. Ignorato per i test locali (docker-compose).",
918
+ "cloudProvider": "Provider cloud",
919
+ "instanceSize": "Dimensione dell'istanza",
920
+ "providers": {
921
+ "docker": "Docker (locale)",
922
+ "custom": "Personalizzato"
923
+ },
924
+ "sizes": {
925
+ "small": "Piccola",
926
+ "medium": "Media",
927
+ "large": "Grande",
928
+ "xlarge": "XLarge"
929
+ },
930
+ "renderers": {
931
+ "raw": "Manifest grezzi",
932
+ "kustomize": "Kustomize"
933
+ },
934
+ "localDevOnly": "Solo sviluppo locale",
935
+ "manifestSourceLabel": "Sorgente dei manifest",
936
+ "sourceColocated": "In questo repository",
937
+ "sourceSeparate": "Repository separato",
938
+ "manifestRepo": "Repository dei manifest (owner/repo)",
939
+ "manifestRef": "Ref (branch/tag/sha)",
940
+ "manifestPath": "Percorso dei manifest",
941
+ "manifestPathHint": "File o directory dei manifest Kubernetes per-PR, relativo alla radice del repository.",
942
+ "rendererLabel": "Renderer",
943
+ "rendererHint": "Raw applica i manifest cosi' come sono. Kustomize compila prima un overlay (richiede l'adattatore di deploy in container).",
944
+ "customManifestId": "Tipo di manifest personalizzato",
945
+ "customManifestIdPlaceholder": "Scegli un tipo di manifest",
946
+ "customNoTypes": "Nessun tipo di manifest personalizzato ancora definito. Aggiungine uno nella finestra Infrastruttura.",
947
+ "customManifestIdHint": "Il tipo personalizzato che questo servizio produce, abbinato a un handler remote-custom configurato dal workspace.",
948
+ "customManifestPath": "Percorso del manifest (facoltativo)",
949
+ "customManifestPathHint": "Precompilato dal valore predefinito del tipo quando lo selezioni. Usa Rileva per individuare un manifest esistente nel repository.",
950
+ "generateManifest": {
951
+ "title": "File manifest",
952
+ "button": "Genera / correggi",
953
+ "hint": "Esegue un agente di coding per creare il manifest in questo percorso (o correggerlo se esiste ma non e' valido) e lo pusha sul branch.",
954
+ "error": "Impossibile avviare l'esecuzione di generazione del manifest.",
955
+ "dispatched": "E' stata avviata un'esecuzione di generazione del manifest.",
956
+ "status": {
957
+ "running": "Generazione del manifest…",
958
+ "succeeded": "Manifest generato e pushato.",
959
+ "failed": "L'esecuzione di generazione del manifest non e' riuscita. Riprovala dalla finestra Infrastruttura."
960
+ }
961
+ },
962
+ "detect": {
963
+ "title": "Rilevamento automatico",
964
+ "button": "Rileva dal repository",
965
+ "hint": "Ispeziona il repository e suggerisce una configurazione di provisioning. Confermi e modifichi tutto qui sotto; nulla viene salvato automaticamente.",
966
+ "error": "Impossibile leggere il repository per rilevare il provisioning.",
967
+ "none": "Non sono stati rilevati manifest Kubernetes o file Compose.",
968
+ "applied": "Suggerita una configurazione {type}. Esamina e regola i campi qui sotto.",
969
+ "overlayTitle": "Overlay effimero",
970
+ "serviceDirTitle": "Cartella di deploy del servizio",
971
+ "manifestRootTitle": "Posizione del manifest",
972
+ "composeServiceTitle": "Servizio Compose",
973
+ "urlSource": "Sorgente suggerita dell'URL dell'ambiente: {source}. L'handler del workspace ne e' proprietario; impostala li'.",
974
+ "namespace": "I manifest fissano il namespace \"{namespace}\"; si consiglia di rispettarlo nell'handler del workspace.",
975
+ "confidenceHigh": "Rilevato",
976
+ "confidenceLow": "Suggerimento"
977
+ },
978
+ "envWizard": {
979
+ "title": "Configurazione ambiente Compose",
980
+ "hint": "Configura la ricetta, i preflight e l'handler affinche' il Deployer provisioni questo stack.",
981
+ "open": "Apri la procedura guidata"
982
+ }
983
+ },
984
+ "agentConfig": {
985
+ "title": "Configurazione dell'agente",
986
+ "hint": "Opzioni fornite dagli agenti nella pipeline di questa attivita'. Ogni opzione resta modificabile finche' il suo agente non parte, poi viene bloccata per quell'esecuzione.",
987
+ "inherited": "ereditato dal servizio",
988
+ "frozen": "Congelato: l'agente e' partito"
989
+ },
990
+ "dependencies": {
991
+ "title": "Dipende da",
992
+ "hint": "Attivita' che devono essere unite prima che questa possa essere eseguita. Il controllo Esegui resta bloccato finche' ogni dipendenza non e' completata.",
993
+ "merged": "Unita",
994
+ "notMerged": "Non ancora unita",
995
+ "empty": "Nessuna dipendenza. Puo' essere eseguita in qualsiasi momento.",
996
+ "blocked": "Bloccata finche' le dipendenze non vengono unite.",
997
+ "confirmRemove": {
998
+ "title": "Rimuovere questa dipendenza?",
999
+ "body": "Questa attivita' non attendera' piu' \"{name}\"."
1000
+ }
1001
+ },
1002
+ "estimate": {
1003
+ "title": "Stima",
1004
+ "hint": "Prodotta dall'agente stimatore delle attivita': quanto questa attivita' appare complessa, rischiosa e di impatto. Usata per decidere se vale la pena eseguire i passaggi di consenso (multi-esecuzione).",
1005
+ "complexity": "Complessita'",
1006
+ "risk": "Rischio",
1007
+ "impact": "Impatto"
1008
+ },
1009
+ "execution": {
1010
+ "title": "Esecuzione",
1011
+ "hint": "L'esecuzione dal vivo della pipeline di questa attivita': ogni passaggio dell'agente, il suo avanzamento e la pull request risultante.",
1012
+ "stage": {
1013
+ "incorporating": "Incorporazione…",
1014
+ "reviewing": "Nuova revisione…",
1015
+ "recommending": "Raccomandazione…"
1016
+ },
1017
+ "empty": {
1018
+ "title": "Nessuna esecuzione ancora",
1019
+ "body": "Avvia una pipeline per vedere qui la cronologia delle esecuzioni."
1020
+ },
1021
+ "prNumber": "PR n. {number}",
1022
+ "pullRequest": "Pull request",
1023
+ "stepState": {
1024
+ "pending": "In attesa",
1025
+ "working": "In lavorazione",
1026
+ "waiting_decision": "Richiede una decisione",
1027
+ "done": "Completato"
1028
+ },
1029
+ "failed": "Non riuscito",
1030
+ "needsDecision": "Richiede una decisione",
1031
+ "needsApproval": "Richiede approvazione",
1032
+ "spinningUp": "Avvio in corso…",
1033
+ "stop": "Arresta",
1034
+ "stopTooltip": "Arresta l'esecuzione ma conservala (leggibile e ripetibile)",
1035
+ "reset": "Reimposta",
1036
+ "resetTooltip": "Scarta questa esecuzione e reimposta l'attivita' a pianificata",
1037
+ "resetConfirm": {
1038
+ "title": "Scartare questa esecuzione?",
1039
+ "body": "Questo elimina l'esecuzione e riporta l'attivita' a pianificata. L'operazione non puo' essere annullata.",
1040
+ "confirm": "Scarta esecuzione"
1041
+ },
1042
+ "mergeConfirm": {
1043
+ "title": "Unire questa pull request?",
1044
+ "body": "Questo unisce la PR nel suo branch di base e completa l'attivita'. L'operazione non puo' essere annullata.",
1045
+ "confirm": "Unisci"
1046
+ },
1047
+ "viewDetailsOutput": "Visualizza dettagli e leggi l'output",
1048
+ "viewDetails": "Visualizza i dettagli del passaggio",
1049
+ "companion": "Companion",
1050
+ "companionTooltip": "Companion di un passaggio produttore",
1051
+ "subtasksProgress": "{completed} di {total} sotto-attivita' completate, {inProgress} in corso",
1052
+ "subtasksDone": "{completed} di {total} sotto-attivita' completate",
1053
+ "resolve": "Risolvi",
1054
+ "decide": "Decidi",
1055
+ "review": "Revisiona",
1056
+ "approve": "Approva",
1057
+ "fragmentsTooltip": "Frammenti di best practice integrati in questo passaggio: {fragments}",
1058
+ "standardsApplied": "{count} standard applicato | {count} standard applicati",
1059
+ "companionOf": "{label} (companion)",
1060
+ "merged": "Unita",
1061
+ "open": "Aperta",
1062
+ "mergePr": "Unisci PR"
1063
+ },
1064
+ "structure": {
1065
+ "title": "Struttura",
1066
+ "hint": "Dove risiede questa attivita' nel suo servizio e quali standard di coding seguono i suoi agenti.",
1067
+ "module": "Modulo",
1068
+ "modulePlaceholder": "ad es. Sessioni (creato durante l'implementazione se nuovo)",
1069
+ "moduleHint": "Il modulo del servizio a cui appartiene questa attivita'. Digita un nome; un modulo che non esiste ancora viene creato quando l'attivita' viene implementata.",
1070
+ "bestPractices": "Best practice",
1071
+ "bestPracticesEmpty": "Nessuna. Gli agenti seguono le loro linee guida predefinite.",
1072
+ "bestPracticesHint": "Frammenti di best practice integrati nei prompt degli agenti di questa attivita', in aggiunta agli standard a livello di servizio."
1073
+ },
1074
+ "runSettings": {
1075
+ "title": "Impostazioni di esecuzione",
1076
+ "hint": "Come viene eseguita la pipeline di questa attivita': quale pipeline parte, quali policy di merge e di modello si applicano, e cosa accade attorno all'esecuzione.",
1077
+ "unassigned": "Non assegnato",
1078
+ "workspaceDefault": "Predefinito del workspace",
1079
+ "workspaceDefaultParen": "(predefinito del workspace)",
1080
+ "defaultPresetThresholds": "Predefinito ({name}): {thresholds}",
1081
+ "defaultPreset": "Predefinito ({name})",
1082
+ "noDefault": "Nessun predefinito",
1083
+ "inheritWorkspace": "Eredita dal workspace",
1084
+ "on": "Attivo",
1085
+ "off": "Disattivo",
1086
+ "inheritOn": "Eredita (attivo)",
1087
+ "inheritOff": "Eredita (disattivo)",
1088
+ "technical": {
1089
+ "unset": "Non impostato (rilevamento automatico)",
1090
+ "technical": "Tecnico",
1091
+ "business": "Business"
1092
+ },
1093
+ "pipeline": "Pipeline",
1094
+ "pipelineEmpty": "Nessun predefinito. Scegli una pipeline quando esegui questa attivita'.",
1095
+ "pipelineHint": "La pipeline che il pulsante Esegui avvia per impostazione predefinita: la sequenza di passaggi dell'agente (ad esempio spec, code, test, merge) eseguiti per questa attivita'.",
1096
+ "mergePolicy": "Policy di merge",
1097
+ "mergePresetDetail": "{name}: unione automatica quando complessita' ≤ {complexity}, rischio ≤ {risk}, impatto ≤ {impact}; fino a {attempts} tentativi di correzione CI.",
1098
+ "mergePresetEmpty": "Nessun preset configurato. Il merger genera una notifica di revisione per ogni PR.",
1099
+ "mergePolicyHint": "Decide quando una pull request completata viene unita automaticamente invece di attendere una revisione umana, e quanti tentativi di correzione CI ottiene un'esecuzione.",
1100
+ "modelPreset": "Preset del modello",
1101
+ "modelPresetHint": "Decide su quale modello AI viene eseguito ogni passaggio dell'agente.",
1102
+ "modelPresetBase": "base {model}",
1103
+ "modelPresetOverrides": ", {count} override | , {count} override",
1104
+ "modelPresetEmpty": "Nessun preset configurato. Gli agenti vengono eseguiti sul routing predefinito del deployment.",
1105
+ "unavailableModels": "Non disponibili con la configurazione attuale: {models}. Questa attivita' fallirebbe su quei passaggi.",
1106
+ "editPresets": "Modifica preset",
1107
+ "configureVendors": "Configura vendor",
1108
+ "modelPresetChangeHint": "Modificare questo influisce solo sui passaggi che non sono ancora partiti.",
1109
+ "taskKind": "Tipo di attivita'",
1110
+ "technicalHint": {
1111
+ "technical": "Tecnico: l'implementatore tratta la definizione dell'attivita' come primaria e la specifica come riferimento di regressione; lo spec-writer potrebbe non produrre alcuna specifica business.",
1112
+ "business": "Business: la specifica guida, come al solito.",
1113
+ "unset": "Rilevamento automatico: dedotto dalla fase di specifica. Impostalo esplicitamente per sovrascriverlo."
1114
+ },
1115
+ "issueWriteback": "Writeback della issue",
1116
+ "commentOnPrOpen": "Commenta all'apertura della PR",
1117
+ "closeOnMerge": "Chiudi al merge",
1118
+ "writebackHint": "Scrive di ritorno sulla issue del tracker collegata a questa attivita'. Sovrascrive il predefinito del workspace.",
1119
+ "responsibleProduct": "Prodotto responsabile",
1120
+ "responsibleEmpty": "Non assegnato. Imposta un product owner per notificarlo quando la revisione dei requisiti segnala questa attivita'.",
1121
+ "autoStartDependents": "Avvia automaticamente le dipendenti",
1122
+ "autoStartHint": "Quando questa attivita' viene unita, avvia automaticamente le attivita' che dipendono da essa (una volta che anche le loro altre dipendenze sono completate).",
1123
+ "involvedServices": "Servizi coinvolti",
1124
+ "involvedServicesHint": "Servizi connessi direttamente coinvolti in questa attivita': ciascuno viene avviato come ambiente effimero accanto al servizio proprio di questa attivita', e l'agente di coding potrebbe modificare anche i loro repository.",
1125
+ "involvedServicesEmpty": "Nessun servizio connesso. Connetti i servizi sul frame del servizio per selezionarli qui.",
1126
+ "involvedServiceStale": "Non piu' connesso al servizio di questa attivita'; verra' rimosso alla prossima modifica."
1127
+ },
1128
+ "referenceRepos": {
1129
+ "title": "Repository di riferimento",
1130
+ "remove": "Rimuovi {repo}",
1131
+ "connectFirst": "Collega GitHub per allegare repository di riferimento.",
1132
+ "hint": "Il document writer li clona in sola lettura per riutilizzare soluzioni esistenti come riferimento durante la stesura. Non li modifica mai."
1133
+ }
1134
+ },
1135
+ "panels": {
1136
+ "decision": {
1137
+ "title": "Decisione richiesta",
1138
+ "agentOnBlock": "{agent} su {block}",
1139
+ "visualizationHint": "Questa e' una visualizzazione. Qualsiasi scelta riprende semplicemente la pipeline."
1140
+ },
1141
+ "stepRestart": {
1142
+ "restartFromStep": "Riavvia la pipeline da questo passaggio",
1143
+ "restartFromHere": "Riavvia da qui"
1144
+ },
1145
+ "structuredResult": {
1146
+ "fallbackTitle": "Risultato dell'agente",
1147
+ "titleWithBlock": "{label}: {title}",
1148
+ "fallbackDescription": "Output strutturato dell'agente",
1149
+ "structuredOutput": "Output strutturato",
1150
+ "noResult": "Nessun risultato ancora.",
1151
+ "noResultHint": "L'output strutturato compare una volta che questo agente termina. Mentre e' in esecuzione, il passaggio mostra l'avanzamento dal vivo sulla board."
1152
+ },
1153
+ "mergerResult": {
1154
+ "title": "Decisione di merge",
1155
+ "titleWithBlock": "Decisione di merge: {title}",
1156
+ "description": "Come e' stata valutata la PR e cosa ha deciso l'engine.",
1157
+ "outcome": {
1158
+ "auto_merged": "Unita automaticamente",
1159
+ "awaiting_review": "In attesa di revisione umana"
1160
+ },
1161
+ "reason": {
1162
+ "within_thresholds": "Ogni punteggio rientra nelle soglie {preset}, quindi la PR e' stata unita automaticamente.",
1163
+ "exceeded_thresholds": "{axes} ha superato le soglie {preset}, quindi la PR e' in attesa che un umano la unisca.",
1164
+ "auto_merge_disabled": "Il preset {preset} invia ogni PR a un umano, quindi questa e' in attesa di revisione.",
1165
+ "no_rationale": "Il merger ha valutato la PR ma non ha fornito alcuna motivazione, quindi il verdetto non poteva essere ritenuto affidabile per l'unione automatica; la PR e' in attesa che un umano la unisca.",
1166
+ "no_assessment": "Il merger non ha restituito una valutazione analizzabile, quindi la PR e' in attesa che un umano la unisca.",
1167
+ "merge_failed": "I punteggi rientravano nelle soglie {preset}, ma l'unione automatica non e' riuscita a completarsi (ad esempio protezione del branch o un conflitto), quindi la PR e' in attesa che un umano la unisca.",
1168
+ "merge_partial": "Alcune delle pull request dell'attivita' sono state unite, ma una successiva non e' riuscita, quindi la modifica e' in attesa che un umano completi o annulli l'unione multi-repository."
1169
+ },
1170
+ "scores": "Punteggi",
1171
+ "axis": {
1172
+ "complexity": "Complessita'",
1173
+ "risk": "Rischio",
1174
+ "impact": "Impatto"
1175
+ },
1176
+ "ceiling": "limite massimo {value}",
1177
+ "rationale": "Motivazione",
1178
+ "noAssessment": "Il merger non ha restituito una valutazione con punteggio.",
1179
+ "noResult": "Nessuna decisione di merge ancora registrata."
1180
+ },
1181
+ "testReport": {
1182
+ "title": "Report di test",
1183
+ "greenlit": "Via libera",
1184
+ "needsFixes": "Necessita di correzioni",
1185
+ "fixAttempts": "{count}/{max} tentativi di correzione",
1186
+ "fixing": "· correzione in corso…",
1187
+ "tested": "Testato",
1188
+ "outcomes": "Esiti",
1189
+ "concerns": "Criticita'"
1190
+ },
1191
+ "stepMeta": {
1192
+ "stateLabel": "Stato",
1193
+ "duration": "Durata",
1194
+ "elapsed": "trascorso",
1195
+ "step": "Passaggio",
1196
+ "stepOf": "{number} di {total}",
1197
+ "started": "Iniziato",
1198
+ "finished": "Terminato",
1199
+ "model": "Modello",
1200
+ "notRecorded": "Non registrato",
1201
+ "run": "Esecuzione",
1202
+ "clickToCopy": "{id} (fai clic per copiare)",
1203
+ "spinningUpContainer": "Avvio del container…",
1204
+ "container": {
1205
+ "status": {
1206
+ "starting": "Avvio del container…",
1207
+ "up": "Container in esecuzione",
1208
+ "errored": "Container in errore",
1209
+ "destroyed": "Container recuperato"
1210
+ },
1211
+ "phase": {
1212
+ "starting": "Avvio in corso",
1213
+ "clone": "Preparazione del workspace",
1214
+ "agent": "Agente in esecuzione",
1215
+ "push": "Push delle modifiche",
1216
+ "done": "Completamento in corso"
1217
+ },
1218
+ "id": "Container",
1219
+ "url": "Indirizzo",
1220
+ "copyId": "Copia l'id del container",
1221
+ "copyUrl": "Copia l'indirizzo"
1222
+ },
1223
+ "subtasks": "Sotto-attivita' · {completed}/{total}",
1224
+ "standardsApplied": "Standard applicati",
1225
+ "decision": "Decisione",
1226
+ "awaitingChoice": "In attesa di una scelta umana",
1227
+ "approvalGate": "Gate di approvazione",
1228
+ "companionReview": "Revisione companion",
1229
+ "correctionIterations": "{count} iterazione di correzione. | {count} iterazioni di correzione.",
1230
+ "state": {
1231
+ "pending": "In attesa",
1232
+ "working": "In lavorazione",
1233
+ "waiting_decision": "Richiede input",
1234
+ "done": "Completato",
1235
+ "failed": "Non riuscito"
1236
+ },
1237
+ "approvalStatus": {
1238
+ "pending": "In attesa",
1239
+ "approved": "Approvato",
1240
+ "changes_requested": "Modifiche richieste",
1241
+ "rejected": "Rifiutato"
1242
+ }
1243
+ },
1244
+ "stepDetail": {
1245
+ "contents": "Contenuti",
1246
+ "details": "Dettagli",
1247
+ "approvalRequired": "Approvazione richiesta",
1248
+ "decisionRequired": "Decisione richiesta",
1249
+ "expandAll": "Espandi tutte le sezioni",
1250
+ "collapseAll": "Comprimi tutte le sezioni",
1251
+ "copyRawOutput": "Copia l'output grezzo",
1252
+ "closeEsc": "Chiudi (Esc)",
1253
+ "companionCapHeading": "{agent} ha raggiunto il suo limite di {attempts} tentativi di rielaborazione, ancora al di sotto della soglia {threshold}.",
1254
+ "companionCapDetail": "Esegui un altro ciclo di rielaborazione automatica, procedi al passaggio successivo accettando l'output attuale, oppure arresta e reimposta l'attivita' cosi' da poter modificare gli input e reinviare.",
1255
+ "infraAttempts": "Tentativi di infrastruttura",
1256
+ "hideInfraAttempts": "Nascondi i tentativi di infrastruttura",
1257
+ "executionHistory": "Cronologia delle esecuzioni",
1258
+ "hideExecutionHistory": "Nascondi la cronologia delle esecuzioni",
1259
+ "attemptSucceeded": "Riuscito",
1260
+ "outputTruncated": "Output ridotto per mantenere compatta la cronologia delle esecuzioni.",
1261
+ "editingConclusions": "Modifica delle conclusioni",
1262
+ "editConclusionsPlaceholder": "Modifica le conclusioni dell'agente; le tue modifiche vengono salvate quando approvi…",
1263
+ "noProseOutput": "Questo agente non ha prodotto alcun output testuale.",
1264
+ "approveWithCorrections": "Approva con correzioni",
1265
+ "reviewAndApprove": "Revisiona e approva",
1266
+ "editHint": "Modifica le conclusioni a sinistra; le tue modifiche vengono salvate quando approvi.",
1267
+ "reviewHint": "Fai clic su un blocco qualsiasi nell'output per commentarlo, oppure lascia un feedback complessivo qui sotto.",
1268
+ "editingNotice": "Stai modificando direttamente le conclusioni. Le modifiche manuali non possono essere combinate con i commenti per blocco. Approva per salvarle, oppure annulla per tornare alla revisione.",
1269
+ "commentingOn": "Commento su",
1270
+ "commentPlaceholder": "Lascia un commento su questo blocco…",
1271
+ "addComment": "Aggiungi commento",
1272
+ "commentN": "Commento {number}",
1273
+ "removeComment": "Rimuovi commento",
1274
+ "overallFeedback": "Feedback complessivo / motivo del rifiuto",
1275
+ "overallFeedbackPlaceholder": "Descrivi le modifiche che l'agente dovrebbe apportare (facoltativo se hai lasciato commenti per blocco)…",
1276
+ "approveWithEdits": "Approva con queste modifiche",
1277
+ "cancelEdits": "Annulla modifiche",
1278
+ "approveAndProceed": "Approva e procedi",
1279
+ "rejectConfirmPrompt": "Rifiutare questa proposta e arrestare completamente l'esecuzione?",
1280
+ "confirmReject": "Conferma il rifiuto",
1281
+ "requestChanges": "Richiedi modifiche",
1282
+ "reject": "Rifiuta",
1283
+ "requestChangesHint": "Richiedi modifiche riesegue questo passaggio con il tuo feedback e i tuoi commenti. Rifiuta arresta completamente l'esecuzione."
1284
+ },
1285
+ "inspector": {
1286
+ "frameStatus": {
1287
+ "planned": "Nessuna attivita'",
1288
+ "ready": "Attivo",
1289
+ "in_progress": "Attivo",
1290
+ "blocked": "Richiede attenzione",
1291
+ "pr_ready": "Attivo",
1292
+ "done": "Attivo"
1293
+ },
1294
+ "deleteRecurringPipeline": "Elimina la pipeline ricorrente",
1295
+ "deleteTask": "Elimina attivita'",
1296
+ "deleteModule": "Elimina modulo",
1297
+ "deleteService": "Elimina servizio",
1298
+ "confirmDelete": {
1299
+ "task": {
1300
+ "title": "Eliminare questa attivita'?",
1301
+ "body": "\"{name}\" e la sua cronologia delle esecuzioni verranno rimossi. L'operazione non puo' essere annullata."
1302
+ },
1303
+ "module": {
1304
+ "title": "Eliminare questo modulo?",
1305
+ "body": "\"{name}\" e tutto cio' che contiene verranno rimossi. L'operazione non puo' essere annullata."
1306
+ },
1307
+ "service": {
1308
+ "title": "Eliminare questo servizio?",
1309
+ "body": "\"{name}\" e tutto cio' che contiene verranno rimossi. L'operazione non puo' essere annullata."
1310
+ },
1311
+ "recurring": {
1312
+ "title": "Eliminare questa pipeline ricorrente?",
1313
+ "body": "\"{name}\", la sua pianificazione e la sua cronologia delle esecuzioni verranno rimossi. L'operazione non puo' essere annullata."
1314
+ },
1315
+ "containerBodyWithCount": "\"{name}\" e l'{count} elemento che contiene verranno rimossi. L'operazione non puo' essere annullata. | \"{name}\" e i {count} elementi che contiene verranno rimossi. L'operazione non puo' essere annullata."
1316
+ },
1317
+ "titlePlaceholder": "Titolo…",
1318
+ "reworkedRequirements": "Requisiti rielaborati",
1319
+ "agentStepsUseDocument": "I passaggi dell'agente utilizzano questo documento.",
1320
+ "open": "Apri",
1321
+ "originalDescriptionFrozen": "Descrizione originale (congelata)",
1322
+ "noDescription": "Nessuna descrizione",
1323
+ "describeBlock": "Descrivi questo blocco…",
1324
+ "taskStartedLocked": "Questa attivita' e' partita. I suoi dettagli sono bloccati.",
1325
+ "lastIncorporatedRequirements": "Ultimi requisiti incorporati",
1326
+ "priorDocHint": "Dalla revisione precedente. Usalo come base: modifica la descrizione sopra e reinvia.",
1327
+ "bootstrapping": "Bootstrap in corso…",
1328
+ "importIssue": "Importa issue",
1329
+ "connectTracker": "Collega un tracker",
1330
+ "spawnFromDocument": "Genera da documento",
1331
+ "viewRequirements": "Visualizza requisiti",
1332
+ "reRun": "Riesegui",
1333
+ "run": "Esegui",
1334
+ "focus": "Metti a fuoco"
1335
+ }
1336
+ },
1337
+ "layout": {
1338
+ "accountDeployment": {
1339
+ "title": "Integrazioni di deployment",
1340
+ "intro": "Credenziali condivise da tutti i workspace di questo account, sigillate a riposo. I valori non vengono mai mostrati dopo il salvataggio; lasciare un campo vuoto per mantenere il segreto memorizzato.",
1341
+ "configured": "Configurato",
1342
+ "notSet": "Non impostato",
1343
+ "clear": "Cancella",
1344
+ "loadFailed": "Impossibile caricare le impostazioni di deployment",
1345
+ "slack": {
1346
+ "title": "App Slack (OAuth)",
1347
+ "description": "Abilita il flusso OAuth \"Add to Slack\". Senza di esso, i workspace possono comunque connettere Slack incollando un bot token.",
1348
+ "clientId": "Client ID",
1349
+ "clientSecret": "Client secret",
1350
+ "redirectUrl": "Redirect URL",
1351
+ "validation": "Inserire client id, secret e redirect URL",
1352
+ "saved": "OAuth Slack salvato",
1353
+ "saveFailed": "Impossibile salvare l'OAuth Slack",
1354
+ "cleared": "OAuth Slack cancellato",
1355
+ "clearFailed": "Impossibile cancellare l'OAuth Slack"
1356
+ },
1357
+ "linear": {
1358
+ "title": "App Linear (OAuth)",
1359
+ "description": "Abilita il flusso OAuth \"Connect with Linear\". Senza di esso, i workspace possono comunque connettere Linear incollando una chiave API personale.",
1360
+ "clientId": "Client ID",
1361
+ "clientSecret": "Client secret",
1362
+ "redirectUrl": "Redirect URL",
1363
+ "validation": "Inserire client id, secret e redirect URL",
1364
+ "saved": "OAuth Linear salvato",
1365
+ "saveFailed": "Impossibile salvare l'OAuth Linear",
1366
+ "cleared": "OAuth Linear cancellato",
1367
+ "clearFailed": "Impossibile cancellare l'OAuth Linear"
1368
+ },
1369
+ "web": {
1370
+ "title": "Ricerca web del container",
1371
+ "description": "L'upstream di ricerca che gli agenti in container raggiungono tramite il proxy del backend. Impostare una chiave Brave (consigliato) o un URL SearXNG self-hosted (con una chiave bearer opzionale).",
1372
+ "configured": "Configurato ({provider})",
1373
+ "braveKey": "Chiave API Brave",
1374
+ "searxngUrl": "URL SearXNG",
1375
+ "searxngKey": "Chiave SearXNG (opzionale)",
1376
+ "validation": "Inserire una chiave Brave o un URL SearXNG",
1377
+ "saved": "Chiavi di ricerca web salvate",
1378
+ "saveFailed": "Impossibile salvare le chiavi di ricerca web",
1379
+ "cleared": "Chiavi di ricerca web cancellate",
1380
+ "clearFailed": "Impossibile cancellare le chiavi di ricerca web"
1381
+ },
1382
+ "contentStorage": {
1383
+ "title": "Archiviazione dei contenuti",
1384
+ "description": "Dove vengono archiviati gli screenshot dell'UI-tester e le immagini di design di riferimento per questo account. I metadati risiedono sempre nel database; solo i byte dei file vanno al backend scelto.",
1385
+ "default": "Predefinito ({backend})",
1386
+ "backends": {
1387
+ "off": "Disattivato (archiviazione disabilitata)",
1388
+ "fs": "Filesystem locale",
1389
+ "s3": "Amazon S3 / compatibile S3",
1390
+ "r2": "Cloudflare R2",
1391
+ "db": "Database Postgres"
1392
+ },
1393
+ "basePath": "Percorso base (predefinito: .file-storage)",
1394
+ "region": "Regione (es. us-east-1)",
1395
+ "bucket": "Bucket",
1396
+ "prefix": "Prefisso della chiave (opzionale)",
1397
+ "endpoint": "Endpoint (opzionale, compatibile S3)",
1398
+ "forcePathStyle": "Forza l'indirizzamento path-style (la maggior parte degli store compatibili S3)",
1399
+ "accessKeys": "Chiavi di accesso",
1400
+ "accessKeyId": "Access key ID",
1401
+ "secretAccessKey": "Secret access key",
1402
+ "keysHint": "Le chiavi sono sigillate a riposo e non vengono mai mostrate dopo il salvataggio; lasciare vuoto per mantenere le chiavi memorizzate.",
1403
+ "regionBucketValidation": "Inserire la regione e il bucket S3",
1404
+ "bothKeysValidation": "Inserire sia l'access key id sia il secret",
1405
+ "keysValidation": "Inserire l'access key id e il secret S3",
1406
+ "saved": "Archiviazione dei contenuti salvata",
1407
+ "saveFailed": "Impossibile salvare l'archiviazione dei contenuti"
1408
+ }
1409
+ },
1410
+ "accountFragments": {
1411
+ "intro": "Linee guida di best practice condivise da ogni board di questo account. Ogni board le eredita e può sovrascriverle o aggiungerne di proprie. Gli agenti code-aware (coder, reviewer, architect, fixer) integrano quelle pertinenti nel loro prompt."
1412
+ },
1413
+ "accountTeam": {
1414
+ "roles": {
1415
+ "admin": "Amministratore",
1416
+ "developer": "Sviluppatore",
1417
+ "product": "Product"
1418
+ },
1419
+ "org": {
1420
+ "ctaTitle": "Invita i colleghi e gestisci i ruoli",
1421
+ "ctaBody": "Membri, ruoli e inviti risiedono in un'organizzazione. Creane una per invitare i colleghi e gestire i loro ruoli; le tue board personali restano invariate.",
1422
+ "namePlaceholder": "Acme Inc.",
1423
+ "create": "Crea organizzazione",
1424
+ "created": "Organizzazione creata"
1425
+ },
1426
+ "members": {
1427
+ "title": "Membri",
1428
+ "empty": "Ancora nessun membro."
1429
+ },
1430
+ "invite": {
1431
+ "title": "Invita un collega",
1432
+ "submit": "Invita",
1433
+ "revoke": "Revoca invito",
1434
+ "created": "Invito creato",
1435
+ "createdEmailed": "È stata inviata un'email (oppure copia il link dall'elenco sottostante).",
1436
+ "createdShareLink": "Condividi il link di accettazione con il tuo collega.",
1437
+ "status": {
1438
+ "pending": "In attesa",
1439
+ "accepted": "Accettato",
1440
+ "revoked": "Revocato"
1441
+ }
1442
+ },
1443
+ "email": {
1444
+ "title": "Mittente email",
1445
+ "notEnabled": "L'invio di email non è abilitato su questo deployment. Gli inviti generano comunque un link di accettazione condivisibile.",
1446
+ "connectedAs": "Connesso tramite {provider} come {from}",
1447
+ "disconnect": "Disconnetti",
1448
+ "connect": "Connetti mittente email",
1449
+ "connected": "Mittente email connesso",
1450
+ "fromPlaceholder": "Indirizzo mittente",
1451
+ "apiKeyPlaceholder": "Chiave API del provider",
1452
+ "providers": {
1453
+ "resend": "Resend",
1454
+ "sendgrid": "SendGrid"
1455
+ }
1456
+ },
1457
+ "apiKeys": {
1458
+ "title": "Chiavi API dell'account"
1459
+ },
1460
+ "errors": {
1461
+ "updateRoles": "Impossibile aggiornare i ruoli",
1462
+ "loadSettings": "Impossibile caricare le impostazioni del team",
1463
+ "createOrg": "Impossibile creare l'organizzazione",
1464
+ "sendInvite": "Impossibile inviare l'invito",
1465
+ "revokeInvite": "Impossibile revocare l'invito",
1466
+ "connectEmail": "Impossibile connettere il mittente email",
1467
+ "disconnectEmail": "Impossibile disconnettere il mittente email"
1468
+ },
1469
+ "emailNoun": "invio di email"
1470
+ },
1471
+ "boardSwitcher": {
1472
+ "accountFallback": "Account",
1473
+ "boardFallback": "Board",
1474
+ "providers": {
1475
+ "docker": "Docker (locale)",
1476
+ "custom": "Personalizzato"
1477
+ },
1478
+ "account": {
1479
+ "newOrg": "Nuova organizzazione…",
1480
+ "settings": "Impostazioni account…",
1481
+ "defaultProvider": "Provider cloud predefinito"
1482
+ },
1483
+ "board": {
1484
+ "new": "Nuova board…",
1485
+ "rename": "Rinomina board…",
1486
+ "delete": "Elimina board"
1487
+ },
1488
+ "prompt": {
1489
+ "create": "Crea",
1490
+ "nameLabel": "Nome",
1491
+ "descriptionLabel": "Descrizione",
1492
+ "descriptionHint": "Opzionale",
1493
+ "descriptionPlaceholder": "A cosa serve questa board?",
1494
+ "account": {
1495
+ "title": "Nuova organizzazione",
1496
+ "placeholder": "Acme Inc."
1497
+ },
1498
+ "board": {
1499
+ "title": "Nuova board",
1500
+ "placeholder": "Board senza titolo"
1501
+ },
1502
+ "rename": {
1503
+ "title": "Impostazioni della board",
1504
+ "placeholder": "Nome della board"
1505
+ }
1506
+ },
1507
+ "toast": {
1508
+ "updateProviderFailed": "Impossibile aggiornare il provider predefinito",
1509
+ "switchAccountFailed": "Impossibile cambiare account",
1510
+ "openBoardFailed": "Impossibile aprire la board",
1511
+ "boardDeleted": "Board eliminata",
1512
+ "deleteBoardFailed": "Impossibile eliminare la board"
1513
+ },
1514
+ "confirmDelete": {
1515
+ "title": "Eliminare questa board?",
1516
+ "body": "\"{name}\" e tutto il suo contenuto verranno rimossi. L'operazione non può essere annullata."
1517
+ }
1518
+ },
1519
+ "notifications": {
1520
+ "heading": "Richiede la tua attenzione",
1521
+ "overdue": "In ritardo",
1522
+ "openPr": "Apri PR",
1523
+ "dismiss": "Ignora",
1524
+ "toast": {
1525
+ "acted": "Contrassegnato come gestito",
1526
+ "dismissed": "Ignorato",
1527
+ "actFailed": "Impossibile completare l'azione",
1528
+ "dismissFailed": "Impossibile ignorare"
1529
+ },
1530
+ "action": {
1531
+ "merge_review": "Unisci",
1532
+ "pipeline_complete": "Conferma e unisci",
1533
+ "ci_failed": "Riprova l'esecuzione",
1534
+ "test_failed": "Riprova l'esecuzione",
1535
+ "requirement_review": "Segna come letto",
1536
+ "clarity_review": "Segna come letto",
1537
+ "release_regression": "Conferma presa visione",
1538
+ "decision_required": "Segna come letto",
1539
+ "human_test_ready": "Segna come letto",
1540
+ "visual_confirmation_ready": "Segna come letto",
1541
+ "human_review": "Segna come letto",
1542
+ "followup_pending": "Segna come letto",
1543
+ "initiative": "Segna come letto",
1544
+ "markRead": "Segna come letto"
1545
+ }
1546
+ },
1547
+ "aiProvidersBanner": {
1548
+ "setup": {
1549
+ "title": "Nessun modello AI configurato",
1550
+ "body": "Gli agenti hanno bisogno di un modello per funzionare. L'AI funziona da subito solo su un deployment Cloudflare con Workers AI abilitato. Altrimenti connetti una chiave provider, un abbonamento, un proxy o un runner locale per continuare.",
1551
+ "action": "Configura l'AI"
1552
+ },
1553
+ "preset": {
1554
+ "title": "Il preset di modello predefinito usa modelli non disponibili",
1555
+ "body": "Le attività che usano il preset predefinito fallirebbero. Modifica il preset o configura il provider mancante.",
1556
+ "action": "Rivedi il preset"
1557
+ }
1558
+ },
1559
+ "githubPatBanner": {
1560
+ "title": "GitHub PAT non configurato",
1561
+ "body": "La modalità locale raggiunge GitHub con un personal access token. Senza di esso, le fasi degli agenti che clonano, effettuano push, aprono PR, applicano il gate sulla CI o uniscono falliranno.",
1562
+ "createToken": "Crea un token GitHub (scope pre-selezionati)",
1563
+ "thenSet": "Poi imposta {envVar} e riavvia."
1564
+ },
1565
+ "providerConfigBanner": {
1566
+ "titleMany": "I provider necessitano di configurazione",
1567
+ "titleOne": {
1568
+ "environment": "Il provider di ambiente necessita di configurazione",
1569
+ "runner-pool": "Il runner pool necessita di configurazione"
1570
+ },
1571
+ "body": "Un provider è collegato a questa istanza ma mancano le impostazioni richieste, quindi non può ancora funzionare. Aggiungi i campi obbligatori per completare la connessione.",
1572
+ "action": {
1573
+ "environment": "Configura il provider di ambiente",
1574
+ "runner-pool": "Configura il runner pool"
1575
+ }
1576
+ },
1577
+ "infraSetupBanner": {
1578
+ "agentExecutor": {
1579
+ "title": "Esecutore degli agenti non configurato",
1580
+ "body": "Questo deployment esegue gli agenti su un runner pool self-hosted, ma nessuno è registrato, quindi nessun agente può funzionare finché non ne connetti uno.",
1581
+ "action": "Configura il runner pool"
1582
+ },
1583
+ "ephemeralEnvironments": {
1584
+ "title": "Ambiente di test non configurato",
1585
+ "body": "Nessun provider di ambiente effimero è registrato, quindi gli agenti di test che necessitano di un ambiente live non possono funzionare. Connettine uno per abilitarli.",
1586
+ "action": "Configura l'ambiente"
1587
+ },
1588
+ "binaryStorage": {
1589
+ "title": "Archiviazione dei contenuti non configurata",
1590
+ "body": "Nessun backend di archiviazione binaria è configurato per questo account, quindi gli screenshot dell'UI e le immagini di riferimento non hanno dove risiedere e i controlli visivi vengono saltati. Configura l'archiviazione per abilitarli.",
1591
+ "action": "Configura l'archiviazione"
1592
+ },
1593
+ "dismiss": {
1594
+ "session": "Ignora per questa sessione",
1595
+ "permanent": "Accetto le limitazioni, non notificarmi più"
1596
+ }
1597
+ },
1598
+ "spendWarningBanner": {
1599
+ "title": "Limite di spesa raggiunto, esecuzione degli agenti sospesa",
1600
+ "body": "La spesa in token di questo mese ha raggiunto il budget configurato, quindi le pipeline in esecuzione sono state sospese per evitare ulteriori costi. L'esecuzione riprende automaticamente quando il budget si rinnova il mese prossimo, oppure una volta che il limite viene aumentato.",
1601
+ "spent": "Speso",
1602
+ "budget": "Budget",
1603
+ "tokens": "Token",
1604
+ "resume": "Riprendi comunque",
1605
+ "resumeHint": "Riprendere continua a generare spesa; verrà sospeso di nuovo se ancora oltre il budget."
1606
+ },
1607
+ "personalSetup": {
1608
+ "title": "La mia configurazione",
1609
+ "intro": "Le tue connessioni personali, usate per le esecuzioni che avvii tu e visibili solo a te.",
1610
+ "connected": "Connesso",
1611
+ "notConnected": "Non connesso",
1612
+ "connectedCount": "nessuno connesso | {count} connesso | {count} connessi",
1613
+ "sourceControl": {
1614
+ "title": "Controllo del codice sorgente"
1615
+ },
1616
+ "githubToken": {
1617
+ "label": "Il mio token GitHub",
1618
+ "description": "Un personal access token usato per le esecuzioni che avvii tu (push, PR, CI, merge)."
1619
+ },
1620
+ "models": {
1621
+ "title": "Modelli"
1622
+ },
1623
+ "localRunners": {
1624
+ "label": "I miei runner locali",
1625
+ "description": "I runner di modelli sulla tua macchina (Ollama, LM Studio, vLLM)."
1626
+ },
1627
+ "subscriptions": {
1628
+ "label": "I miei abbonamenti",
1629
+ "description": "Piani a uso individuale che sblocchi con una password personale (Claude, GLM, Codex)."
1630
+ }
1631
+ },
1632
+ "integrationBack": {
1633
+ "backToMySetup": "Torna a La mia configurazione",
1634
+ "backToIntegrations": "Torna a Integrazioni"
1635
+ },
1636
+ "commandBar": {
1637
+ "searchPlaceholder": "Cerca o esegui un comando…",
1638
+ "noMatches": "Nessun comando corrispondente.",
1639
+ "groups": {
1640
+ "create": "Crea",
1641
+ "repositories": "Repository",
1642
+ "integrations": "Integrazioni",
1643
+ "workspace": "Workspace",
1644
+ "account": "Account"
1645
+ },
1646
+ "cmd": {
1647
+ "newPipeline": "Costruisci una pipeline",
1648
+ "addFromRepo": "Aggiungi servizio da repo esistente",
1649
+ "bootstrapRepo": "Esegui il bootstrap di un nuovo repo",
1650
+ "githubManage": "Gestisci la connessione GitHub",
1651
+ "githubConnect": "Connetti GitHub",
1652
+ "slackManage": "Gestisci le notifiche Slack",
1653
+ "slackConnect": "Connetti Slack",
1654
+ "sourceManage": "Gestisci {source}",
1655
+ "sourceConnect": "Connetti {source}",
1656
+ "documentImport": "Importa e genera da documenti",
1657
+ "taskImport": "Importa issue",
1658
+ "fragments": "Libreria dei frammenti di contesto",
1659
+ "mergeThresholds": "Soglie di merge",
1660
+ "workspaceSettings": "Impostazioni del workspace",
1661
+ "modelConfiguration": "Configurazione del modello",
1662
+ "serviceFragmentDefaults": "Best practice predefinite del servizio",
1663
+ "accountSettings": "Impostazioni account",
1664
+ "localModels": "I miei runner locali",
1665
+ "sandbox": "Apri Sandbox",
1666
+ "shortcuts": "Scorciatoie da tastiera"
1667
+ },
1668
+ "keywords": {
1669
+ "newPipeline": "pipeline agenti catena",
1670
+ "addFromRepo": "github importa esistente",
1671
+ "bootstrapRepo": "scaffold crea architettura di riferimento",
1672
+ "github": "git repo pull request issue",
1673
+ "slack": "slack notifiche canale menzioni",
1674
+ "documentSource": "documento sorgente prd rfc",
1675
+ "documentImport": "documento importa genera",
1676
+ "taskSource": "task sorgente tracker issue",
1677
+ "taskImport": "task importa issue",
1678
+ "fragments": "frammenti di prompt best practice linee guida contesto",
1679
+ "mergeThresholds": "policy di merge preset auto-merge ci",
1680
+ "workspaceSettings": "limite task in esecuzione per servizio attesa escalation ritardo timeout notifica",
1681
+ "modelConfiguration": "modello llm routing tipo di agente preset predefinito configurazione",
1682
+ "serviceFragmentDefaults": "frammento best practice linea guida servizio predefinito code-aware",
1683
+ "accountSettings": "account team membri ruoli inviti email chiavi api frammento best practice libreria contesto organizzazione personale",
1684
+ "localModels": "modello locale runner ollama lm studio llamacpp vllm endpoint",
1685
+ "sandbox": "sandbox prompt modello test esperimento giudice fixture benchmark valuta",
1686
+ "shortcuts": "scorciatoie da tastiera tasti hotkey cheatsheet aiuto"
1687
+ }
1688
+ },
1689
+ "shortcuts": {
1690
+ "title": "Scorciatoie da tastiera",
1691
+ "commandBar": "Apri la barra dei comandi",
1692
+ "deselect": "Deseleziona / chiudi l'inspector",
1693
+ "deleteBlock": "Elimina il blocco selezionato",
1694
+ "help": "Mostra questo cheatsheet"
1695
+ },
1696
+ "integrationsHub": {
1697
+ "title": "Integrazioni",
1698
+ "intro": "Connetti e gestisci i sistemi esterni che questo workspace può collegare.",
1699
+ "searchPlaceholder": "Cerca integrazioni…",
1700
+ "noMatches": "Nessuna integrazione corrisponde a \"{query}\".",
1701
+ "getStarted": {
1702
+ "title": "Per iniziare",
1703
+ "body": "Connetti una sorgente di codice e un provider di modelli per eseguire la tua prima pipeline."
1704
+ },
1705
+ "status": {
1706
+ "connected": "Connesso",
1707
+ "keyConnected": "Chiave connessa",
1708
+ "notConnected": "Non connesso",
1709
+ "needsAttention": "Richiede attenzione",
1710
+ "disabled": "Disabilitato",
1711
+ "recommended": "Consigliato"
1712
+ },
1713
+ "groups": {
1714
+ "models": "Modelli e provider",
1715
+ "sourceControl": "Controllo del codice sorgente",
1716
+ "communication": "Comunicazione",
1717
+ "documents": "Documenti",
1718
+ "taskTrackers": "Task tracker",
1719
+ "observability": "Observability",
1720
+ "development": "Sviluppo",
1721
+ "personal": "Personale (solo tu)"
1722
+ },
1723
+ "items": {
1724
+ "openrouter": {
1725
+ "description": "Un unico gateway per oltre 300 modelli. Aggiungi la tua chiave e abilita i modelli in un solo posto."
1726
+ },
1727
+ "vendors": {
1728
+ "label": "Vendor e chiavi",
1729
+ "description": "Abbonamenti LLM del workspace e chiavi API dei provider."
1730
+ },
1731
+ "github": {
1732
+ "description": "Connetti la GitHub App del workspace, esplora repo, PR e issue."
1733
+ },
1734
+ "slack": {
1735
+ "description": "Instrada le notifiche verso il workspace Slack del tuo team."
1736
+ },
1737
+ "documentSource": {
1738
+ "description": "Collega {source} come sorgente di documenti per il contesto dei requisiti."
1739
+ },
1740
+ "documentImport": {
1741
+ "label": "Importa e genera",
1742
+ "description": "Estrai documenti da una sorgente connessa e genera la struttura."
1743
+ },
1744
+ "taskSource": {
1745
+ "description": "Collega {source} per importare e referenziare le issue del tracker."
1746
+ },
1747
+ "taskImport": {
1748
+ "label": "Importa issue",
1749
+ "description": "Estrai le issue da un tracker connesso sulla board."
1750
+ },
1751
+ "trackerSettings": {
1752
+ "label": "Impostazioni dell'issue tracker"
1753
+ },
1754
+ "observability": {
1755
+ "label": "Salute post-rilascio",
1756
+ "description": "Monitora i monitor e gli SLO dopo il rilascio di una release (Datadog)."
1757
+ },
1758
+ "packageRegistries": {
1759
+ "label": "Registry di pacchetti privati",
1760
+ "description": "Token npm e GitHub Packages che gli agenti usano per installare dipendenze private."
1761
+ },
1762
+ "githubPat": {
1763
+ "label": "Il mio token GitHub",
1764
+ "description": "Un personal access token usato per le esecuzioni che avvii tu (push, PR, CI, merge)."
1765
+ },
1766
+ "localRunners": {
1767
+ "label": "I miei runner locali",
1768
+ "description": "I runner di modelli sulla tua macchina (Ollama, LM Studio, vLLM…)."
1769
+ },
1770
+ "documentTemplates": {
1771
+ "label": "Template ed esempi"
1772
+ }
1773
+ }
1774
+ }
1775
+ },
1776
+ "board": {
1777
+ "toast": {
1778
+ "updateFailed": "Impossibile salvare le modifiche",
1779
+ "epicFailed": "Impossibile cambiare epic",
1780
+ "moveFailed": "Impossibile spostare",
1781
+ "deleteFailed": "Impossibile eliminare",
1782
+ "linkFailed": "Impossibile collegare le attività",
1783
+ "unlinkFailed": "Impossibile rimuovere la dipendenza",
1784
+ "recurringDeleteFailed": "Impossibile eliminare la pipeline ricorrente",
1785
+ "deleted": "Eliminato \"{name}\"",
1786
+ "moved": "Spostato \"{name}\""
1787
+ },
1788
+ "repoTypes": {
1789
+ "service": "Servizio",
1790
+ "frontend": "Frontend",
1791
+ "library": "Libreria",
1792
+ "document": "Repository di documenti"
1793
+ },
1794
+ "toolbar": {
1795
+ "addService": "Aggiungi servizio",
1796
+ "decisionWord": "decisione | decisioni",
1797
+ "lod": {
1798
+ "far": "Panoramica",
1799
+ "mid": "Riepilogo",
1800
+ "close": "Dettaglio",
1801
+ "steps": "Fasi di build",
1802
+ "subtasks": "Sottoattività"
1803
+ },
1804
+ "spendTitle": "Spesa in token di questo mese",
1805
+ "spendLimitReached": "Limite di spesa raggiunto — esecuzioni sospese",
1806
+ "serviceAdded": "Aggiunto {title}",
1807
+ "serviceAddFailed": "Impossibile aggiungere il servizio",
1808
+ "zoomOut": "Riduci lo zoom",
1809
+ "zoomIn": "Aumenta lo zoom",
1810
+ "fitView": "Adatta la board al contenuto",
1811
+ "resetZoom": "Reimposta lo zoom al 100%"
1812
+ },
1813
+ "canvas": {
1814
+ "emptyTitle": "La tua board è vuota",
1815
+ "emptyBody": "Aggiungi un servizio per iniziare: esegui il bootstrap di un repo nuovo o importane uno che hai già.",
1816
+ "addBlockFailedTitle": "Impossibile aggiungere il blocco",
1817
+ "addBlockFailedBody": "Il backend ha rifiutato la richiesta.",
1818
+ "dropOntoTaskTitle": "Rilascia su un'attività",
1819
+ "dropOntoTaskBody": "Le pipeline vengono eseguite sulle attività, non sui servizi.",
1820
+ "taskBlockedTitle": "L'attività è bloccata",
1821
+ "taskBlockedBody": "Le sue dipendenze non sono ancora state unite."
1822
+ },
1823
+ "addTask": {
1824
+ "title": "Aggiungi un'attività",
1825
+ "newTaskIn": "Nuova attività in {container}",
1826
+ "typeLabel": "Tipo",
1827
+ "types": {
1828
+ "feature": "Feature",
1829
+ "bug": "Bug",
1830
+ "document": "Documento",
1831
+ "spike": "Spike",
1832
+ "recurring": "Ricorrente"
1833
+ },
1834
+ "recurringWithFrame": "Un'attività ricorrente esegue una pipeline a cadenza regolare. Continua per impostare la pianificazione e il prompt.",
1835
+ "recurringNoFrame": "Un'attività ricorrente deve risiedere su un servizio. Aggiungila da un frame di servizio (o da un modulo al suo interno).",
1836
+ "titleField": "Titolo",
1837
+ "titlePlaceholder": "Cosa bisogna fare?",
1838
+ "issueIncluded": "{title} (dall'issue, incluso)",
1839
+ "loadingIssue": "Caricamento della descrizione dell'issue collegata…",
1840
+ "additionalNotes": "Note aggiuntive",
1841
+ "description": "Descrizione",
1842
+ "notesPlaceholder": "Aggiungi qualsiasi altra cosa che l'agente dovrebbe sapere — accodata alla descrizione dell'issue qui sopra…",
1843
+ "descriptionPlaceholder": "Descrivi il lavoro — contesto, criteri di accettazione, qualsiasi cosa l'agente dovrebbe sapere…",
1844
+ "technical": "Attività tecnica",
1845
+ "technicalHint": "Un refactoring / una modifica non funzionale / interna. L'implementatore tratta la definizione dell'attività come primaria e la spec come riferimento di regressione; lascia disattivato per far decidere alla fase di spec.",
1846
+ "severity": "Gravità",
1847
+ "stepsToReproduce": "Passaggi per riprodurre",
1848
+ "stepsToReproducePlaceholder": "Osservato vs atteso, e come riprodurre…",
1849
+ "timebox": "Time-box (ore)",
1850
+ "timeboxPlaceholder": "es. 8",
1851
+ "documentKind": "Tipo di documento",
1852
+ "audience": "Destinatari",
1853
+ "audiencePlaceholder": "es. platform engineer",
1854
+ "targetPath": "Percorso di destinazione",
1855
+ "targetPathPlaceholder": "es. docs/rfcs/0001-foo.md",
1856
+ "outlineHints": "Suggerimenti per la struttura",
1857
+ "outlineHintsPlaceholder": "Sezioni o punti che il documento dovrebbe coprire",
1858
+ "docFields": {
1859
+ "targetUsers": {
1860
+ "label": "Utenti target",
1861
+ "placeholder": "A chi è destinato il documento e le attività che svolgono"
1862
+ },
1863
+ "successMetrics": {
1864
+ "label": "Metriche di successo",
1865
+ "placeholder": "Risultati misurabili che dimostrano che funziona"
1866
+ },
1867
+ "alternativesConsidered": {
1868
+ "label": "Alternative considerate",
1869
+ "placeholder": "Altri approcci valutati e perché sono stati esclusi"
1870
+ },
1871
+ "rolloutConcerns": {
1872
+ "label": "Criticità di rollout",
1873
+ "placeholder": "Rischi di migrazione e rollout da affrontare"
1874
+ },
1875
+ "decisionDrivers": {
1876
+ "label": "Fattori decisionali",
1877
+ "placeholder": "Le forze e i vincoli che guidano la decisione"
1878
+ },
1879
+ "consideredOptions": {
1880
+ "label": "Opzioni considerate",
1881
+ "placeholder": "Le opzioni valutate, ciascuna con i suoi compromessi"
1882
+ },
1883
+ "whenToUse": {
1884
+ "label": "Quando usarlo",
1885
+ "placeholder": "Il trigger o la situazione a cui si applica questo runbook"
1886
+ },
1887
+ "escalationPath": {
1888
+ "label": "Percorso di escalation",
1889
+ "placeholder": "Chi contattare e come effettuare l'escalation in caso di errore"
1890
+ },
1891
+ "researchQuestion": {
1892
+ "label": "Domanda di ricerca",
1893
+ "placeholder": "La domanda o l'ipotesi a cui rispondere"
1894
+ },
1895
+ "optionsToCompare": {
1896
+ "label": "Opzioni da confrontare",
1897
+ "placeholder": "Le opzioni da valutare l'una rispetto all'altra"
1898
+ },
1899
+ "apiSurface": {
1900
+ "label": "Superficie API",
1901
+ "placeholder": "Gli endpoint o la superficie in ambito"
1902
+ }
1903
+ },
1904
+ "optional": "opzionale",
1905
+ "pipeline": "Pipeline",
1906
+ "chooseAtRunTime": "Scegli al momento dell'esecuzione",
1907
+ "mergePolicy": "Policy di merge",
1908
+ "workspaceDefault": "Predefinito del workspace",
1909
+ "defaultPreset": "Predefinito ({name}) — {thresholds}",
1910
+ "defaultModelPreset": "Predefinito ({name})",
1911
+ "modelPreset": "Preset di modello",
1912
+ "agentConfiguration": "Configurazione dell'agente",
1913
+ "contextDocuments": "Documenti di contesto",
1914
+ "contextIssues": "Issue di contesto",
1915
+ "attach": "Allega",
1916
+ "done": "Fatto",
1917
+ "attachDocDisabledConnect": "Connetti prima una sorgente di documenti (Integrazioni)",
1918
+ "attachDocDisabledEnable": "Abilita prima l'integrazione dei documenti",
1919
+ "attachIssueDisabledConnect": "Connetti prima un issue tracker (Integrazioni)",
1920
+ "attachIssueDisabledEnable": "Abilita prima l'integrazione dell'issue tracker",
1921
+ "importsOnAdd": "importa all'aggiunta",
1922
+ "noDocsHint": "Allega un requisito, un RFC o un PRD così gli agenti lo vedono mentre implementano questa attività.",
1923
+ "noIssuesHint": "Allega un'issue del tracker così gli agenti vedono la sua descrizione e i commenti mentre implementano questa attività.",
1924
+ "plannedHint": "L'attività viene aggiunta in stato pianificato. Non verrà eseguita finché non avvii una pipeline su di essa — puoi continuare a modificarla fino ad allora.",
1925
+ "continue": "Continua",
1926
+ "submit": "Aggiungi attività",
1927
+ "addFailedTitle": "Impossibile aggiungere l'attività",
1928
+ "linkFailed": "Attività aggiunta, ma {count} allegato non è stato collegato | Attività aggiunta, ma {count} allegati non sono stati collegati"
1929
+ },
1930
+ "recurring": {
1931
+ "title": "Aggiungi una pipeline ricorrente",
1932
+ "on": "Pipeline ricorrente su {frame}",
1933
+ "name": "Nome",
1934
+ "namePlaceholder": "es. Aggiornamenti settimanali delle dipendenze",
1935
+ "pipeline": "Pipeline",
1936
+ "pickPipeline": "Scegli una pipeline",
1937
+ "prompt": "Prompt",
1938
+ "promptPlaceholder": "Cosa dovrebbe fare ogni esecuzione? Descrivi il lavoro — lo stesso prompt che porta con sé una normale attività. Lascia vuoto per usare il prompt predefinito della pipeline.",
1939
+ "issueTracker": "Issue tracker",
1940
+ "issueTrackerHint": "La pipeline di tech-debt apre un ticket dalla sua analisi prima di implementare. Scegli dove (salvato per l'intero workspace).",
1941
+ "githubIssues": "GitHub Issues",
1942
+ "jira": "Jira",
1943
+ "linear": "Linear",
1944
+ "jiraProjectKey": "Chiave del progetto Jira",
1945
+ "jiraProjectKeyPlaceholder": "es. ENG",
1946
+ "linearTeamId": "ID del team Linear",
1947
+ "footerHint": "Una singola attività ricorrente viene aggiunta all'interno del servizio; ogni esecuzione sostituisce la precedente. La sua cronologia delle esecuzioni è visibile nell'inspector.",
1948
+ "submit": "Aggiungi pipeline ricorrente",
1949
+ "addFailedTitle": "Impossibile aggiungere la pipeline ricorrente",
1950
+ "onDemand": "Su richiesta (solo manuale)",
1951
+ "onDemandHint": "Viene eseguita solo quando la attivi tu, senza pianificazione. Poiché sei presente ogni volta, la sua attività può usare un modello con abbonamento a uso individuale.",
1952
+ "intake": "Acquisizione issue",
1953
+ "intakeHint": "Ogni esecuzione seleziona una issue aperta corrispondente dal tracker e la porta a termine dall'inizio alla fine.",
1954
+ "intakeNoSources": "Connetti prima una sorgente di attività per estrarne le issue.",
1955
+ "intakeGithubRepo": "Repository",
1956
+ "intakeTitleFragment": "Il titolo contiene",
1957
+ "intakeTitleFragmentPlaceholder": "es. crash",
1958
+ "intakeLabels": "Etichette",
1959
+ "intakeLabelsPlaceholder": "separate da virgole",
1960
+ "intakeIssueType": "Tipo di issue",
1961
+ "intakeInProgressLabel": "Etichetta in corso"
1962
+ },
1963
+ "failure": {
1964
+ "containerFailedToStart": "Avvio del container fallito",
1965
+ "environmentFailed": "Provisioning dell'ambiente fallito",
1966
+ "bootstrapFailed": "Bootstrap fallito",
1967
+ "runFailed": "Esecuzione fallita",
1968
+ "stalled": "Esecuzione in stallo",
1969
+ "retryBootstrap": "Riprova il bootstrap",
1970
+ "retryRun": "Riprova l'esecuzione",
1971
+ "environmentSetup": "Configura gli ambienti",
1972
+ "deployRunnerSetup": "Configura il runner pool",
1973
+ "environmentLocalHint": "Gli ambienti effimeri locali necessitano di un runtime di deploy per eseguire kubectl/kustomize/helm. Imposta {runtime} nel tuo .env: la modalità native esegue quegli strumenti sul tuo host ({native}), la modalità container li esegue nell'immagine di deploy ({container}).",
1974
+ "showDetail": "Mostra dettaglio",
1975
+ "retrying": "Nuovo tentativo…",
1976
+ "history": {
1977
+ "previousErrors": "{count} errore precedente | {count} errori precedenti"
1978
+ }
1979
+ },
1980
+ "stop": {
1981
+ "label": "Interrompi",
1982
+ "bootstrapStopped": "Bootstrap interrotto",
1983
+ "runStopped": "Esecuzione interrotta",
1984
+ "stoppedDescription": "Il container è stato terminato e l'esecuzione è stata annullata.",
1985
+ "stopFailed": "Interruzione fallita"
1986
+ },
1987
+ "frame": {
1988
+ "status": {
1989
+ "planned": "Nessuna attività",
1990
+ "ready": "Live",
1991
+ "in_progress": "Attivo",
1992
+ "blocked": "Richiede attenzione",
1993
+ "pr_ready": "Attivo",
1994
+ "done": "Live"
1995
+ },
1996
+ "shared": "Condiviso",
1997
+ "sharedTitle": "Condiviso tra i workspace di questa org",
1998
+ "bootstrapping": "Bootstrap in corso…",
1999
+ "bootstrappingRepository": "Bootstrap del repository in corso…",
2000
+ "bootstrapStepsCount": "{completed}/{total} fasi",
2001
+ "runFailed": "Esecuzione fallita",
2002
+ "mergedOfTotal": "{merged}/{total} unite",
2003
+ "noTasksYet": "Ancora nessuna attività",
2004
+ "prCount": "{count} PR",
2005
+ "implemented": "{merged}/{total} implementate",
2006
+ "prReadyCount": "{count} PR pronte",
2007
+ "taskCount": "{count} attività | {count} attività",
2008
+ "moduleCount": "{count} modulo | {count} moduli",
2009
+ "addTaskTitle": "Aggiungi attività",
2010
+ "createTaskFromIssueTitle": "Crea attività da issue",
2011
+ "addRecurringTitle": "Aggiungi pipeline ricorrente",
2012
+ "collapseTitle": "Comprimi",
2013
+ "dragService": "Trascina il servizio",
2014
+ "dragTask": "Trascina l'attività",
2015
+ "dragToResize": "Trascina per ridimensionare",
2016
+ "addFirstTask": "Aggiungi la prima attività",
2017
+ "createInitiativeTitle": "Crea iniziativa",
2018
+ "accessDenied": {
2019
+ "title": "Autorizzazione negata",
2020
+ "hint": "Non hai accesso al repository che supporta questo servizio."
2021
+ }
2022
+ },
2023
+ "decisionBadge": {
2024
+ "decisionNeeded": "Decisione necessaria",
2025
+ "approvalNeeded": "Approvazione necessaria"
2026
+ },
2027
+ "task": {
2028
+ "recurringPipeline": "Pipeline ricorrente",
2029
+ "recurringPipelinePaused": "Pipeline ricorrente (in pausa)",
2030
+ "dragToConnect": "Trascina su un'altra attività per farla dipendere da questa",
2031
+ "failed": "Fallito",
2032
+ "decisionNeeded": "Decisione necessaria",
2033
+ "approvalNeeded": "Approvazione necessaria",
2034
+ "resolve": "Risolvi",
2035
+ "approve": "Approva",
2036
+ "incorporatingAnswers": "Integrazione delle risposte…",
2037
+ "reReviewing": "Nuova revisione…",
2038
+ "recommending": "Elaborazione della raccomandazione…",
2039
+ "starting": "Avvio…",
2040
+ "start": "Avvia",
2041
+ "blocked": "Bloccato",
2042
+ "startPipeline": "Avvia {name}",
2043
+ "pipelineFallback": "pipeline",
2044
+ "waitingOn": "In attesa di: {deps}",
2045
+ "blockedByDependenciesTitle": "Bloccato dalle dipendenze",
2046
+ "noPipelineTitle": "Nessuna pipeline definita",
2047
+ "noPipelineBody": "Creane prima una nel builder.",
2048
+ "startedToast": {
2049
+ "title": "Esecuzione avviata",
2050
+ "body": "Esecuzione di \"{name}\"."
2051
+ },
2052
+ "pr": "PR",
2053
+ "prNumber": "PR #{number}",
2054
+ "openPrOnGithub": "Apri {pr} su GitHub",
2055
+ "review": "Rivedi",
2056
+ "merge": "Unisci",
2057
+ "mergeConfirm": {
2058
+ "title": "Unire questa pull request?",
2059
+ "body": "Questa operazione unisce la PR nel suo branch di base e completa l'attività. Non può essere annullata.",
2060
+ "confirm": "Unisci"
2061
+ },
2062
+ "implemented": "implementate",
2063
+ "module": "Modulo: {name}",
2064
+ "buildSteps": "Fasi di build",
2065
+ "reviewAndApprove": "Rivedi e approva",
2066
+ "clickToViewStep": "Clicca per vedere i dettagli e l'output della fase"
2067
+ },
2068
+ "epic": {
2069
+ "label": "Epic",
2070
+ "activeCount": "{count} attive",
2071
+ "noTasksYet": "Ancora nessuna attività"
2072
+ }
2073
+ },
2074
+ "providers": {
2075
+ "presetMismatch": {
2076
+ "title": "Il preset utilizza modelli non disponibili",
2077
+ "intro": "Il preset di modelli predefinito del workspace \"{name}\" assegna modelli che non sono disponibili con la configurazione attuale. Le attività che usano questo preset fallirebbero al raggiungimento di quei passaggi.",
2078
+ "unavailable": "Non disponibile",
2079
+ "advice": "Riorienta il preset verso modelli che hai configurato, oppure aggiungi il provider mancante.",
2080
+ "later": "Più tardi",
2081
+ "configureVendors": "Configura i vendor",
2082
+ "editPresets": "Modifica i preset",
2083
+ "defaultPresetName": "preset predefinito"
2084
+ },
2085
+ "onboarding": {
2086
+ "title": "Configura un provider di modelli AI",
2087
+ "noModelTitle": "Nessun modello AI è ancora disponibile su questo workspace.",
2088
+ "noModelBody": "Gli agenti hanno bisogno di un modello per essere eseguiti. L'AI funziona subito solo su un deployment Cloudflare con Workers AI abilitato; in caso contrario collega almeno una sorgente qui sotto.",
2089
+ "operatorNote": "AWS Bedrock e Cloudflare Workers AI vengono abilitati dall'operatore del deployment tramite configurazione dell'ambiente, non da questa schermata.",
2090
+ "routes": {
2091
+ "keys": {
2092
+ "title": "Chiavi e abbonamenti dei provider",
2093
+ "body": "Aggiungi una chiave API di un provider diretto (OpenAI, Anthropic, Qwen, …) oppure collega un abbonamento commerciale a un piano di coding (Kimi, DeepSeek) o uno personale (Claude, GLM, Codex).",
2094
+ "cta": "Apri i vendor LLM"
2095
+ },
2096
+ "openrouter": {
2097
+ "title": "Gateway OpenRouter",
2098
+ "body": "Abilita i modelli tramite il gateway OpenRouter con un'unica chiave. Sfoglia e attiva i modelli che desideri.",
2099
+ "cta": "Sfoglia i modelli OpenRouter"
2100
+ },
2101
+ "local": {
2102
+ "title": "I miei runner locali",
2103
+ "body": "Indirizza cat-factory verso un modello che esegui tu stesso (Ollama, LM Studio, llama.cpp, vLLM, …). Nessuna chiave API, nessuna spesa.",
2104
+ "cta": "Configura i runner locali"
2105
+ }
2106
+ }
2107
+ },
2108
+ "personalCredential": {
2109
+ "titleWrongPassword": "Password personale errata",
2110
+ "titleNoSubscription": "Collega il tuo abbonamento {vendor}",
2111
+ "titleExpired": "Il tuo abbonamento {vendor} è scaduto",
2112
+ "titleDefault": "Inserisci la tua password personale",
2113
+ "fallbackVendor": "abbonamento",
2114
+ "connectBody": "Questa attività utilizza un modello {vendor}, che viene eseguito sul tuo abbonamento {vendor}. Collegalo (o rinnovalo) prima, poi avvia di nuovo l'esecuzione.",
2115
+ "connectCta": "Collega abbonamento",
2116
+ "passwordBody": "Inserisci la password personale che protegge il tuo abbonamento {vendor}. Sblocca la tua credenziale solo per questa esecuzione e viene memorizzata nella cache di questo browser così non ti verrà richiesta di nuovo per un po'.",
2117
+ "passwordField": "Password personale",
2118
+ "passwordPlaceholder": "la tua password personale",
2119
+ "submit": "Sblocca ed esegui",
2120
+ "cancel": "Annulla",
2121
+ "toast": {
2122
+ "started": "Esecuzione avviata",
2123
+ "startFailed": "Impossibile avviare l'esecuzione"
2124
+ },
2125
+ "vendors": {
2126
+ "claude": "Claude",
2127
+ "glm": "GLM (Z.ai)",
2128
+ "codex": "ChatGPT (Codex)"
2129
+ }
2130
+ },
2131
+ "apiKeys": {
2132
+ "directHeading": "Chiavi API dei provider diretti",
2133
+ "proxyHeading": "Chiavi API proxy / gateway",
2134
+ "directAccountIntro": "Collega una chiave API di un vendor condivisa da ogni workspace di questo account. Le chiavi vengono memorizzate in forma cifrata, raggruppate e ruotate in base all'utilizzo. Le chiavi dell'account sono gestite dall'amministratore.",
2135
+ "directIntro": "Collega una chiave API di un vendor così i modelli vengono eseguiti direttamente su quel provider. Le chiavi vengono memorizzate in forma cifrata, raggruppate e ruotate in base all'utilizzo. Assegna l'ambito di una chiave a questo workspace (condivisa con il team) o a te (il tuo pool personale, utilizzabile ovunque).",
2136
+ "proxyAccountIntro": "Collega una chiave proxy (OpenRouter, LiteLLM) condivisa da ogni workspace di questo account. Un proxy è un intermediario che fa da facciata a molti vendor dietro un'unica chiave. Le chiavi vengono memorizzate in forma cifrata, raggruppate e ruotate in base all'utilizzo.",
2137
+ "proxyIntro": "Collega una chiave proxy (OpenRouter, LiteLLM). Un proxy è un intermediario che raggiunge i modelli di molti vendor attraverso un unico gateway, anziché un singolo vendor direttamente. Le chiavi vengono memorizzate in forma cifrata, raggruppate e ruotate in base all'utilizzo. Assegna l'ambito di una chiave a questo workspace (condivisa con il team) o a te (il tuo pool personale, utilizzabile ovunque).",
2138
+ "scopeField": "Ambito",
2139
+ "scopeWorkspace": "Questo workspace",
2140
+ "scopeUser": "Le mie chiavi (solo io)",
2141
+ "providerField": "Provider",
2142
+ "proxyField": "Proxy",
2143
+ "openKeys": "Apri le chiavi {provider} ↗",
2144
+ "cachingNote": "Abilita il caching dei prompt per i modelli {provider}, così un'esecuzione lunga a più turni riutilizza il prefisso del prompt memorizzato nella cache anziché reinviarlo a ogni turno.",
2145
+ "labelField": "Etichetta (opzionale)",
2146
+ "labelPlaceholder": "es. chiave del team",
2147
+ "defaultLabel": "chiave {provider}",
2148
+ "keyField": "Chiave API",
2149
+ "keyPlaceholder": "incolla la chiave API",
2150
+ "connect": "Collega",
2151
+ "connected": "Collegata ({count})",
2152
+ "usage": "{tokens} tok in questa finestra · {count} chiamata | {tokens} tok in questa finestra · {count} chiamate",
2153
+ "toast": {
2154
+ "connected": "Chiave API collegata",
2155
+ "connectFailed": "Impossibile collegare la chiave",
2156
+ "removeFailed": "Impossibile rimuovere la chiave"
2157
+ },
2158
+ "providers": {
2159
+ "openai": {
2160
+ "label": "OpenAI",
2161
+ "step1": "Apri platform.openai.com → API keys e crea una nuova chiave segreta.",
2162
+ "step2": "Copia la chiave (inizia con sk-…); viene mostrata una sola volta."
2163
+ },
2164
+ "anthropic": {
2165
+ "label": "Anthropic (Claude API)",
2166
+ "step1": "Apri console.anthropic.com → Settings → API Keys e crea una chiave.",
2167
+ "step2": "Copia la chiave (inizia con sk-ant-…)."
2168
+ },
2169
+ "qwen": {
2170
+ "label": "Qwen (Alibaba DashScope)",
2171
+ "step1": "Apri la console DashScope (internazionale) → API-KEY e crea una chiave.",
2172
+ "step2": "Copia la chiave; autentica l'endpoint Qwen compatibile con OpenAI."
2173
+ },
2174
+ "deepseek": {
2175
+ "label": "DeepSeek",
2176
+ "step1": "Apri platform.deepseek.com → API keys e crea una chiave.",
2177
+ "step2": "Copia la chiave (inizia con sk-…)."
2178
+ },
2179
+ "moonshot": {
2180
+ "label": "Moonshot (Kimi API)",
2181
+ "step1": "Apri platform.moonshot.ai → API Keys e crea una chiave.",
2182
+ "step2": "Copia la chiave; autentica l'endpoint Moonshot compatibile con OpenAI."
2183
+ },
2184
+ "openrouter": {
2185
+ "label": "OpenRouter",
2186
+ "step1": "Apri openrouter.ai → Keys e crea una chiave API.",
2187
+ "step2": "Copia la chiave (inizia con sk-or-…); raggiunge oltre 300 modelli attraverso un unico gateway."
2188
+ },
2189
+ "litellm": {
2190
+ "label": "LiteLLM (gateway self-hosted)",
2191
+ "step1": "Genera una chiave virtuale sul tuo gateway LiteLLM (oppure usa la sua chiave master).",
2192
+ "step2": "L'URL di base del gateway viene impostato dall'operatore del tuo deployment (LITELLM_BASE_URL), non qui."
2193
+ }
2194
+ },
2195
+ "keyNoun": "questa chiave API"
2196
+ },
2197
+ "vendorCredentials": {
2198
+ "title": "Vendor LLM",
2199
+ "tabs": {
2200
+ "pool": "Pool del workspace",
2201
+ "direct": "Provider diretti",
2202
+ "proxy": "Proxy",
2203
+ "personal": "Abbonamenti personali"
2204
+ },
2205
+ "poolIntro": "Collega un abbonamento commerciale a un piano di coding (Kimi, DeepSeek) che consenta l'uso da parte del team/organizzazione per eseguire i passaggi degli agenti sul harness Claude Code anziché su una chiave API. I token vengono memorizzati in forma cifrata, raggruppati e ruotati in base all'utilizzo. I modelli in abbonamento hanno una quota a tariffa fissa, quindi non intaccano il tuo budget di spesa. Gli abbonamenti a uso individuale (Claude, GLM, ChatGPT/Codex) vengono collegati per singolo utente nella scheda Abbonamenti personali.",
2206
+ "vendorField": "Vendor",
2207
+ "labelField": "Etichetta (opzionale)",
2208
+ "labelPlaceholder": "es. account di lavoro",
2209
+ "defaultLabel": "token {vendor}",
2210
+ "tokenField": "Token",
2211
+ "tokenPlaceholder": "la tua chiave API del piano di coding",
2212
+ "connect": "Collega",
2213
+ "connected": "Collegato ({count})",
2214
+ "usage": "{tokens} tok in questa finestra · {count} esecuzione | {tokens} tok in questa finestra · {count} esecuzioni",
2215
+ "toast": {
2216
+ "connected": "Token collegato",
2217
+ "connectFailed": "Impossibile collegare il token",
2218
+ "removeFailed": "Impossibile rimuovere il token"
2219
+ },
2220
+ "vendors": {
2221
+ "kimi": {
2222
+ "label": "Kimi (piano di coding Moonshot)",
2223
+ "step1": "Apri la console del tuo piano di coding Moonshot (Kimi) e crea una chiave API per l'endpoint compatibile con Anthropic.",
2224
+ "step2": "Copia la chiave API. I passaggi degli agenti verranno eseguiti tramite Claude Code sull'endpoint Anthropic di Moonshot con il contesto completo.",
2225
+ "step3": "Incolla la chiave qui sotto."
2226
+ },
2227
+ "deepseek": {
2228
+ "label": "DeepSeek (piano di coding)",
2229
+ "step1": "Apri la console del tuo piano di coding DeepSeek e crea una chiave API per l'endpoint compatibile con Anthropic.",
2230
+ "step2": "Copia la chiave API. I passaggi degli agenti verranno eseguiti tramite Claude Code sull'endpoint Anthropic di DeepSeek con il contesto completo.",
2231
+ "step3": "Incolla la chiave qui sotto."
2232
+ }
2233
+ },
2234
+ "confirmRemove": {
2235
+ "title": "Rimuovere questa credenziale?",
2236
+ "body": "\"{name}\" verrà rimossa. Questa operazione non può essere annullata."
2237
+ }
2238
+ }
2239
+ },
2240
+ "github": {
2241
+ "onboarding": {
2242
+ "title": "Collega cat-factory a GitHub",
2243
+ "intro": "cat-factory funziona aprendo pull request sui tuoi repository. Installa la GitHub App sul tuo account o sulla tua organizzazione per continuare, e potrai concederle ogni repository oppure scegliere un sottoinsieme.",
2244
+ "signedInAs": "Accesso effettuato come {login}",
2245
+ "signOut": "Esci"
2246
+ },
2247
+ "connect": {
2248
+ "yourInstallations": "Le tue installazioni",
2249
+ "refresh": "Aggiorna",
2250
+ "lookingForInstallations": "Ricerca delle installazioni…",
2251
+ "noInstallations": "Nessuna installazione trovata per la App. Installala qui sotto, oppure collegala tramite ID.",
2252
+ "installationMeta": "{targetType} · installazione {id}",
2253
+ "linked": "collegata",
2254
+ "linkedTitle": "Già collegata a questo workspace",
2255
+ "inUse": "in uso",
2256
+ "inUseTitle": "Già collegata a un altro workspace",
2257
+ "connect": "Collega",
2258
+ "or": "oppure",
2259
+ "installApp": "Installa la GitHub App",
2260
+ "orConnectById": "oppure collega tramite ID",
2261
+ "installationId": "ID installazione",
2262
+ "toast": {
2263
+ "connected": "GitHub collegato"
2264
+ },
2265
+ "errors": {
2266
+ "listInstallations": "Impossibile elencare le installazioni GitHub",
2267
+ "startInstall": "Impossibile avviare l'installazione della GitHub App",
2268
+ "connect": "Impossibile collegare"
2269
+ }
2270
+ },
2271
+ "panel": {
2272
+ "connectIntro": "Collega un'installazione della GitHub App per associare i blocchi della board ai repository, sfogliare pull request e issue, e permettere agli agenti di effettuare il push dei branch e aprire PR.",
2273
+ "installationMeta": "{targetType} · installazione {id}",
2274
+ "resync": "Risincronizza",
2275
+ "backfill": "Backfill",
2276
+ "disconnect": "Disconnetti",
2277
+ "loading": "Caricamento…",
2278
+ "tabs": {
2279
+ "repos": "Repository",
2280
+ "pulls": "Pull request",
2281
+ "issues": "Issue"
2282
+ },
2283
+ "linkedToBoard": "Collegati a questa board",
2284
+ "manageRepos": "Gestisci i repository",
2285
+ "manageHint": "Scegli i repository che questa board dovrebbe tracciare. La connessione GitHub è condivisa nell'account, e ogni board collega i propri repository.",
2286
+ "loadingRepos": "Caricamento dei repository…",
2287
+ "noAvailableRepos": "L'installazione non può ancora accedere ad alcun repository.",
2288
+ "private": "privato",
2289
+ "saveSelection": "Salva selezione",
2290
+ "noLinkedRepos": "Nessun repository ancora collegato. Usa Gestisci i repository per scegliere quali repository questa board traccia.",
2291
+ "open": "Apri",
2292
+ "protected": "protetto",
2293
+ "newBranch": "Nuovo branch",
2294
+ "fromSha": "Da SHA",
2295
+ "commitShaPlaceholder": "sha del commit",
2296
+ "createBranch": "Crea branch",
2297
+ "openPr": "Apri PR",
2298
+ "repository": "Repository",
2299
+ "chooseRepository": "Scegli un repository",
2300
+ "prTitle": "Titolo",
2301
+ "headBranch": "Branch head",
2302
+ "baseBranch": "Branch base",
2303
+ "openPullRequest": "Apri pull request",
2304
+ "noPulls": "Nessuna pull request sincronizzata.",
2305
+ "mergePr": "Effettua il merge della pull request",
2306
+ "noIssues": "Nessuna issue sincronizzata.",
2307
+ "prState": {
2308
+ "open": "aperta",
2309
+ "closed": "chiusa",
2310
+ "merged": "sottoposta a merge"
2311
+ },
2312
+ "issueState": {
2313
+ "open": "aperta",
2314
+ "closed": "chiusa"
2315
+ },
2316
+ "toast": {
2317
+ "disconnected": "GitHub disconnesso",
2318
+ "resync": "Risincronizzazione {status}",
2319
+ "reposUpdated": "Repository collegati aggiornati",
2320
+ "branchCreated": "Branch {name} creato",
2321
+ "prOpened": "Pull request aperta",
2322
+ "prMerged": "PR #{number} sottoposta a merge"
2323
+ },
2324
+ "errors": {
2325
+ "disconnect": "Impossibile disconnettere",
2326
+ "resync": "Impossibile risincronizzare",
2327
+ "loadRepos": "Impossibile caricare i repository",
2328
+ "updateRepos": "Impossibile aggiornare i repository",
2329
+ "loadBranches": "Impossibile caricare i branch",
2330
+ "createBranch": "Impossibile creare il branch",
2331
+ "openPr": "Impossibile aprire la pull request",
2332
+ "merge": "Impossibile effettuare il merge"
2333
+ },
2334
+ "confirmDisconnect": {
2335
+ "title": "Disconnettere GitHub?",
2336
+ "body": "L'app perderà l'accesso ai tuoi repository finché non ti riconnetti."
2337
+ }
2338
+ },
2339
+ "addService": {
2340
+ "title": "Aggiungi un servizio da un repository",
2341
+ "intro": "Scegli un repository GitHub esistente da aggiungere come servizio sulla board. Nessun bootstrapping: il repo viene collegato a un nuovo frame di servizio così com'è, e le attività che vi esegui puntano a quel repo.",
2342
+ "connectFirst": "Collega prima questo workspace a GitHub. Collega un'installazione su cui la App è già presente, oppure installala.",
2343
+ "repository": "Repository",
2344
+ "repositoryHint": "Repository a cui la GitHub App può accedere. Non vedi il tuo? Concedi l'accesso alla App qui sotto, poi aggiorna.",
2345
+ "repoType": "Tipo di repository",
2346
+ "repoTypeHint": "Cos'è questo repo: un servizio backend, un'app frontend, una libreria condivisa o un repository di documenti (solo docs/spike).",
2347
+ "noReposAvailable": "Nessun repository ancora disponibile. Concedi alla App l'accesso a uno qui sotto, poi aggiorna.",
2348
+ "searchPlaceholder": "Cerca repository per proprietario o nome…",
2349
+ "searchMinChars": "Digita almeno {min} carattere per cercare. | Digita almeno {min} caratteri per cercare.",
2350
+ "noMatches": "Nessun repository trovato per {query}.",
2351
+ "clearSelection": "Cancella selezione",
2352
+ "showingCount": "Visualizzati {shown} di {total} repository.",
2353
+ "repoLabel": {
2354
+ "private": " (privato)",
2355
+ "monorepo": " · monorepo",
2356
+ "onBoard": " · già sulla board",
2357
+ "personal": " · personale (il tuo token)"
2358
+ },
2359
+ "monorepoLabel": "Questo è un monorepo (ospita più di un servizio)",
2360
+ "monorepoDescription": "Aggiungi più servizi da un unico repo, ciascuno ancorato a una sottodirectory.",
2361
+ "monorepoBrowseHint": "Sfoglia il repository e scegli la directory del servizio che vuoi aggiungere. Gli agenti che lavorano su questo servizio verranno eseguiti all'interno di quella sottodirectory.",
2362
+ "serviceDirectory": "Directory del servizio:",
2363
+ "noDirectorySelected": "Nessuna directory ancora selezionata.",
2364
+ "addedConfigure": "{title} aggiunto, configuralo",
2365
+ "grantAccess": "Concedi alla App l'accesso a un repo",
2366
+ "grantAccessTitle": "Apri le impostazioni di installazione della App per concederle l'accesso a un repository",
2367
+ "refreshList": "Aggiorna l'elenco",
2368
+ "done": "Fatto",
2369
+ "add": "Aggiungi servizio",
2370
+ "addAnother": "Aggiungi un altro servizio",
2371
+ "toast": {
2372
+ "addedTitle": "Servizio aggiunto",
2373
+ "addedDescription": "{title} è sulla board, configuralo qui sotto.",
2374
+ "addFailedTitle": "Impossibile aggiungere il servizio"
2375
+ }
2376
+ },
2377
+ "repoTree": {
2378
+ "root": "root",
2379
+ "loading": "Caricamento…",
2380
+ "noSubdirectories": "Nessuna sottodirectory qui.",
2381
+ "empty": "Niente qui.",
2382
+ "select": "Seleziona",
2383
+ "selected": "Selezionata",
2384
+ "useThisFolder": "Usa questa cartella",
2385
+ "errors": {
2386
+ "listDirectory": "Impossibile elencare la directory"
2387
+ }
2388
+ }
2389
+ },
2390
+ "personalSubscriptions": {
2391
+ "heading": "Abbonamenti personali (solo per uso individuale)",
2392
+ "intro": "Claude (Pro/Max), GLM (Z.ai Coding Plan) e ChatGPT (Codex) sono ciascuno concessi in licenza a te come individuo, quindi vengono memorizzati solo per te e li usano solo le tue esecuzioni. Ogni token è cifrato con una password personale (mai memorizzata) che inserisci quando avvii un'esecuzione di questo tipo; viene memorizzato nella cache di questo browser per un po' così da non intralciarti. La password è una comodità a basso attrito e un segnale di trasparenza che il sistema non condividerà silenziosamente la tua credenziale, non una barriera contro chi detiene la chiave di sistema. Questi modelli non possono essere usati con pianificazioni ricorrenti.",
2393
+ "vendorField": "Abbonamento",
2394
+ "labelField": "Etichetta (opzionale)",
2395
+ "labelPlaceholder": "es. il mio {vendor}",
2396
+ "defaultLabel": "Il mio abbonamento {vendor}",
2397
+ "passwordField": "Password personale (min 6 caratteri)",
2398
+ "passwordPlaceholder": "protegge il tuo token",
2399
+ "renewsField": "L'abbonamento si rinnova il (opzionale)",
2400
+ "connect": "Collega",
2401
+ "replace": "Sostituisci",
2402
+ "expires": "Scade il {date}",
2403
+ "noExpiry": "Nessuna scadenza impostata",
2404
+ "renewal": {
2405
+ "expired": "Il tuo abbonamento {vendor} è scaduto. Rinnovalo e ricollegalo per continuare a eseguire i suoi modelli.",
2406
+ "soon": "Il tuo abbonamento {vendor} si rinnova tra {count} giorno. Aggiornalo qui una volta rinnovato. | Il tuo abbonamento {vendor} si rinnova tra {count} giorni. Aggiornalo qui una volta rinnovato."
2407
+ },
2408
+ "toast": {
2409
+ "connected": "Abbonamento {vendor} collegato",
2410
+ "connectFailed": "Impossibile collegare l'abbonamento",
2411
+ "disconnected": "Disconnesso",
2412
+ "disconnectFailed": "Impossibile disconnettere"
2413
+ },
2414
+ "vendors": {
2415
+ "claude": {
2416
+ "label": "Claude (Pro/Max)",
2417
+ "tokenLabel": "Token Claude",
2418
+ "step1": "Installa Claude Code e accedi con il tuo account Claude Pro/Max: esegui `claude` una volta e completa il login nel browser.",
2419
+ "step2": "Genera un token a lunga durata: esegui `claude setup-token` e copialo.",
2420
+ "step3": "Incollalo qui sotto e scegli una password personale per proteggerlo."
2421
+ },
2422
+ "glm": {
2423
+ "label": "GLM (Z.ai Coding Plan)",
2424
+ "tokenLabel": "Chiave API Z.ai",
2425
+ "tokenPlaceholder": "la tua chiave API del GLM Coding Plan",
2426
+ "step1": "Apri la dashboard del tuo Z.ai GLM Coding Plan e crea una chiave API per l'endpoint compatibile con Anthropic.",
2427
+ "step2": "Il GLM Coding Plan è concesso in licenza a te come individuo, quindi viene memorizzato qui per singolo utente (non raggruppato).",
2428
+ "step3": "Incolla la chiave qui sotto e scegli una password personale per proteggerla."
2429
+ },
2430
+ "codex": {
2431
+ "label": "ChatGPT (Codex)",
2432
+ "tokenLabel": "auth.json di ChatGPT",
2433
+ "step1": "Installa la Codex CLI e accedi con il tuo account ChatGPT: esegui `codex login` e completa il flusso nel browser.",
2434
+ "step2": "Apri il file delle credenziali che Codex ha scritto in ~/.codex/auth.json (su Windows %USERPROFILE%\\.codex\\auth.json).",
2435
+ "step3": "Copia l'intero contenuto di auth.json, incollalo qui sotto e scegli una password personale per proteggerlo."
2436
+ }
2437
+ },
2438
+ "confirmDisconnect": {
2439
+ "title": "Disconnettere questo abbonamento?",
2440
+ "body": "Il tuo abbonamento \"{vendor}\" verrà disconnesso. Questa operazione non può essere annullata."
2441
+ }
2442
+ },
2443
+ "observability": {
2444
+ "modelActivity": "Attività del modello",
2445
+ "viewAllCalls": "Visualizza tutte le chiamate →",
2446
+ "providedContext": "Contesto fornito",
2447
+ "exportJson": "Esporta JSON",
2448
+ "exportHint": "Scarica un export JSON di questa esecuzione ottimizzato per LLM",
2449
+ "closeEsc": "Chiudi (Esc)",
2450
+ "loadingActivity": "Caricamento dell'attività del modello…",
2451
+ "loadingContext": "Caricamento del contesto fornito…",
2452
+ "noCalls": "Nessuna chiamata al modello registrata per questa esecuzione.",
2453
+ "noContext": "Nessun contesto dell'agente memorizzato per questa esecuzione. Viene catturato a ogni dispatch quando il workspace ha 'Memorizza il contesto completo dell'agente' abilitato.",
2454
+ "contextError": "Impossibile caricare il contesto fornito.",
2455
+ "summary": {
2456
+ "calls": "Chiamate",
2457
+ "tokensInOut": "Token (in / out)",
2458
+ "transportOverhead": "Overhead di trasporto",
2459
+ "modelExecution": "Esecuzione del modello",
2460
+ "truncated": "{count} troncata | {count} troncate"
2461
+ },
2462
+ "metricsBar": {
2463
+ "calls": "{count} chiamata | {count} chiamate",
2464
+ "promptCompletionTokens": "Token di prompt / completion",
2465
+ "cachedTokens": "({tokens} in cache)",
2466
+ "cachedTokensHint": "Token di prompt serviti dalla cache del provider",
2467
+ "errors": "{count} errore | {count} errori",
2468
+ "warnings": "{count} avviso | {count} avvisi",
2469
+ "outputLimit": "Limite di output",
2470
+ "truncatedCalls": "{count} chiamata troncata al limite | {count} chiamate troncate al limite",
2471
+ "transportVsExecution": "Trasporto vs esecuzione",
2472
+ "transportOverhead": "Overhead di trasporto / proxy",
2473
+ "modelExecution": "Esecuzione del modello"
2474
+ },
2475
+ "call": {
2476
+ "tokensTitle": "{prompt} token di prompt / {completion} di completion",
2477
+ "outputUsedVsLimit": "Output usato vs limite",
2478
+ "transportVsExecution": "Overhead di trasporto / esecuzione del modello",
2479
+ "error": "errore",
2480
+ "ok": "ok",
2481
+ "messages": "{count} messaggi",
2482
+ "tools": "{count} strumenti",
2483
+ "streamed": "in streaming",
2484
+ "buffered": "bufferizzato",
2485
+ "maxTokens": "max_tokens {value}",
2486
+ "promptCached": "{cached}/{prompt} prompt in cache",
2487
+ "total": "totale {duration}",
2488
+ "prompt": "Prompt",
2489
+ "promptPrefixOmitted": "(solo nuovi messaggi: {count} precedenti omessi)",
2490
+ "response": "Risposta",
2491
+ "reasoning": "Ragionamento"
2492
+ },
2493
+ "context": {
2494
+ "injectedFiles": "File di contesto iniettati",
2495
+ "bestPracticeFragments": "Frammenti di best practice",
2496
+ "filesCount": "{count} file",
2497
+ "fragmentsCount": "{count} frammenti",
2498
+ "systemPrompt": "Prompt di sistema",
2499
+ "userPrompt": "Prompt utente",
2500
+ "details": "Dettagli"
2501
+ },
2502
+ "webSearch": "Ricerca web",
2503
+ "loadingSearch": "Caricamento delle ricerche web…",
2504
+ "noSearch": "Nessuna ricerca web registrata per questa esecuzione. Le query vengono catturate quando viene eseguita la ricerca web e il workspace ha 'Memorizza il contesto completo dell'agente' abilitato.",
2505
+ "search": {
2506
+ "available": "Disponibile",
2507
+ "unavailable": "Non disponibile",
2508
+ "provider": "Provider",
2509
+ "resultsCount": "{count} risultato | {count} risultati",
2510
+ "queriesTitle": "Ricerche effettuate"
2511
+ }
2512
+ },
2513
+ "auth": {
2514
+ "gate": {
2515
+ "loading": "Caricamento…"
2516
+ },
2517
+ "localMode": {
2518
+ "continueWithConfigured": "Accedi con il PAT {provider} configurato",
2519
+ "noPatTitle": "Nessun token di controllo del codice sorgente configurato",
2520
+ "noPatBody": "Imposta GITHUB_PAT o GITLAB_PAT nel tuo file .env per accedere con un personal access token, poi riavvia il server.",
2521
+ "createToken": "Crea un token {provider} ↗",
2522
+ "orDivider": "oppure",
2523
+ "failed": "Accesso non riuscito. Verifica che il token configurato sia valido e riprova."
2524
+ },
2525
+ "signInRequired": {
2526
+ "personalSubscriptions": "Gli abbonamenti personali vengono salvati sul tuo account, ma questo deployment funziona senza accesso, quindi non possono essere memorizzati qui. Usa invece il pool del workspace o una chiave API di un provider.",
2527
+ "userApiKeys": "Le tue chiavi API personali vengono salvate sul tuo account, ma questo deployment funziona senza accesso, quindi non possono essere memorizzate qui. Cambia l'ambito in \"Questo workspace\" per aggiungere una chiave condivisa."
2528
+ },
2529
+ "login": {
2530
+ "appTitle": "Architecture Board",
2531
+ "subtitle": "Accedi per continuare.",
2532
+ "inviteSubtitle": "Accetta il tuo invito per continuare.",
2533
+ "forgotSubtitle": "Reimposta la tua password.",
2534
+ "continueWithGithub": "Continua con GitHub",
2535
+ "continueWithGoogle": "Continua con Google",
2536
+ "or": "oppure",
2537
+ "namePlaceholder": "Nome (opzionale)",
2538
+ "emailPlaceholder": "Email",
2539
+ "passwordPlaceholder": "Password",
2540
+ "createAccount": "Crea account",
2541
+ "signIn": "Accedi",
2542
+ "signUp": "Registrati",
2543
+ "needAccount": "Serve un account? {signUp}",
2544
+ "haveAccount": "Hai già un account? {signIn}",
2545
+ "forgotPassword": "Password dimenticata?",
2546
+ "forgotSent": "Se esiste un account per quell'email, un link per reimpostare la password è in arrivo. Controlla la tua casella di posta.",
2547
+ "sendResetLink": "Invia link di reimpostazione",
2548
+ "backToSignIn": "Torna all'accesso",
2549
+ "signInFailed": "Accesso non riuscito. Controlla i tuoi dati e riprova.",
2550
+ "genericError": "Qualcosa è andato storto. Riprova.",
2551
+ "notConfiguredTitle": "L'autenticazione non è configurata",
2552
+ "notConfiguredBody": "Questo deployment non ha alcun metodo di accesso abilitato, quindi non puoi accedere o utilizzare i tuoi workspace. Un amministratore deve configurare un provider di autenticazione (OAuth GitHub o Google, oppure accesso con email e password).",
2553
+ "patPlaceholder": "personal access token {provider}",
2554
+ "signInWithPat": "Accedi con il PAT {provider}"
2555
+ },
2556
+ "resetPassword": {
2557
+ "title": "Reimposta password",
2558
+ "subtitle": "Scegli una nuova password per il tuo account.",
2559
+ "doneBody": "La tua password è stata reimpostata. Ora puoi accedere con la nuova password.",
2560
+ "goToSignIn": "Vai all'accesso",
2561
+ "missingToken": "A questo link di reimpostazione manca il token. Richiedi un nuovo link dalla schermata di accesso.",
2562
+ "backToSignIn": "Torna all'accesso",
2563
+ "newPasswordPlaceholder": "Nuova password",
2564
+ "confirmPasswordPlaceholder": "Conferma la nuova password",
2565
+ "submit": "Reimposta password",
2566
+ "errorTooShort": "La password deve contenere almeno 8 caratteri.",
2567
+ "errorMismatch": "Le password non corrispondono.",
2568
+ "errorInvalidLink": "Questo link di reimpostazione della password non è valido o è scaduto."
2569
+ },
2570
+ "userMenu": {
2571
+ "mySetup": "La mia configurazione",
2572
+ "signOut": "Esci"
2573
+ },
2574
+ "mothership": {
2575
+ "signIn": "Accedi tramite mothership",
2576
+ "hint": "I tuoi progetti e la tua identità risiedono sulla mothership ospitata. Accedi lì per collegare questo nodo.",
2577
+ "error": "Impossibile accedere tramite la mothership. Riprova."
2578
+ }
2579
+ },
2580
+ "documents": {
2581
+ "picker": {
2582
+ "searchPlaceholder": "Cerca pagine o incolla un URL/ID…",
2583
+ "refPlaceholder": "Incolla l'URL o l'ID di una pagina…",
2584
+ "searchFailed": "Ricerca non riuscita: {error}",
2585
+ "importedBadge": "importato",
2586
+ "attachByReference": "Allega {ref} per riferimento",
2587
+ "noMatches": "Nessuna pagina corrispondente.",
2588
+ "emptySearchable": "Cerca per titolo, oppure scegli un documento importato.",
2589
+ "emptyRefOnly": "Incolla l'URL o l'ID di una pagina per allegarla."
2590
+ },
2591
+ "import": {
2592
+ "title": "Importa da una sorgente di documenti",
2593
+ "connectFirst": "Collega prima una sorgente di documenti.",
2594
+ "connectSource": "Collega {source}",
2595
+ "spawningInto": "Generazione in {frame}",
2596
+ "sourceLabel": "Sorgente",
2597
+ "refLabel": "URL o ID della pagina",
2598
+ "importButton": "Importa",
2599
+ "importedHeading": "Documenti importati",
2600
+ "previewSpawn": "Anteprima e genera",
2601
+ "noneImported": "Nessun documento ancora importato.",
2602
+ "imported": "Importato \"{title}\"",
2603
+ "importFailed": "Importazione non riuscita"
2604
+ },
2605
+ "connect": {
2606
+ "title": "Collega sorgente",
2607
+ "sourceFallback": "Sorgente",
2608
+ "intro": "Collega {source} per importare requisiti, RFC e PRD, poi genera la struttura della board o allegali alle attività come contesto per l'agente.",
2609
+ "disconnect": "Disconnetti",
2610
+ "connect": "Collega",
2611
+ "update": "Aggiorna connessione",
2612
+ "connected": "{source} collegato",
2613
+ "disconnected": "{source} disconnesso",
2614
+ "connectFailed": "Impossibile collegare"
2615
+ },
2616
+ "spawn": {
2617
+ "title": "Anteprima struttura",
2618
+ "plannerLlm": "Generato dall'AI",
2619
+ "plannerHeadings": "Dai titoli",
2620
+ "intoFrame": "in {frame}",
2621
+ "asTopLevel": "come nuovi frame di primo livello",
2622
+ "buildingPlan": "Creazione del piano…",
2623
+ "spawnOntoBoard": "Genera sulla board",
2624
+ "planFailed": "Impossibile creare un piano",
2625
+ "spawned": "Struttura generata",
2626
+ "spawnFailed": "Generazione non riuscita",
2627
+ "summary": "{frames} · {modules} · {tasks}",
2628
+ "frameCount": "{count} frame | {count} frame",
2629
+ "moduleCount": "{count} modulo | {count} moduli",
2630
+ "taskCount": "{count} attività | {count} attività"
2631
+ },
2632
+ "taskDocs": {
2633
+ "heading": "Documenti di contesto",
2634
+ "hint": "Documenti allegati a questa attività come contesto. Il loro contenuto viene fornito agli agenti che lavorano sull'attività.",
2635
+ "attach": "Allega",
2636
+ "importPage": "Importa una pagina…",
2637
+ "empty": "Allega un requisito, un RFC o un PRD così gli agenti lo vedono durante l'implementazione di questa attività.",
2638
+ "attached": "Documento allegato",
2639
+ "attachFailed": "Impossibile allegare"
2640
+ },
2641
+ "templates": {
2642
+ "title": "Modelli ed esempi di documenti",
2643
+ "intro": "Indirizza un tipo di documento verso i tuoi modelli e documenti di esempio. Devono essere prima importati tramite l'integrazione Documenti. Le sezioni di un modello sostituiscono lo scheletro integrato per quel tipo; gli esempi guidano gli agenti autori.",
2644
+ "kindLabel": "Tipo di documento",
2645
+ "importFirst": "Importa prima un documento — un modello o un esempio è uno dei tuoi documenti importati.",
2646
+ "importButton": "Importa un documento",
2647
+ "templateHeading": "Modello",
2648
+ "templateHint": "Sostituisce lo scheletro integrato di {kind}. Un modello per tipo.",
2649
+ "templateEmpty": "In uso il modello integrato.",
2650
+ "exemplarsHeading": "Esempi da emulare",
2651
+ "exemplarsHint": "Buoni esempi che gli agenti autori studiano, aggiunti al set integrato.",
2652
+ "exemplarsEmpty": "Nessun esempio collegato.",
2653
+ "pickLabel": "Documento importato",
2654
+ "pickPlaceholder": "Scegli un documento importato…",
2655
+ "setTemplate": "Imposta come modello",
2656
+ "addExemplar": "Aggiungi esempio",
2657
+ "remove": "Rimuovi",
2658
+ "linkFailed": "Impossibile aggiornare il collegamento del documento",
2659
+ "loadFailed": "Impossibile caricare i modelli di documento"
2660
+ }
2661
+ },
2662
+ "tasks": {
2663
+ "picker": {
2664
+ "searchPlaceholder": "Cerca issue o incolla un URL/chiave…",
2665
+ "refPlaceholder": "Incolla l'URL o la chiave di una issue…",
2666
+ "searchFailed": "Ricerca non riuscita: {error}",
2667
+ "imported": "importata",
2668
+ "attachByReference": "Allega {ref} per riferimento",
2669
+ "noMatches": "Nessuna issue corrispondente.",
2670
+ "emptySearchable": "Cerca per titolo, oppure scegli una issue importata.",
2671
+ "emptyRefOnly": "Incolla l'URL o la chiave di una issue per allegarla."
2672
+ },
2673
+ "contextIssues": {
2674
+ "title": "Issue di contesto",
2675
+ "hint": "Issue del tracker allegate a questa attività come contesto. Il loro contenuto viene fornito agli agenti che lavorano sull'attività.",
2676
+ "attach": "Allega",
2677
+ "attached": "Issue allegata",
2678
+ "attachFailed": "Impossibile allegare",
2679
+ "importIssue": "Importa una issue…",
2680
+ "emptyHint": "Allega una issue Jira così gli agenti vedono la sua descrizione e i commenti durante l'implementazione di questa attività."
2681
+ },
2682
+ "import": {
2683
+ "titleCreate": "Crea attività da una issue",
2684
+ "titleBrowse": "Issue del tracker",
2685
+ "connectFirst": "Collega o abilita prima una sorgente di attività.",
2686
+ "enableSource": "Abilita {label}",
2687
+ "connectSource": "Collega {label}",
2688
+ "source": "Sorgente",
2689
+ "refLabel": "Chiave o URL della issue",
2690
+ "import": "Importa",
2691
+ "asEpic": "Come epica",
2692
+ "asEpicTitleReady": "Genera questa epica + i suoi figli come gruppo di attività collegate",
2693
+ "asEpicTitleNeedsContainer": "Scegli prima un contenitore per le attività figlie",
2694
+ "epicChildrenContainer": "Contenitore delle attività figlie dell'epica",
2695
+ "pickContainer": "Scegli un frame o un modulo",
2696
+ "searchIssues": "Cerca issue",
2697
+ "searchPlaceholder": "Cerca per titolo, incolla l'URL di una issue, o digita un numero di issue…",
2698
+ "createTasksIn": "Crea attività in",
2699
+ "needFrameFirst": "Aggiungi prima un frame di servizio alla board per creare attività dalle issue.",
2700
+ "searchFailed": "Ricerca non riuscita: {error}",
2701
+ "searchResults": "Risultati della ricerca",
2702
+ "createFromIssue": "Crea un'attività da questa issue",
2703
+ "pickContainerFirst": "Scegli prima un contenitore",
2704
+ "viewOnGitHub": "Visualizza {id} su GitHub",
2705
+ "emptyHint": "Cerca sopra, oppure incolla l'URL/la chiave di una issue per crearne un'attività.",
2706
+ "imported": "Importato \"{title}\"",
2707
+ "importFailed": "Importazione non riuscita",
2708
+ "epicSpawned": "Generata epica \"{title}\"",
2709
+ "epicChildren": "{count} attività figlia creata | {count} attività figlie create",
2710
+ "epicFailed": "Impossibile generare l'epica"
2711
+ },
2712
+ "connect": {
2713
+ "title": "Sorgente di attività",
2714
+ "sourceFallback": "Sorgente",
2715
+ "connectedToast": "{label} collegato",
2716
+ "connectFailed": "Impossibile collegare",
2717
+ "disconnectedToast": "{label} disconnesso",
2718
+ "updateFailed": "Impossibile aggiornare",
2719
+ "intro": "{label} ti permette di importare issue e allegarle alle attività come contesto per l'agente.",
2720
+ "credentialless": "Questa sorgente usa la GitHub App già installata sul tuo workspace, quindi non ci sono credenziali da inserire.",
2721
+ "installAppHint": "Installa la GitHub App del workspace (collega i repo GitHub) per offrire {label}.",
2722
+ "connected": "Collegato.",
2723
+ "connectedTo": "Collegato a {label}.",
2724
+ "offerToWorkspace": "Offri a questo workspace",
2725
+ "offerHint": "Quando disattivato, {label} è nascosto dall'importazione e dal collegamento.",
2726
+ "disconnect": "Disconnetti",
2727
+ "updateConnection": "Aggiorna connessione",
2728
+ "connect": "Collega",
2729
+ "oauthButton": "Collega con {label}",
2730
+ "oauthOr": "oppure collega con una chiave API"
2731
+ }
2732
+ },
2733
+ "pipeline": {
2734
+ "iterationCap": {
2735
+ "extraRound": "Un altro giro",
2736
+ "proceed": "Procedi comunque",
2737
+ "stopReset": "Interrompi e reimposta l'attivita"
2738
+ },
2739
+ "builder": {
2740
+ "title": "Costruttore di pipeline",
2741
+ "agentPalette": "Palette degli agenti",
2742
+ "addAgent": "Aggiungi agente",
2743
+ "pipeline": "Pipeline",
2744
+ "configureModels": "Configura modelli",
2745
+ "configureModelsTooltip": "Gestisci i preset dei modelli (su quale modello viene eseguito ciascun agente)",
2746
+ "namePlaceholder": "Nome della pipeline",
2747
+ "labelPlaceholder": "+ etichetta",
2748
+ "gatingNeedsEstimator": "Uno step con gate richiede un Task Estimator prima di se. Aggiungine uno, altrimenti la pipeline non verra salvata.",
2749
+ "emptyDraft": "Fai clic sugli agenti a sinistra per assemblare una pipeline lineare.",
2750
+ "companionAdd": "Aggiungi il {companion} (rivede questo step, lo riporta indietro se sotto la soglia)",
2751
+ "companionRemove": "Rimuovi il {companion} per questo step",
2752
+ "disableTooltip": "Disabilita questo step (mantenuto nella pipeline ma saltato durante l'esecuzione)",
2753
+ "enableTooltip": "Step disabilitato (saltato durante l'esecuzione). Fai clic per abilitarlo.",
2754
+ "approvalAddTooltip": "Richiedi l'approvazione umana dopo questo step",
2755
+ "approvalRemoveTooltip": "Approvazione richiesta dopo questo step. Fai clic per rimuovere il gate.",
2756
+ "consensusEnableTooltip": "Abilita il consenso (panel/dibattito/voto multi-modello) per questo step",
2757
+ "consensusRevertTooltip": "Consenso abilitato. Fai clic per tornare a un singolo agente.",
2758
+ "followUpEnableTooltip": "Companion di follow-up disabilitato. Fai clic per abilitarlo (il Coder mette in evidenza questioni in sospeso / domande).",
2759
+ "followUpDisableTooltip": "Companion di follow-up abilitato. Il Coder mette in evidenza questioni in sospeso / attivita collaterali / domande; fai clic per disabilitarlo.",
2760
+ "testerQualityEnableTooltip": "Companion di qualita dei test disabilitato. Fai clic per abilitarlo (controlla la copertura del report e riporta il Tester sulle lacune).",
2761
+ "testerQualityDisableTooltip": "Companion di qualita dei test abilitato. Controlla la copertura del report prima del via libera e riporta il Tester sulle lacune; fai clic per disabilitarlo.",
2762
+ "testerQualityLabel": "Companion di qualita dei test",
2763
+ "testerQualityGateTooltip": "Esegui il controllo di qualita solo quando la stima dell'attivita supera una soglia (richiede un Task Estimator in precedenza)",
2764
+ "moveUp": "Sposta lo step in alto",
2765
+ "moveDown": "Sposta lo step in basso",
2766
+ "removeStep": "Rimuovi questo step dalla pipeline",
2767
+ "gateOnEstimate": "Gate sulla stima",
2768
+ "companionGateTooltip": "Esegui questo companion solo quando la stima dell'attivita supera una soglia (richiede un Task Estimator in precedenza)",
2769
+ "consensusGateTooltip": "Esegui il consenso solo quando la stima dell'attivita supera una soglia (altrimenti viene eseguito l'agente standard)",
2770
+ "runWhenAny": "esegui quando (uno qualsiasi):",
2771
+ "complexityThreshold": "complessita ≥",
2772
+ "riskThreshold": "rischio ≥",
2773
+ "impactThreshold": "impatto ≥",
2774
+ "strategy": "Strategia",
2775
+ "rounds": "Giri",
2776
+ "strategyOption": {
2777
+ "specialist-panel": "Panel di specialisti",
2778
+ "debate": "Dibattito",
2779
+ "ranked-voting": "Voto per preferenza"
2780
+ },
2781
+ "rolePlaceholder": "Ruolo",
2782
+ "modelIdPlaceholder": "Id del modello (opzionale)",
2783
+ "removeParticipant": "Rimuovi partecipante (min 2)",
2784
+ "addParticipant": "Aggiungi partecipante",
2785
+ "savedPipelines": "Pipeline salvate",
2786
+ "hideArchived": "Nascondi archiviate",
2787
+ "archivedCount": "Archiviate ({count})",
2788
+ "allLabels": "Tutte",
2789
+ "defaultBadge": "predefinita",
2790
+ "stepCount": "{count} step | {count} step",
2791
+ "unarchive": "Ripristina",
2792
+ "archive": "Archivia (nascondi dalla vista predefinita)",
2793
+ "cloneDefault": "Clona questa predefinita in una copia modificabile",
2794
+ "clone": "Clona",
2795
+ "edit": "Modifica questa pipeline",
2796
+ "delete": "Elimina questa pipeline",
2797
+ "confirmDeletePipeline": {
2798
+ "title": "Eliminare questa pipeline?",
2799
+ "body": "\"{name}\" verra rimossa. Questa operazione non puo essere annullata."
2800
+ },
2801
+ "disabledStepTooltip": "Disabilitato, saltato durante l'esecuzione",
2802
+ "cancelEdit": "Annulla modifica",
2803
+ "clear": "Svuota",
2804
+ "update": "Aggiorna pipeline",
2805
+ "save": "Salva pipeline",
2806
+ "addAgentModal": {
2807
+ "title": "Aggiungi agente",
2808
+ "name": "Nome",
2809
+ "namePlaceholder": "es. Security Auditor",
2810
+ "description": "Descrizione",
2811
+ "descriptionPlaceholder": "Cosa fa questo agente?",
2812
+ "linkDoc": "Collega documento di contesto",
2813
+ "create": "Crea agente"
2814
+ },
2815
+ "toast": {
2816
+ "added": "Agente \"{name}\" aggiunto",
2817
+ "placeholderTitle": "Segnaposto",
2818
+ "updated": "\"{name}\" aggiornato",
2819
+ "saved": "\"{name}\" salvato",
2820
+ "addOneFirst": "Aggiungi prima almeno un agente",
2821
+ "saveFailed": "Impossibile salvare la pipeline",
2822
+ "cloned": "Clonato \"{name}\" — ora si modifica \"{copy}\"",
2823
+ "cloneFailed": "Impossibile clonare la pipeline",
2824
+ "updateFailed": "Impossibile aggiornare la pipeline"
2825
+ }
2826
+ },
2827
+ "progress": {
2828
+ "status": {
2829
+ "running": "In esecuzione",
2830
+ "blocked": "Richiede la tua attenzione",
2831
+ "paused": "In pausa (budget)",
2832
+ "done": "Completata",
2833
+ "failed": "Fallita"
2834
+ },
2835
+ "state": {
2836
+ "pending": "In attesa",
2837
+ "working": "In lavorazione",
2838
+ "waiting_decision": "Richiede una decisione",
2839
+ "done": "Fatto"
2840
+ },
2841
+ "stage": {
2842
+ "incorporating": "Incorporazione in corso…",
2843
+ "reviewing": "Nuova revisione in corso…",
2844
+ "recommending": "Raccomandazione in corso…"
2845
+ },
2846
+ "followUp": {
2847
+ "watching": "In osservazione…",
2848
+ "toDecide": "{count} da decidere",
2849
+ "allDecided": "Tutto deciso"
2850
+ },
2851
+ "agentsComplete": "{completed} / {total} agenti completati",
2852
+ "currently": "attualmente {agent}",
2853
+ "percent": "{value}%",
2854
+ "companion": "Companion",
2855
+ "companionTooltip": "Companion di uno step produttore",
2856
+ "companionSuffix": "(companion)",
2857
+ "stepOf": "Step {current} di {total}",
2858
+ "viewDetailsOutput": "Visualizza dettagli e leggi l'output",
2859
+ "viewDetails": "Visualizza i dettagli dello step",
2860
+ "restartTooltip": "Riavvia la pipeline da questo step",
2861
+ "restartFromHere": "Riavvia da qui",
2862
+ "spinningUpContainer": "Avvio del container in corso…",
2863
+ "subtasks": "{completed}/{total} sotto-attivita",
2864
+ "subtasksInProgress": "· {count} in corso",
2865
+ "clickToRead": "Fai clic per leggere l'output di questo agente",
2866
+ "reviewApprove": "Rivedi e approva la proposta di {agent}",
2867
+ "resolve": "Risolvi: {question}"
2868
+ },
2869
+ "health": {
2870
+ "title": "Stato delle pipeline",
2871
+ "allValid": "Tutte le pipeline sono valide e aggiornate.",
2872
+ "invalidHeading": "Pipeline non valide",
2873
+ "invalidDescription": "Queste fanno riferimento a un agente mancante o sono configurate male, quindi fallirebbero (o funzionerebbero male) all'avvio. Elimina una pipeline personalizzata, oppure ripristina una integrata per recuperare la sua definizione dal catalogo.",
2874
+ "builtinBadge": "integrata",
2875
+ "reseed": "Ripristina",
2876
+ "delete": "Elimina",
2877
+ "updatesHeading": "Aggiornamenti disponibili",
2878
+ "updatesDescription": "E stata rilasciata una versione piu recente di queste pipeline integrate. Ripristinale per adottarla (le tue etichette e lo stato di archiviazione vengono mantenuti).",
2879
+ "reseedAll": "Ripristina tutte ({count})",
2880
+ "dismiss": "Ignora",
2881
+ "done": "Fatto",
2882
+ "toast": {
2883
+ "reseedFailed": "Impossibile ripristinare la pipeline",
2884
+ "deleteFailed": "Impossibile eliminare la pipeline"
2885
+ }
2886
+ }
2887
+ },
2888
+ "requirements": {
2889
+ "title": "Revisione dei requisiti",
2890
+ "iteration": "Iterazione {current} / {max}",
2891
+ "intro": "Un revisore AI ha esaminato i requisiti raccolti di questo {level} — la sua descrizione piu eventuali PRD e issue del tracker collegati — e ha sollevato i rilievi qui sotto. {answer} quelli pertinenti e {dismiss} quelli irrilevanti, poi incorporali; il revisore rivede di nuovo finche i requisiti non sono chiari.",
2892
+ "levelFallback": "elemento",
2893
+ "answerVerb": "Rispondi a",
2894
+ "dismissVerb": "ignora",
2895
+ "empty": "Nessuna revisione ancora. Il revisore viene eseguito automaticamente come primo step all'avvio della pipeline di questa attivita.",
2896
+ "loadingReview": "Caricamento della revisione…",
2897
+ "reviewing": "Revisione dei requisiti in corso…",
2898
+ "settled": "I requisiti sono definiti. Il documento qui sotto e quello che utilizza ogni step successivo dell'agente.",
2899
+ "exceeded": {
2900
+ "heading": "Raggiunto il limite di {max} iterazioni con rilievi ancora aperti.",
2901
+ "detail": "Esegui un altro giro di revisione, procedi alla fase successiva con gli ultimi requisiti incorporati comunque, oppure interrompi e reimposta l'attivita per poter rielaborare i requisiti e inviarli di nuovo."
2902
+ },
2903
+ "working": {
2904
+ "incorporating": "Incorporazione delle tue risposte in un documento dei requisiti… Puoi chiudere questa finestra: ti avviseremo solo se occorrono altre indicazioni.",
2905
+ "reReviewing": "Nuova revisione dei requisiti aggiornati… Puoi chiudere questa finestra: ti avviseremo solo se occorrono altre indicazioni."
2906
+ },
2907
+ "severity": {
2908
+ "high": "alta",
2909
+ "medium": "media",
2910
+ "low": "bassa"
2911
+ },
2912
+ "category": {
2913
+ "gap": "lacuna",
2914
+ "clarification": "chiarimento",
2915
+ "assumption": "assunzione",
2916
+ "risk": "rischio",
2917
+ "question": "domanda"
2918
+ },
2919
+ "itemStatus": {
2920
+ "open": "aperto",
2921
+ "answered": "risposto",
2922
+ "resolved": "risolto",
2923
+ "dismissed": "ignorato",
2924
+ "recommend_requested": "raccomandazione richiesta"
2925
+ },
2926
+ "answerLabel": "Rispondi",
2927
+ "answerPlaceholder": "Rispondi a questo rilievo…",
2928
+ "dismissIrrelevant": "Ignora come irrilevante",
2929
+ "markedForRecommendation": "Contrassegnato per raccomandazione",
2930
+ "recommendSomething": "Raccomanda qualcosa",
2931
+ "recommendationRequested": "Raccomandazione richiesta — rivedi il suggerimento qui sotto.",
2932
+ "reopen": "Riapri",
2933
+ "recommendedAnswers": "Risposte raccomandate",
2934
+ "recommendationProgress": "{ready} / {total} pronte",
2935
+ "generatingSuggestion": "Generazione di un suggerimento fondato…",
2936
+ "currentStandard": "Standard attuale: {title}",
2937
+ "accept": "Accetta",
2938
+ "reject": "Rifiuta",
2939
+ "reRequestPlaceholder": "Chiedi una raccomandazione diversa…",
2940
+ "reRequest": "Richiedi di nuovo",
2941
+ "finalRequirements": "Requisiti finali",
2942
+ "incorporatedDraft": "Requisiti incorporati (bozza)",
2943
+ "stats": {
2944
+ "findings": "Rilievi",
2945
+ "open": "Aperti",
2946
+ "answered": "Risposti",
2947
+ "recommendations": "Raccomandazioni",
2948
+ "recsGenerating": "In generazione",
2949
+ "recsToReview": "Da rivedere",
2950
+ "model": "Modello"
2951
+ },
2952
+ "actions": {
2953
+ "proceedNothing": "Procedi (nulla da incorporare)",
2954
+ "incorporateAnswers": "Incorpora le risposte",
2955
+ "requestRecommendations": "Richiedi {count} raccomandazione | Richiedi {count} raccomandazione | Richiedi {count} raccomandazioni",
2956
+ "reReview": "Va bene — rivedi di nuovo",
2957
+ "reReviewing": "Nuova revisione in corso…",
2958
+ "redoIncorporation": "Rifai l'incorporazione",
2959
+ "redoWithDirection": "Rifai con questa indicazione"
2960
+ },
2961
+ "help": {
2962
+ "canProceed": "Ogni rilievo e ignorato — procedi alla fase successiva senza rielaborare.",
2963
+ "canIncorporate": "Unisce le tue risposte in un unico documento in formato standard, poi lo rivede automaticamente.",
2964
+ "answerAll": "Rispondi o ignora ogni rilievo per continuare.",
2965
+ "merged": "La nuova revisione esegue il revisore su questo documento. Se non sei soddisfatto di come e stato unito, rifallo con un commento."
2966
+ },
2967
+ "redoPlaceholder": "Cosa dovrebbe fare diversamente l'unione?",
2968
+ "settledFooter": "Requisiti definiti — la pipeline prosegue con il documento a sinistra.",
2969
+ "toast": {
2970
+ "preparingRecommendations": "Preparazione di {count} raccomandazione in background | Preparazione di {count} raccomandazione in background | Preparazione di {count} raccomandazioni in background",
2971
+ "preparingRecommendationsDescription": "Le tue risposte sono salvate — chiudi pure se vuoi; ti avviseremo quando saranno pronte.",
2972
+ "recommendationsReady": "{count} raccomandazione pronta | {count} raccomandazione pronta | {count} raccomandazioni pronte",
2973
+ "incorporating": "Incorporazione delle tue risposte in background",
2974
+ "incorporatingDescription": "Sei di nuovo sulla lavagna — ti avviseremo solo se occorrono altre indicazioni.",
2975
+ "reviewerSatisfied": "Il revisore e soddisfatto — la pipeline prosegue",
2976
+ "iterationLimitReached": "Limite di iterazioni raggiunto — scegli come procedere",
2977
+ "newFindings": "nessun nuovo rilievo a cui reagire | {count} nuovo rilievo a cui reagire | {count} nuovi rilievi a cui reagire",
2978
+ "proceeding": "Passaggio alla fase successiva",
2979
+ "taskReset": "Attivita reimpostata — modifica i requisiti e inviali di nuovo",
2980
+ "extraRoundGranted": "Concesso un altro giro di revisione"
2981
+ },
2982
+ "errors": {
2983
+ "saveAnswer": "Impossibile salvare la risposta",
2984
+ "updateFinding": "Impossibile aggiornare il rilievo",
2985
+ "requestRecommendations": "Impossibile richiedere le raccomandazioni",
2986
+ "acceptRecommendation": "Impossibile accettare la raccomandazione",
2987
+ "rejectRecommendation": "Impossibile rifiutare la raccomandazione",
2988
+ "reRequestRecommendation": "Impossibile richiedere di nuovo la raccomandazione",
2989
+ "incorporate": "Impossibile incorporare le risposte",
2990
+ "reReview": "Impossibile rivedere di nuovo i requisiti",
2991
+ "proceed": "Impossibile procedere",
2992
+ "resolveReview": "Impossibile risolvere la revisione"
2993
+ }
2994
+ },
2995
+ "bootstrap": {
2996
+ "title": "Avvia un repository",
2997
+ "repoName": {
2998
+ "error": {
2999
+ "hasSlash": "Inserisci solo il nome del repository, senza il prefisso 'owner/'.",
3000
+ "invalidChars": "Sono consentiti solo lettere, cifre, '.', '_' e '-'.",
3001
+ "tooLong": "Deve essere di massimo 100 caratteri."
3002
+ }
3003
+ },
3004
+ "intro": {
3005
+ "canCreate": "Crea un repository GitHub vuoto, poi lascia che un agente bootstrapper lo popoli in un container sandbox, adattando una delle tue architetture di riferimento oppure partendo da zero seguendo un prompt libero. cat-factory invia il commit iniziale in quel repository; per questo account puo anche creare il repository per te.",
3006
+ "manual": "Crea un repository GitHub vuoto, poi lascia che un agente bootstrapper lo popoli in un container sandbox, adattando una delle tue architetture di riferimento oppure partendo da zero seguendo un prompt libero. cat-factory invia il commit iniziale in quel repository; sei tu a creare il repository (con un clic qui sotto), quindi non serve alcun permesso di creazione del repository."
3007
+ },
3008
+ "github": {
3009
+ "prompt": "Collega questo workspace a GitHub prima dell'avvio; un'esecuzione invia dei commit in un repository. Collega un'installazione su cui l'App e gia presente, oppure installala."
3010
+ },
3011
+ "section": {
3012
+ "newRepo": "Nuovo repository"
3013
+ },
3014
+ "mode": {
3015
+ "label": "Come vogliamo iniziare?",
3016
+ "reference": {
3017
+ "label": "Da un'architettura di riferimento",
3018
+ "description": "Clona un repository base gestito e adattalo al nuovo servizio."
3019
+ },
3020
+ "scratch": {
3021
+ "label": "Da zero",
3022
+ "description": "Genera un repository nuovo di zecca da un prompt libero, senza bisogno di una base."
3023
+ }
3024
+ },
3025
+ "reference": {
3026
+ "label": "Architettura di riferimento",
3027
+ "description": "Il repository base gestito da clonare e adattare.",
3028
+ "empty": "Nessuna architettura di riferimento ancora. Aggiungine una qui sotto, oppure passa a 'Da zero'.",
3029
+ "placeholder": "Scegli un'architettura di riferimento"
3030
+ },
3031
+ "targetRepo": {
3032
+ "label": "Nome del repository di destinazione",
3033
+ "namePlaceholder": "payments-service",
3034
+ "descWithOwner": "Crea un nuovo repository con questo nome sotto {owner}, poi l'avvio vi invia i commit. Un README, .gitignore o license preesistenti vanno bene.",
3035
+ "descNoOwner": "Crea un nuovo repository con questo nome, poi l'avvio vi invia i commit. Un README, .gitignore o license preesistenti vanno bene."
3036
+ },
3037
+ "createRepo": {
3038
+ "now": "Crea repository",
3039
+ "onGitHub": "Crea su GitHub",
3040
+ "titleNow": "Crea subito il repository",
3041
+ "titleGitHub": "Apri la pagina di nuovo repository di GitHub, precompilata"
3042
+ },
3043
+ "grantAccess": {
3044
+ "label": "Concedi all'App l'accesso a questo repository",
3045
+ "title": "Apri le impostazioni di installazione dell'App per concederle l'accesso al nuovo repository"
3046
+ },
3047
+ "repoType": {
3048
+ "label": "Tipo di repository",
3049
+ "help": "Cosa e questo repository: un servizio backend, un'app frontend, una libreria condivisa o un repository di documenti (solo docs/spike)."
3050
+ },
3051
+ "description": {
3052
+ "label": "Descrizione",
3053
+ "help": "Riepilogo opzionale su una riga per il repository.",
3054
+ "placeholder": "Gestisce gli intent di pagamento e i rimborsi"
3055
+ },
3056
+ "instructions": {
3057
+ "labelReference": "Istruzioni aggiuntive per il bootstrapper",
3058
+ "labelScratch": "Cosa dovrebbe costruire il bootstrapper?",
3059
+ "descReference": "Opzionali, aggiunte alle istruzioni predefinite dell'architettura di riferimento.",
3060
+ "descScratch": "Descrivi il nuovo servizio: stack, struttura e cosa dovrebbe fare."
3061
+ },
3062
+ "visibility": {
3063
+ "label": "Visibilita",
3064
+ "private": "Repository privato"
3065
+ },
3066
+ "launch": "Avvia il repository",
3067
+ "recent": {
3068
+ "title": "Esecuzioni recenti",
3069
+ "fromArch": "da {name}",
3070
+ "fromScratch": "da zero",
3071
+ "open": "Apri"
3072
+ },
3073
+ "status": {
3074
+ "pending": "in attesa",
3075
+ "running": "in esecuzione",
3076
+ "succeeded": "riuscito",
3077
+ "failed": "fallito"
3078
+ },
3079
+ "arch": {
3080
+ "title": "Architetture di riferimento",
3081
+ "add": "Aggiungi",
3082
+ "pickRepo": {
3083
+ "label": "Scegli un repository GitHub esistente",
3084
+ "description": "Scegli un repository a cui hai accesso per compilarne owner e nome, oppure inseriscili manualmente qui sotto.",
3085
+ "placeholder": "owner/name"
3086
+ },
3087
+ "name": {
3088
+ "label": "Nome",
3089
+ "description": "Un'etichetta descrittiva per questa base.",
3090
+ "placeholder": "Service Template"
3091
+ },
3092
+ "repoOwner": "Owner del repository",
3093
+ "repoOwnerPlaceholder": "acme",
3094
+ "repoName": "Nome del repository",
3095
+ "repoNamePlaceholder": "service-template",
3096
+ "descriptionPlaceholder": "Riepilogo opzionale di questa base",
3097
+ "defaultInstructions": {
3098
+ "label": "Istruzioni predefinite del bootstrapper",
3099
+ "description": "Anteposte alle istruzioni per esecuzione ogni volta che questa base viene utilizzata.",
3100
+ "placeholder": "es. mantieni la struttura; rinomina i pacchetti per corrispondere al nuovo servizio"
3101
+ }
3102
+ },
3103
+ "toast": {
3104
+ "repoCreated": "Repository creato",
3105
+ "repoCreateFailed": "Impossibile creare il repository",
3106
+ "failed": "Avvio fallito",
3107
+ "failedFallback": "Il bootstrapper ha segnalato un errore.",
3108
+ "started": "Avvio iniziato",
3109
+ "startedDesc": "Un container sta avviando {repo}; segui i suoi progressi sulla lavagna.",
3110
+ "bootstrapFailed": "Impossibile avviare",
3111
+ "saveArchFailed": "Impossibile salvare l'architettura di riferimento",
3112
+ "deleteFailed": "Impossibile eliminare"
3113
+ }
3114
+ },
3115
+ "fragments": {
3116
+ "panel": {
3117
+ "title": "Libreria di frammenti di prompt"
3118
+ },
3119
+ "intro": {
3120
+ "workspace": "Cura le linee guida di best practice che gli agenti seguono su questa lavagna. I frammenti vengono uniti dal catalogo integrato, dal tuo account e da questa lavagna (i livelli successivi hanno la precedenza su quelli precedenti), poi vengono selezionati quelli pertinenti per ogni esecuzione dell'agente.",
3121
+ "account": "Cura le linee guida di best practice condivise da ogni lavagna di questo account. I frammenti dell'account vengono uniti sotto il catalogo integrato e sopra il nulla, e una lavagna puo sovrascriverli o aggiungerne di propri al di sopra. Quelli pertinenti vengono selezionati per ogni esecuzione dell'agente."
3122
+ },
3123
+ "owner": {
3124
+ "workspace": "Questa lavagna",
3125
+ "account": "Questo account"
3126
+ },
3127
+ "tier": {
3128
+ "builtin": "Integrato",
3129
+ "account": "Account",
3130
+ "workspace": "Questa lavagna"
3131
+ },
3132
+ "tab": {
3133
+ "catalog": "Catalogo risolto",
3134
+ "documents": "Documenti",
3135
+ "sources": "Sorgenti dei repository"
3136
+ },
3137
+ "catalog": {
3138
+ "summary": "{count} frammento risolto · {builtin} integrati. | {count} frammenti risolti · {builtin} integrati.",
3139
+ "live": "Live · {source}"
3140
+ },
3141
+ "authored": {
3142
+ "fromRepo": "dal repository",
3143
+ "empty": {
3144
+ "workspace": "Nessun frammento specifico della lavagna ancora. Aggiungine uno qui sotto, oppure sovrascrivi un frammento integrato usando il suo id.",
3145
+ "account": "Nessun frammento specifico dell'account ancora. Aggiungine uno qui sotto, oppure sovrascrivi un frammento integrato usando il suo id."
3146
+ },
3147
+ "addTitle": "Aggiungi un frammento",
3148
+ "titlePlaceholder": "Titolo",
3149
+ "summaryPlaceholder": "Riepilogo su una riga (usato dal selettore)",
3150
+ "bodyPlaceholder": "Corpo delle indicazioni (iniettato nel prompt)",
3151
+ "tagsPlaceholder": "Tag, separati da virgola (es. backend, db)",
3152
+ "add": "Aggiungi frammento"
3153
+ },
3154
+ "documents": {
3155
+ "intro": "Collega una pagina Confluence/Notion o un file GitHub come frammento di best practice. Le sue indicazioni vengono ri-risolte dalla sorgente in fase di esecuzione: modifica il documento e la successiva esecuzione dell'agente seguira la nuova versione (nessuna re-importazione).",
3156
+ "lastResolved": "risolto l'ultima volta {date}",
3157
+ "refreshTitle": "Ri-risolvi ora dalla sorgente",
3158
+ "empty": "Nessun frammento basato su documenti ancora. Collegane uno qui sotto.",
3159
+ "linkTitle": "Collega un documento",
3160
+ "disabledHint": "Crea prima una lavagna con una sorgente di documenti collegata; i frammenti da documenti a livello di account vengono recuperati tramite una delle lavagne di questo account.",
3161
+ "connectFirst": "Collega prima una sorgente di documenti (Confluence, Notion o GitHub) sotto Integrazioni.",
3162
+ "refPlaceholder": "Id o URL della pagina (es. una pagina Confluence/Notion o l'URL di un file GitHub)",
3163
+ "tagsPlaceholder": "Tag, separati da virgola (opzionale)",
3164
+ "link": "Collega come frammento vivente",
3165
+ "githubBrowseHint": "Sfoglia il repository e scegli il file da collegare."
3166
+ },
3167
+ "sources": {
3168
+ "metaSynced": "sincronizzato · ref {ref}",
3169
+ "metaNever": "mai sincronizzato · ref {ref}",
3170
+ "changes": "Modifiche",
3171
+ "empty": "Nessun repository di linee guida collegato. Collegane uno qui sotto per importare i suoi file Markdown come frammenti.",
3172
+ "linkTitle": "Collega un repository di linee guida",
3173
+ "ownerPlaceholder": "owner",
3174
+ "repoPlaceholder": "repo",
3175
+ "dirPlaceholder": "percorso dir (es. guidelines)",
3176
+ "refPlaceholder": "ref (predefinito HEAD)",
3177
+ "link": "Collega e sincronizza",
3178
+ "browseHint": "Sfoglia il repository e scegli la directory delle linee guida Markdown (oppure collega l'intero repository).",
3179
+ "selectedDir": "Directory:",
3180
+ "wholeRepo": "Intero repository (root)."
3181
+ },
3182
+ "toast": {
3183
+ "added": "Frammento aggiunto",
3184
+ "addFailed": "Impossibile aggiungere il frammento",
3185
+ "removed": "Frammento rimosso",
3186
+ "removeFailed": "Impossibile rimuovere il frammento",
3187
+ "documentLinked": "Documento collegato come frammento vivente",
3188
+ "linkDocumentFailed": "Impossibile collegare il documento",
3189
+ "refreshed": "Frammento ri-risolto dalla sorgente",
3190
+ "refreshFailed": "Impossibile aggiornare il frammento",
3191
+ "sourceLinked": "Sorgente collegata e sincronizzata",
3192
+ "linkSourceFailed": "Impossibile collegare la sorgente",
3193
+ "synced": "Sincronizzato: {updated} aggiornati, {removed} rimossi",
3194
+ "syncFailed": "Impossibile sincronizzare la sorgente",
3195
+ "changesAvailable": "Modifiche disponibili",
3196
+ "upToDate": "Aggiornato",
3197
+ "checkSourceFailed": "Impossibile controllare la sorgente",
3198
+ "sourceUnlinked": "Sorgente scollegata",
3199
+ "unlinkSourceFailed": "Impossibile scollegare la sorgente"
3200
+ },
3201
+ "confirmRemove": {
3202
+ "title": "Eliminare questo frammento?",
3203
+ "body": "\"{name}\" verra rimosso. Questa operazione non puo essere annullata."
3204
+ },
3205
+ "unavailable": "La libreria di frammenti di prompt non e abilitata per questo deployment."
3206
+ },
3207
+ "brainstorm": {
3208
+ "title": {
3209
+ "architecture": "Brainstorm sull'architettura",
3210
+ "requirements": "Brainstorm sui requisiti"
3211
+ },
3212
+ "subjectNoun": {
3213
+ "architecture": "approccio",
3214
+ "requirements": "requisiti"
3215
+ },
3216
+ "docNoun": {
3217
+ "architecture": "approccio tecnico",
3218
+ "requirements": "indirizzo dei requisiti"
3219
+ },
3220
+ "iteration": "Iterazione {current} / {max}",
3221
+ "intro": "Un partner AI ha proposto le opzioni di {subject} qui sotto, ciascuna con i suoi compromessi. {choose} quelle che vuoi (e orientale) e {dismiss} le altre, poi incorpora; viene rieseguito finche non convergi su un {doc}.",
3222
+ "introChoose": "Scegli",
3223
+ "introDismiss": "ignora",
3224
+ "empty": "Nessun brainstorm ancora. Viene eseguito automaticamente quando la pipeline di questa attivita raggiunge lo step di brainstorm.",
3225
+ "loading": "Caricamento del brainstorm…",
3226
+ "generating": "Generazione delle opzioni…",
3227
+ "settledBanner": "Il {doc} e definito. Il documento qui sotto e quello che utilizza la fase successiva.",
3228
+ "exceeded": {
3229
+ "heading": "Raggiunto il limite di {max} iterazioni con opzioni ancora aperte.",
3230
+ "detail": "Esegui un altro giro di brainstorm, procedi alla fase successiva con l'ultima indicazione comunque, oppure interrompi e reimposta l'attivita per poterla modificare e inviarla di nuovo."
3231
+ },
3232
+ "working": {
3233
+ "incorporating": "Unione delle tue scelte in un {doc}… Puoi chiudere questa finestra: ti avviseremo solo se occorrono altre indicazioni.",
3234
+ "reReviewing": "Riesecuzione del brainstorm sull'indicazione aggiornata… Puoi chiudere questa finestra: ti avviseremo solo se occorrono altre indicazioni."
3235
+ },
3236
+ "severity": {
3237
+ "low": "bassa",
3238
+ "medium": "media",
3239
+ "high": "alta"
3240
+ },
3241
+ "category": {
3242
+ "gap": "lacuna",
3243
+ "clarification": "chiarimento",
3244
+ "assumption": "assunzione",
3245
+ "risk": "rischio",
3246
+ "question": "domanda"
3247
+ },
3248
+ "itemStatus": {
3249
+ "open": "aperto",
3250
+ "answered": "risposto",
3251
+ "resolved": "risolto",
3252
+ "dismissed": "ignorato",
3253
+ "recommend_requested": "raccomandazione richiesta"
3254
+ },
3255
+ "yourChoice": "La tua scelta",
3256
+ "replyPlaceholder": {
3257
+ "refine": "Affina la tua scelta…",
3258
+ "choose": "Scegli / orienta questa opzione…"
3259
+ },
3260
+ "saveChoice": "Salva la scelta",
3261
+ "dismiss": "Ignora",
3262
+ "reopen": "Riapri",
3263
+ "docDraft": "{doc} (bozza)",
3264
+ "rail": {
3265
+ "options": "Opzioni",
3266
+ "open": "Aperte",
3267
+ "chosen": "Scelte",
3268
+ "model": "Modello"
3269
+ },
3270
+ "proceedNothing": "Procedi (nulla da incorporare)",
3271
+ "incorporateChoices": "Incorpora le scelte",
3272
+ "hint": {
3273
+ "allDismissed": "Ogni opzione e ignorata — procedi alla fase successiva senza un'indicazione.",
3274
+ "incorporate": "Unisce le tue scelte in un unico {doc}, poi riesegue il brainstorm automaticamente.",
3275
+ "chooseAll": "Scegli o ignora ogni opzione per continuare."
3276
+ },
3277
+ "reRunning": "Riesecuzione in corso…",
3278
+ "reRun": "Va bene — riesegui",
3279
+ "redoIncorporation": "Rifai l'incorporazione",
3280
+ "redoPlaceholder": "Cosa dovrebbe fare diversamente l'indicazione?",
3281
+ "redoWithDirection": "Rifai con questa indicazione",
3282
+ "mergedHint": "La riesecuzione esegue l'agente su questa indicazione. Se non sei soddisfatto di come e stata unita, rifalla con un commento.",
3283
+ "incorporatedFooter": "Indicazione definita — la pipeline prosegue con il documento a sinistra.",
3284
+ "toast": {
3285
+ "saveChoiceError": "Impossibile salvare la scelta",
3286
+ "updateOptionError": "Impossibile aggiornare l'opzione",
3287
+ "incorporateError": "Impossibile incorporare le scelte",
3288
+ "draftingTitle": "Stesura del {doc} in background",
3289
+ "draftingDescription": "Sei di nuovo sulla lavagna — ti avviseremo solo se occorrono altre indicazioni.",
3290
+ "reReviewSettled": "Indicazione definita — la pipeline prosegue",
3291
+ "reReviewExceeded": "Limite di iterazioni raggiunto — scegli come procedere",
3292
+ "reReviewNewOptions": "nessuna nuova opzione a cui reagire | una nuova opzione a cui reagire | {count} nuove opzioni a cui reagire",
3293
+ "reReviewError": "Impossibile rieseguire il brainstorm",
3294
+ "proceeding": "Passaggio alla fase successiva",
3295
+ "proceedError": "Impossibile procedere",
3296
+ "taskReset": "Attivita reimpostata — modificala e inviala di nuovo",
3297
+ "extraRoundGranted": "Concesso un altro giro di brainstorm",
3298
+ "resolveError": "Impossibile risolvere il brainstorm"
3299
+ }
3300
+ },
3301
+ "clarity": {
3302
+ "title": "Triage delle segnalazioni di bug",
3303
+ "iteration": "Iterazione {current} / {max}",
3304
+ "intro": "Un revisore AI ha effettuato il triage della segnalazione di bug di questo {level} per verificarne la risolvibilita, la sua descrizione piu eventuali contesti collegati, e ha sollevato le domande qui sotto. {answer} quelle pertinenti e {dismiss} quelle irrilevanti, poi incorporale; il revisore rivede di nuovo finche la segnalazione di bug non e abbastanza chiara da poter essere risolta.",
3305
+ "itemFallback": "elemento",
3306
+ "introAnswer": "Rispondi a",
3307
+ "introDismiss": "ignora",
3308
+ "empty": "Nessuna revisione ancora. Il revisore viene eseguito automaticamente come primo step all'avvio della pipeline di questa attivita.",
3309
+ "loadingReview": "Caricamento della revisione…",
3310
+ "triaging": "Triage della segnalazione di bug in corso…",
3311
+ "converged": "La segnalazione di bug e chiarita. Il report qui sotto e quello che utilizza ogni step successivo dell'agente.",
3312
+ "capHeading": "Raggiunto il limite di {max} iterazioni con rilievi ancora aperti.",
3313
+ "capDetail": "Esegui un altro giro di revisione, procedi alla fase successiva con l'ultima segnalazione di bug chiarita comunque, oppure interrompi e reimposta l'attivita per poter rielaborare la segnalazione di bug e inviarla di nuovo.",
3314
+ "incorporatingStage": "Incorporazione delle tue risposte in una segnalazione di bug chiarita… Puoi chiudere questa finestra, ti avviseremo solo se occorrono altre indicazioni.",
3315
+ "reReviewingStage": "Nuova revisione della segnalazione di bug aggiornata… Puoi chiudere questa finestra, ti avviseremo solo se occorrono altre indicazioni.",
3316
+ "answerLabel": "Rispondi",
3317
+ "answerPlaceholder": "Rispondi a questo rilievo…",
3318
+ "dismissIrrelevant": "Ignora come irrilevante",
3319
+ "reopen": "Riapri",
3320
+ "docHeading": "Segnalazione di bug chiarita",
3321
+ "docHeadingDraft": "Segnalazione di bug chiarita (bozza)",
3322
+ "rail": {
3323
+ "findings": "Rilievi",
3324
+ "open": "Aperti",
3325
+ "answered": "Risposti",
3326
+ "model": "Modello"
3327
+ },
3328
+ "proceedNothing": "Procedi (nulla da incorporare)",
3329
+ "incorporateAnswers": "Incorpora le risposte",
3330
+ "hint": {
3331
+ "proceed": "Ogni rilievo e ignorato, procedi alla fase successiva senza rielaborare.",
3332
+ "incorporate": "Unisce le tue risposte in un'unica segnalazione di bug chiarita, poi la rivede automaticamente.",
3333
+ "answerAll": "Rispondi o ignora ogni rilievo per continuare."
3334
+ },
3335
+ "reReviewing": "Nuova revisione in corso…",
3336
+ "looksGoodReReview": "Va bene — rivedi di nuovo",
3337
+ "redoIncorporation": "Rifai l'incorporazione",
3338
+ "redoPlaceholder": "Cosa dovrebbe fare diversamente l'unione?",
3339
+ "redoWithDirection": "Rifai con questa indicazione",
3340
+ "redoHint": "La nuova revisione esegue il revisore su questo report. Se non sei soddisfatto di come e stato unito, rifallo con un commento.",
3341
+ "incorporatedFooter": "Segnalazione di bug chiarita, la pipeline prosegue con il report a sinistra.",
3342
+ "severity": {
3343
+ "low": "bassa",
3344
+ "medium": "media",
3345
+ "high": "alta"
3346
+ },
3347
+ "category": {
3348
+ "gap": "lacuna",
3349
+ "clarification": "chiarimento",
3350
+ "assumption": "assunzione",
3351
+ "risk": "rischio",
3352
+ "question": "domanda"
3353
+ },
3354
+ "itemStatus": {
3355
+ "open": "aperto",
3356
+ "answered": "risposto",
3357
+ "resolved": "risolto",
3358
+ "dismissed": "ignorato",
3359
+ "recommend_requested": "raccomandazione richiesta"
3360
+ },
3361
+ "toast": {
3362
+ "clarifyingTitle": "Chiarimento della segnalazione di bug in background",
3363
+ "clarifyingDescription": "Sei di nuovo sulla lavagna, ti avviseremo solo se occorrono altre indicazioni.",
3364
+ "reReviewSatisfied": "Il revisore e soddisfatto — la pipeline prosegue",
3365
+ "reReviewExceeded": "Limite di iterazioni raggiunto — scegli come procedere",
3366
+ "reReviewNewFindings": "nessun nuovo rilievo a cui reagire | un nuovo rilievo a cui reagire | {count} nuovi rilievi a cui reagire",
3367
+ "proceeding": "Passaggio alla fase successiva",
3368
+ "taskReset": "Attivita reimpostata — modifica la segnalazione di bug e inviala di nuovo",
3369
+ "extraRoundGranted": "Concesso un altro giro di revisione"
3370
+ },
3371
+ "error": {
3372
+ "saveAnswer": "Impossibile salvare la risposta",
3373
+ "updateFinding": "Impossibile aggiornare il rilievo",
3374
+ "incorporate": "Impossibile incorporare le risposte",
3375
+ "reReview": "Impossibile rivedere di nuovo la segnalazione di bug",
3376
+ "proceed": "Impossibile procedere",
3377
+ "resolve": "Impossibile risolvere la revisione"
3378
+ }
3379
+ },
3380
+ "initiative": {
3381
+ "create": {
3382
+ "title": "Crea iniziativa",
3383
+ "inFrame": "Nuova iniziativa in {frame}",
3384
+ "titleField": "Titolo",
3385
+ "titlePlaceholder": "es. Migrare l'API al nuovo modello di autenticazione",
3386
+ "goalField": "Obiettivo",
3387
+ "goalPlaceholder": "Descrivi l'obiettivo, i vincoli e l'ambito approssimativo. Il pianificatore lo affina in un piano multi-fase.",
3388
+ "hint": "Non viene eseguito ancora nulla: dopo la creazione, esegui la pipeline di Pianificazione dell'iniziativa sul blocco. Analizza il codebase e redige il piano multi-fase per la tua approvazione.",
3389
+ "submit": "Crea iniziativa",
3390
+ "failedTitle": "Impossibile creare l'iniziativa"
3391
+ },
3392
+ "status": {
3393
+ "planning": "Pianificazione",
3394
+ "awaiting_approval": "In attesa di approvazione",
3395
+ "executing": "In esecuzione",
3396
+ "paused": "In pausa",
3397
+ "done": "Completata",
3398
+ "cancelled": "Annullata"
3399
+ },
3400
+ "itemStatus": {
3401
+ "pending": "In attesa",
3402
+ "in_progress": "In corso",
3403
+ "pr_open": "PR aperta",
3404
+ "done": "Fatto",
3405
+ "blocked": "Bloccato",
3406
+ "skipped": "Saltato"
3407
+ },
3408
+ "card": {
3409
+ "kind": "Iniziativa",
3410
+ "progress": "{done}/{total} elementi completati",
3411
+ "openTracker": "Apri tracker"
3412
+ },
3413
+ "tracker": {
3414
+ "title": "Tracker dell'iniziativa",
3415
+ "subtitle": "Fasi, work item, decisioni e avanzamento di questa iniziativa",
3416
+ "empty": "Nessuna iniziativa trovata per questo blocco.",
3417
+ "goal": "Obiettivo",
3418
+ "constraints": "Vincoli",
3419
+ "nonGoals": "Non-obiettivi",
3420
+ "analysis": "Analisi del codebase",
3421
+ "noPlan": "Nessun piano ancora. Esegui la pipeline di Pianificazione dell'iniziativa per redigere il piano multi-fase.",
3422
+ "phase": "Fase: {title}",
3423
+ "colItem": "Elemento",
3424
+ "colStatus": "Stato",
3425
+ "colPr": "PR",
3426
+ "dependsOn": "Dipende da: {items}",
3427
+ "prLink": "PR",
3428
+ "policy": "Politica di esecuzione",
3429
+ "maxConcurrent": "Massimo di attivita concorrenti: {count}",
3430
+ "defaultPipeline": "Pipeline predefinita:",
3431
+ "axisComplexity": "complessita >= {value}",
3432
+ "axisRisk": "rischio >= {value}",
3433
+ "axisImpact": "impatto >= {value}",
3434
+ "axisNever": "non corrisponde mai (nessuna soglia)",
3435
+ "decisions": "Decisioni",
3436
+ "deviations": "Deviazioni",
3437
+ "followUps": "Follow-up",
3438
+ "caveats": "Avvertenze note"
3439
+ },
3440
+ "inspector": {
3441
+ "runPlanning": "Esegui pianificazione",
3442
+ "answerPlanning": "Rispondi alle domande di pianificazione",
3443
+ "pause": "Pausa",
3444
+ "resume": "Riprendi",
3445
+ "cancel": "Annulla iniziativa",
3446
+ "hint": "La pipeline di pianificazione esplora il codebase, redige il piano multi-fase per l'approvazione, poi effettua il commit del documento del tracker nel repository."
3447
+ },
3448
+ "planning": {
3449
+ "title": "Pianifica l'iniziativa",
3450
+ "subtitle": "Rispondi alle domande del pianificatore affinche possa definire l'ambito dell'iniziativa",
3451
+ "intro": "Il pianificatore sta definendo l'ambito di questa iniziativa. Rispondi alle sue domande per dare forma all'obiettivo e ai vincoli, poi continua — oppure procedi a pianificare con quello che ha.",
3452
+ "empty": "Nessuna iniziativa trovata per questo blocco.",
3453
+ "converged": "Nessuna domanda in sospeso. Il pianificatore ha cio che gli serve e sta redigendo il piano.",
3454
+ "answerPlaceholder": "La tua risposta",
3455
+ "hint": "Continua consente al pianificatore di porre domande di follow-up; Procedi pianifica con le risposte fornite finora.",
3456
+ "proceed": "Procedi a pianificare",
3457
+ "continue": "Continua"
3458
+ },
3459
+ "followUpStatus": {
3460
+ "open": "Aperto",
3461
+ "promoted": "Promosso",
3462
+ "dismissed": "Ignorato"
3463
+ },
3464
+ "curation": {
3465
+ "promote": "Promuovi a elemento",
3466
+ "promoteConfirm": "Crea elemento",
3467
+ "dismiss": "Ignora",
3468
+ "retry": "Riprova",
3469
+ "skip": "Salta",
3470
+ "edit": "Modifica",
3471
+ "save": "Salva",
3472
+ "cancel": "Annulla",
3473
+ "phaseField": "Fase",
3474
+ "itemTitlePlaceholder": "Titolo dell'elemento (predefinito quello del follow-up)",
3475
+ "maxConcurrentField": "Massimo di attivita concorrenti",
3476
+ "defaultPipelineField": "Pipeline predefinita",
3477
+ "failed": "Impossibile aggiornare l'iniziativa"
3478
+ }
3479
+ },
3480
+ "app": {
3481
+ "loading": "Caricamento…",
3482
+ "loadingBoard": "Caricamento della board…",
3483
+ "backendUnreachable": "Impossibile raggiungere il backend",
3484
+ "reconnecting": "Riconnessione…",
3485
+ "offline": "Aggiornamenti in tempo reale non ricevuti"
3486
+ },
3487
+ "language": {
3488
+ "switcher": "Lingua",
3489
+ "warning": {
3490
+ "title": "Traduzione non ufficiale",
3491
+ "body": "Questa traduzione è fornita dalla community e potrebbe essere imprecisa. Hai notato un errore? Segnalalo o proponi una correzione su {repoLink}.",
3492
+ "repoLinkLabel": "il repository cat-factory",
3493
+ "dismiss": "Ignora"
3494
+ }
3495
+ },
3496
+ "common": {
3497
+ "save": "Salva",
3498
+ "cancel": "Annulla",
3499
+ "retry": "Riprova",
3500
+ "copy": "Copia",
3501
+ "copied": "Copiato negli appunti",
3502
+ "reveal": "Mostra",
3503
+ "hide": "Nascondi",
3504
+ "delete": "Elimina",
3505
+ "remove": "Rimuovi",
3506
+ "confirm": {
3507
+ "defaultTitle": "Sei sicuro?",
3508
+ "confirm": "Conferma",
3509
+ "irreversible": "Questa operazione non può essere annullata.",
3510
+ "reconnectHint": "Dovrai riconnetterlo prima di poterlo utilizzare di nuovo.",
3511
+ "titles": {
3512
+ "disconnect": "Disconnettere {name}?",
3513
+ "remove": "Rimuovere {name}?",
3514
+ "revoke": "Revocare {name}?",
3515
+ "clear": "Cancellare {name}?",
3516
+ "destroy": "Distruggere {name}?"
3517
+ },
3518
+ "reconfigureHint": "Potrai riconfigurarlo in seguito."
3519
+ },
3520
+ "block": "Blocco",
3521
+ "actionFailed": "Azione non riuscita",
3522
+ "close": "Chiudi",
3523
+ "disconnect": "Disconnetti",
3524
+ "copyFailed": "Impossibile copiare negli appunti",
3525
+ "revoke": "Revoca",
3526
+ "clear": "Cancella",
3527
+ "destroy": "Distruggi",
3528
+ "toast": {
3529
+ "disconnected": "{name} disconnesso",
3530
+ "removed": "{name} rimosso",
3531
+ "revoked": "{name} revocato",
3532
+ "cleared": "{name} cancellato",
3533
+ "destroyed": "{name} distrutto"
3534
+ },
3535
+ "undo": "Annulla",
3536
+ "back": "Indietro",
3537
+ "next": "Avanti",
3538
+ "done": "Fatto"
3539
+ },
3540
+ "nav": {
3541
+ "menu": "Menu di navigazione",
3542
+ "openMenu": "Apri il menu",
3543
+ "closeMenu": "Chiudi il menu",
3544
+ "commandBar": "Cerca o esegui un comando…",
3545
+ "create": "Crea",
3546
+ "buildPipeline": "Crea una pipeline",
3547
+ "repositories": "Repository",
3548
+ "addFromRepo": "Aggiungi da un repository esistente",
3549
+ "bootstrapRepo": "Inizializza repository",
3550
+ "integrations": "Integrazioni",
3551
+ "infrastructure": "Infrastruttura",
3552
+ "sandbox": "Sandbox",
3553
+ "kaizen": "Kaizen",
3554
+ "workspaceContext": "Contesto dello workspace",
3555
+ "contextFragments": "Frammenti di contesto",
3556
+ "configuration": "Configurazione",
3557
+ "workspaceSettings": "Impostazioni dello workspace",
3558
+ "modelConfiguration": "Configurazione del modello",
3559
+ "accountSettings": "Impostazioni dell'account",
3560
+ "environmentSetup": "Configurazione dell'ambiente"
3561
+ },
3562
+ "errors": {
3563
+ "action": {
3564
+ "retryFailed": "Nuovo tentativo non riuscito",
3565
+ "startFailed": "Avvio non riuscito",
3566
+ "mergeFailed": "Merge non riuscito",
3567
+ "restartFailed": "Riavvio non riuscito"
3568
+ },
3569
+ "conflict": {
3570
+ "title": {
3571
+ "dependencies_unmet": "Bloccato dalle dipendenze",
3572
+ "task_limit_reached": "Limite di concorrenza raggiunto",
3573
+ "tester_infra_unsupported": "Infrastruttura di test non configurata",
3574
+ "agent_backend_unconfigured": "Backend dell'agente non configurato",
3575
+ "run_not_retryable": "Impossibile ripetere l'esecuzione",
3576
+ "no_pr_to_merge": "Nessuna PR da unire",
3577
+ "github_not_connected": "GitHub non connesso",
3578
+ "bootstrap_not_retryable": "Impossibile ripetere l'inizializzazione",
3579
+ "bootstrap_reference_missing": "L'architettura di riferimento non esiste più",
3580
+ "provision_type_unhandled": "Nessun gestore per questo tipo di provisioning",
3581
+ "preset_unsatisfiable": "Il preset del modello non può eseguire questa pipeline",
3582
+ "visual_pipeline_no_frontend": "Nessun frontend da testare",
3583
+ "deployer_required_before_tester": "Aggiungi un Deployer prima del Tester"
3584
+ },
3585
+ "fallbackMessage": "Questa azione è in conflitto con lo stato attuale.",
3586
+ "providersUnconfigured": {
3587
+ "title": "Nessun provider AI per questo modello",
3588
+ "body": "Nessun provider è configurato per {models}. Aggiungi una chiave provider, connetti un abbonamento o abilita Cloudflare AI per eseguirlo.",
3589
+ "action": "Configura AI"
3590
+ },
3591
+ "binaryStorageUnconfigured": {
3592
+ "title": "Nessuno storage per questa pipeline",
3593
+ "body": "Questa pipeline include un agente che richiede storage binario (il Tester dell'interfaccia carica i suoi screenshot), ma questo account non ha alcuno storage di contenuti configurato. Configura lo storage di contenuti per eseguirla.",
3594
+ "action": "Configura storage"
3595
+ }
3596
+ }
3597
+ },
3598
+ "slack": {
3599
+ "panel": {
3600
+ "title": "Notifiche Slack",
3601
+ "intro": "Pubblica le notifiche della board (revisioni di merge, completamenti di pipeline, errori CI) su Slack. La connessione è condivisa a livello di account; l'instradamento è per board."
3602
+ },
3603
+ "connect": {
3604
+ "addToSlack": "Aggiungi a Slack",
3605
+ "orPasteToken": "...oppure incolla un token del bot (xoxb-...)",
3606
+ "connect": "Connetti"
3607
+ },
3608
+ "connected": {
3609
+ "label": "Connesso a {team}",
3610
+ "disconnect": "Disconnetti"
3611
+ },
3612
+ "routing": {
3613
+ "heading": "Instradamento",
3614
+ "channelPlaceholder": "#canale o id del canale",
3615
+ "mentionMembers": "Menziona con {'@'} i membri dell'account mappati",
3616
+ "save": "Salva instradamento"
3617
+ },
3618
+ "members": {
3619
+ "heading": "Mappa dei membri (id utente verso id membro Slack)",
3620
+ "hint": "Le persone di {product} vengono menzionate nei rilievi della revisione dei requisiti; tutti gli altri solo quando hanno creato l'attività.",
3621
+ "productLabel": "Prodotto",
3622
+ "userIdPlaceholder": "Id utente (usr_...)",
3623
+ "slackIdPlaceholder": "Id membro Slack (U...)",
3624
+ "add": "Aggiungi membro",
3625
+ "save": "Salva mappa"
3626
+ },
3627
+ "routable": {
3628
+ "merge_review": "Revisione del merge",
3629
+ "pipeline_complete": "Pipeline completata",
3630
+ "ci_failed": "CI non riuscita",
3631
+ "test_failed": "Test non riusciti",
3632
+ "requirement_review": "Revisione dei requisiti",
3633
+ "clarity_review": "Revisione della chiarezza",
3634
+ "release_regression": "Regressione della release",
3635
+ "human_test_ready": "Pronto per il test umano",
3636
+ "visual_confirmation_ready": "Pronto per la conferma visiva",
3637
+ "initiative": "Aggiornamenti dell'iniziativa"
3638
+ },
3639
+ "role": {
3640
+ "engineering": "Ingegneria",
3641
+ "product": "Prodotto"
3642
+ },
3643
+ "toast": {
3644
+ "connected": "Slack connesso",
3645
+ "routingSaved": "Instradamento salvato",
3646
+ "mapSaved": "Mappa dei membri salvata"
3647
+ },
3648
+ "error": {
3649
+ "loadSettings": "Impossibile caricare le impostazioni di Slack",
3650
+ "startOAuth": "Impossibile avviare l'OAuth di Slack",
3651
+ "connect": "Impossibile connettere Slack",
3652
+ "disconnect": "Impossibile disconnettere Slack",
3653
+ "saveRouting": "Impossibile salvare l'instradamento",
3654
+ "saveMap": "Impossibile salvare la mappa dei membri"
3655
+ },
3656
+ "confirmDisconnect": {
3657
+ "title": "Disconnettere Slack?",
3658
+ "body": "Le notifiche Slack si interromperanno finché non ti riconnetti."
3659
+ }
3660
+ },
3661
+ "docInterview": {
3662
+ "title": "Perfeziona il documento",
3663
+ "subtitle": "Rispondi alle domande dell'intervistatore per dargli modo di plasmare il documento",
3664
+ "intro": "L'intervistatore sta perfezionando questo documento prima che venga redatto. Rispondi alle sue domande per definire ambito, destinatari e struttura, poi continua — oppure procedi alla bozza con quanto ha a disposizione.",
3665
+ "empty": "Nessuna intervista trovata per questo blocco.",
3666
+ "brief": "Brief di redazione",
3667
+ "converged": "Nessuna domanda in sospeso. L'intervistatore ha ciò che gli serve e il documento è in fase di redazione.",
3668
+ "answerPlaceholder": "La tua risposta",
3669
+ "hint": "Continua permette all'intervistatore di porre altre domande; Procedi redige la bozza con le risposte fornite finora.",
3670
+ "proceed": "Procedi alla bozza",
3671
+ "continue": "Continua",
3672
+ "status": {
3673
+ "awaiting": "In attesa di risposte",
3674
+ "done": "Fatto"
3675
+ }
3676
+ },
3677
+ "gates": {
3678
+ "subtitle": {
3679
+ "humanReview": "Attende una revisione umana del codice sulla PR, ripetendo il fixer sui commenti",
3680
+ "ci": "Blocca la PR in attesa di CI verde, ripetendo il fixer CI in caso di errore",
3681
+ "conflicts": "Blocca la PR in attesa di un merge pulito, ripetendo il resolver sui conflitti",
3682
+ "docQuality": "Verifica la struttura del documento redatto, ripetendo il fixer del documento sui problemi"
3683
+ },
3684
+ "status": {
3685
+ "passed": "Superato",
3686
+ "gaveUp": "Rinunciato",
3687
+ "fixing": "Correzione in corso",
3688
+ "failing": "In errore",
3689
+ "pending": "In attesa",
3690
+ "checking": "Verifica in corso"
3691
+ },
3692
+ "conflict": {
3693
+ "mergeable": "Unibile",
3694
+ "computing": "Calcolo della possibilità di merge…",
3695
+ "conflicts": "Conflitti con la base",
3696
+ "unknown": "Sconosciuto"
3697
+ },
3698
+ "noActivity": "Ancora nessuna attività del gate.",
3699
+ "noActivityHint": "La verifica preliminare viene eseguita quando la PR è aperta. Durante il polling, il passaggio mostra lo stato in tempo reale sulla board.",
3700
+ "passedCi": "La CI è verde.",
3701
+ "passedConflicts": "La PR si unisce senza problemi con la sua base.",
3702
+ "humanReview": {
3703
+ "approvals": "{approved} / {required} approvazione | {approved} / {required} approvazioni",
3704
+ "suffixFixing": "· il fixer sta gestendo i commenti…",
3705
+ "suffixFailing": "· commenti di revisione da gestire",
3706
+ "suffixAwaiting": "· in attesa di revisione",
3707
+ "reviewPr": "Rivedi la pull request su GitHub",
3708
+ "requestFixHeading": "Richiedi una correzione",
3709
+ "requestFixDescription": "Descrivi una modifica che il fixer deve apportare ora sul branch della PR (oltre a eventuali commenti di revisione, che gestisce automaticamente).",
3710
+ "requestFixPlaceholder": "es. rinomina l'helper e aggiungi un test unitario per il caso di input vuoto",
3711
+ "requestFix": "Richiedi correzione"
3712
+ },
3713
+ "ci": {
3714
+ "failingChecks": "Controlli non superati",
3715
+ "openOnGithub": "Apri {name} su GitHub",
3716
+ "conclusionFallback": "errore",
3717
+ "failureFallback": "La CI non ha segnalato errori su questo commit."
3718
+ },
3719
+ "conflicts": {
3720
+ "mergeability": "Possibilità di merge",
3721
+ "viewPr": "Visualizza la pull request su GitHub"
3722
+ },
3723
+ "docQuality": {
3724
+ "findings": "Problemi del documento",
3725
+ "findingsFallback": "Il documento ha superato i controlli strutturali.",
3726
+ "viewPr": "Visualizza la pull request su GitHub"
3727
+ },
3728
+ "attemptsHeading": "Tentativi di {helper}",
3729
+ "attempt": "Tentativo {number}",
3730
+ "attemptInstructions": "Assegnato a {helper}",
3731
+ "attemptReport": "Report di {helper}",
3732
+ "outcome": {
3733
+ "completed": "completato",
3734
+ "failed": "non riuscito"
3735
+ },
3736
+ "sidebar": {
3737
+ "state": "Stato",
3738
+ "fixRounds": "{count} round di correzione | {count} round di correzione",
3739
+ "attempts": "{attempts}/{max} tentativo | {attempts}/{max} tentativi",
3740
+ "suffixRunning": "· in esecuzione…",
3741
+ "suffixNotNeeded": "· non ancora necessario",
3742
+ "gatedCommit": "Commit sottoposto a gate",
3743
+ "footer": "Un gate esegue una verifica preliminare programmatica e avvia il {helper} solo in caso di esito negativo; un controllo verde avanza senza avviare nulla."
3744
+ }
3745
+ },
3746
+ "consensus": {
3747
+ "titlePrefix": "Consenso",
3748
+ "participantCount": "nessun partecipante | un partecipante | {count} partecipanti",
3749
+ "loading": "Caricamento della sessione di consenso…",
3750
+ "empty": "Nessuna sessione di consenso è ancora stata eseguita per questo passaggio.",
3751
+ "failed": "Consenso non riuscito: {error}",
3752
+ "unknownError": "errore sconosciuto",
3753
+ "synthesizedResult": "Risultato sintetizzato",
3754
+ "confidence": "affidabilità {pct}",
3755
+ "panel": "Panel",
3756
+ "topScore": "migliore {label} {pct}",
3757
+ "expert": "Esperto {letter}",
3758
+ "participant": "Partecipante",
3759
+ "strategy": {
3760
+ "specialistPanel": "Panel di specialisti",
3761
+ "debate": "Dibattito",
3762
+ "rankedVoting": "Voto per preferenze"
3763
+ },
3764
+ "round": {
3765
+ "heading": "Round {n}",
3766
+ "contributions": "Contributi",
3767
+ "draft": "Bozze indipendenti",
3768
+ "critique": "Critica e revisione",
3769
+ "score": "Valutazione"
3770
+ },
3771
+ "status": {
3772
+ "running": "In esecuzione",
3773
+ "synthesizing": "Sintesi in corso",
3774
+ "done": "Fatto",
3775
+ "failed": "Non riuscito"
3776
+ }
3777
+ },
3778
+ "spec": {
3779
+ "title": "Requisiti",
3780
+ "loading": "Caricamento della specifica…",
3781
+ "error": "Impossibile caricare la specifica. Prova a riaprire questa finestra.",
3782
+ "overview": "Panoramica",
3783
+ "noFeatureGroups": "Nessun gruppo di funzionalità",
3784
+ "noSummary": "Nessun riepilogo del servizio.",
3785
+ "noGherkinForGroup": "Nessuno scenario Gherkin per questo gruppo.",
3786
+ "noRequirements": "Nessun requisito in questo gruppo.",
3787
+ "domainRules": "Regole di dominio",
3788
+ "ruleRationale": " — {rationale}",
3789
+ "moduleHint": "nessun modulo. Seleziona un gruppo di funzionalità a sinistra per visualizzarne i requisiti. | 1 modulo. Seleziona un gruppo di funzionalità a sinistra per visualizzarne i requisiti. | {count} moduli. Seleziona un gruppo di funzionalità a sinistra per visualizzarne i requisiti.",
3790
+ "moduleHintGherkin": "nessun modulo. Seleziona un gruppo di funzionalità a sinistra per visualizzarne i requisiti o passa agli scenari Gherkin. | 1 modulo. Seleziona un gruppo di funzionalità a sinistra per visualizzarne i requisiti o passa agli scenari Gherkin. | {count} moduli. Seleziona un gruppo di funzionalità a sinistra per visualizzarne i requisiti o passa agli scenari Gherkin.",
3791
+ "mode": {
3792
+ "structured": "Strutturato",
3793
+ "gherkin": "Gherkin",
3794
+ "gherkinTooltip": "Scenari Gherkin",
3795
+ "gherkinNone": "Ancora nessuno scenario su main"
3796
+ },
3797
+ "empty": {
3798
+ "title": "Ancora nessuna specifica",
3799
+ "description": "Questo servizio non ha una specifica sul suo branch predefinito. Una specifica viene generata man mano che le attività eseguono le loro pipeline; una volta arrivata su main, apparirà qui, con i suoi scenari Gherkin."
3800
+ },
3801
+ "priority": {
3802
+ "must": "Obbligatorio",
3803
+ "should": "Consigliato",
3804
+ "could": "Opzionale"
3805
+ },
3806
+ "kind": {
3807
+ "functional": "Funzionale",
3808
+ "nonfunctional": "Non funzionale",
3809
+ "constraint": "Vincolo"
3810
+ },
3811
+ "acceptance": {
3812
+ "given": "Given",
3813
+ "when": "When",
3814
+ "then": "Then"
3815
+ }
3816
+ },
3817
+ "followUp": {
3818
+ "title": "Follow-up",
3819
+ "titleWithBlock": "Follow-up — {title}",
3820
+ "subtitle": "Follow-up e domande prospettiche emerse dal Coder. La pipeline prosegue una volta deciso ogni elemento.",
3821
+ "badge": {
3822
+ "toDecide": "{count} da decidere | {count} da decidere | {count} da decidere",
3823
+ "allDecided": "Tutto deciso"
3824
+ },
3825
+ "empty": {
3826
+ "title": "Ancora nessun follow-up.",
3827
+ "hint": "Mentre lavora, il Coder invia qui questioni aperte, attività secondarie e domande. Appaiono in tempo reale, così puoi agire prima ancora che il Coder finisca."
3828
+ },
3829
+ "suggested": "Suggerito:",
3830
+ "viewIssue": "Visualizza issue",
3831
+ "yourAnswer": "La tua risposta:",
3832
+ "answerPlaceholder": "Rispondi a questa domanda — verrà integrata nel prossimo passaggio del Coder…",
3833
+ "status": {
3834
+ "pending": "Richiede una decisione",
3835
+ "filed": "Registrato come issue",
3836
+ "queued": "Inviato al Coder",
3837
+ "answered": "Risposto",
3838
+ "dismissed": "Ignorato"
3839
+ },
3840
+ "actions": {
3841
+ "answerAndSend": "Rispondi e invia",
3842
+ "dismiss": "Ignora",
3843
+ "fileAsIssue": "Registra come issue",
3844
+ "sendToCoder": "Invia al Coder"
3845
+ },
3846
+ "footer": {
3847
+ "summary": "{count} elemento · {undecided} non deciso | {count} elementi · {undecided} non decisi",
3848
+ "loops": "Cicli del Coder utilizzati: {loops} / {max}"
3849
+ }
3850
+ },
3851
+ "humanTest": {
3852
+ "title": "Test umano",
3853
+ "titleWithBlock": "Test umano — {title}",
3854
+ "subtitle": "Convalida la modifica in un ambiente attivo",
3855
+ "notStarted": "Questo passaggio non è ancora iniziato.",
3856
+ "confirm": "Tutto a posto — continua",
3857
+ "phase": {
3858
+ "provisioning": "Provisioning dell'ambiente…",
3859
+ "awaitingHuman": "In attesa della tua convalida",
3860
+ "fixing": "Il fixer sta gestendo i tuoi rilievi…",
3861
+ "resolvingConflicts": "Risoluzione dei conflitti con main…",
3862
+ "passed": "Superato"
3863
+ },
3864
+ "envStatus": {
3865
+ "provisioning": "Provisioning…",
3866
+ "ready": "Pronto",
3867
+ "failed": "Non riuscito",
3868
+ "expired": "Scaduto",
3869
+ "tearingDown": "Smantellamento…",
3870
+ "tornDown": "Distrutto"
3871
+ },
3872
+ "environment": {
3873
+ "heading": "Ambiente effimero",
3874
+ "noUrl": "Ancora nessun URL.",
3875
+ "expires": "Scade {date}",
3876
+ "none": "Nessun ambiente attivo."
3877
+ },
3878
+ "actions": {
3879
+ "recreate": "Ricrea",
3880
+ "destroy": "Distruggi",
3881
+ "pullMain": "Pull di main + ridistribuzione"
3882
+ },
3883
+ "fix": {
3884
+ "heading": "Hai trovato un problema?",
3885
+ "cancel": "Annulla",
3886
+ "requestFix": "Richiedi una correzione",
3887
+ "placeholder": "Descrivi cosa è andato storto — l'agente Fixer riceve questo come contesto, poi l'ambiente viene ricostruito per un nuovo test.",
3888
+ "send": "Invia al Fixer"
3889
+ },
3890
+ "history": {
3891
+ "heading": "Cronologia (nessun round) | Cronologia (un round) | Cronologia ({count} round)",
3892
+ "fixRequested": "Correzione richiesta",
3893
+ "pulledMain": "Pull di main eseguito"
3894
+ },
3895
+ "roundOutcome": {
3896
+ "completed": "completato",
3897
+ "failed": "non riuscito",
3898
+ "inProgress": "in corso"
3899
+ },
3900
+ "envNoun": "l'ambiente di test",
3901
+ "destroyFailed": "Impossibile distruggere l'ambiente"
3902
+ },
3903
+ "testing": {
3904
+ "title": "Report dei test",
3905
+ "subtitle": "Test esplorativi e di regressione della modifica",
3906
+ "badge": {
3907
+ "greenlit": "Approvato",
3908
+ "needsFixes": "Richiede correzioni"
3909
+ },
3910
+ "fixerAttempts": "Tentativi del fixer",
3911
+ "fixCount": "{attempts}/{max} correzione",
3912
+ "fixingSuffix": "· correzione in corso…",
3913
+ "fixerTimeline": {
3914
+ "attempt": "Tentativo {n}",
3915
+ "completed": "Completato",
3916
+ "failed": "Non riuscito",
3917
+ "addressed": "In gestione"
3918
+ },
3919
+ "quality": {
3920
+ "heading": "Revisione della copertura",
3921
+ "reruns": "Nuove esecuzioni del Tester guidate dalla qualità",
3922
+ "rerunCount": "{attempts}/{max} nuove esecuzioni",
3923
+ "exceeded": "Budget esaurito",
3924
+ "adequate": "Copertura adeguata",
3925
+ "inadequate": "Rilevate lacune di copertura",
3926
+ "gaps": "Lacune da colmare"
3927
+ },
3928
+ "empty": {
3929
+ "title": "Ancora nessun report dei test.",
3930
+ "hint": "Il report appare una volta che il Tester completa un passaggio. Durante l'esecuzione, il passaggio mostra l'avanzamento in tempo reale sulla board."
3931
+ },
3932
+ "scenariosOutcomes": "Scenari ed esiti",
3933
+ "otherChecks": "Altri controlli",
3934
+ "checks": "Controlli",
3935
+ "screenshotCount": "{count} screenshot | {count} screenshot",
3936
+ "checkCount": "{count} controllo | {count} controlli",
3937
+ "concernCount": "{count} rilievo | {count} rilievi",
3938
+ "noDiscreteCheck": "Nessun controllo distinto registrato per questo scenario.",
3939
+ "severity": {
3940
+ "critical": "critico",
3941
+ "high": "alto",
3942
+ "medium": "medio",
3943
+ "low": "basso"
3944
+ },
3945
+ "status": {
3946
+ "passed": "Superato",
3947
+ "failed": "Non riuscito",
3948
+ "skipped": "Saltato"
3949
+ },
3950
+ "shot": {
3951
+ "failed": "Non riuscito",
3952
+ "failedToLoad": "Caricamento non riuscito",
3953
+ "loading": "Caricamento…"
3954
+ },
3955
+ "screenshotAlt": "{view} (screenshot)",
3956
+ "screenshots": "Screenshot",
3957
+ "verdict": {
3958
+ "heading": "Verdetto",
3959
+ "safe": "Sicuro da rilasciare",
3960
+ "withheld": "Sospeso"
3961
+ },
3962
+ "outcomes": {
3963
+ "heading": "Esiti",
3964
+ "passed": "Superato",
3965
+ "failed": "Non riuscito",
3966
+ "skipped": "Saltato",
3967
+ "concerns": "Rilievi",
3968
+ "blocking": "({count} bloccante) | ({count} bloccanti)"
3969
+ },
3970
+ "environment": "Ambiente",
3971
+ "infrastructure": "Infrastruttura",
3972
+ "standup": {
3973
+ "up": "Dipendenze avviate",
3974
+ "failed": "Avvio delle dipendenze non riuscito",
3975
+ "took": "Ha richiesto {seconds}s",
3976
+ "showLogs": "Mostra i log di avvio",
3977
+ "hideLogs": "Nascondi i log di avvio"
3978
+ },
3979
+ "readyBanner": "L'ambiente di test è attivo. Il tester sta iniziando il suo lavoro.",
3980
+ "footer": "Gli scenari sono le aree che il Tester ha scelto di verificare (i suoi scenari di accettazione della specifica). Esiti e rilievi sono raggruppati sotto di essi per nome."
3981
+ },
3982
+ "visualConfirm": {
3983
+ "ariaLabel": "Conferma visiva",
3984
+ "title": "Conferma visiva",
3985
+ "titleWithBlock": "Conferma visiva — {title}",
3986
+ "subtitle": "Confronta l'interfaccia con i design di riferimento",
3987
+ "notStarted": "Questo passaggio non è ancora iniziato.",
3988
+ "noScreenshots": "Nessuno screenshot è stato acquisito. Rivedi la modifica manualmente oppure carica un riferimento qui sotto.",
3989
+ "noteIssue": "Annota un problema con {view}",
3990
+ "noted": "annotato",
3991
+ "notePlaceholder": "Cosa non va in {view}?",
3992
+ "reviewedManually": "L'ho rivisto manualmente",
3993
+ "recapture": "Riacquisisci",
3994
+ "approve": "Approva — continua",
3995
+ "phase": {
3996
+ "awaiting_human": "In attesa della tua revisione",
3997
+ "fixing": "Il fixer sta gestendo i tuoi rilievi…",
3998
+ "approved": "Approvato"
3999
+ },
4000
+ "outcome": {
4001
+ "completed": "completato",
4002
+ "failed": "non riuscito",
4003
+ "inProgress": "in corso"
4004
+ },
4005
+ "lightbox": {
4006
+ "actualLabel": "{view} — effettivo",
4007
+ "actualAlt": "{view} (effettivo)",
4008
+ "referenceLabel": "{view} — riferimento",
4009
+ "referenceAlt": "{view} (riferimento)"
4010
+ },
4011
+ "upload": {
4012
+ "heading": "Carica un design di riferimento",
4013
+ "viewPlaceholder": "Nome della vista (es. login)",
4014
+ "tipReady": "Suggerimento: trascina un'immagine direttamente su una coppia sopra per impostarne il riferimento.",
4015
+ "tipNeedView": "Inserisci prima un nome per la vista, poi scegli un file. Oppure trascina un'immagine direttamente su una coppia sopra."
4016
+ },
4017
+ "requestFix": {
4018
+ "heading": "Richiedi una correzione",
4019
+ "placeholder": "Qualsiasi altra informazione utile al Fixer (oltre alle eventuali note per vista qui sopra).",
4020
+ "foldedHint": "Le note per vista vengono integrate automaticamente.",
4021
+ "send": "Invia al Fixer"
4022
+ },
4023
+ "history": {
4024
+ "heading": "Cronologia (nessun round) | Cronologia ({count} round) | Cronologia ({count} round)",
4025
+ "fixRequested": "Correzione richiesta"
4026
+ }
4027
+ },
4028
+ "focus": {
4029
+ "board": "Board",
4030
+ "typeSubtitle": "{type} · vista focus",
4031
+ "runPipeline": "Esegui pipeline",
4032
+ "rerunPipeline": "Riesegui pipeline",
4033
+ "noPipelineRunning": "Nessuna pipeline in esecuzione",
4034
+ "emptyPipelineHint": "Esegui una pipeline per visualizzare gli agenti al lavoro su questo blocco.",
4035
+ "description": "Descrizione",
4036
+ "overallProgress": "Avanzamento complessivo",
4037
+ "dependencies": "Dipendenze",
4038
+ "noDependencies": "Nessuna"
4039
+ },
4040
+ "environments": {
4041
+ "title": "Ambiente effimero",
4042
+ "status": {
4043
+ "provisioning": "Avvio in corso…",
4044
+ "ready": "In esecuzione",
4045
+ "failed": "Errore",
4046
+ "expired": "Scaduto",
4047
+ "tearing_down": "Arresto in corso…",
4048
+ "torn_down": "Arrestato"
4049
+ },
4050
+ "expires": "Scade {date}",
4051
+ "empty": "Nessun ambiente effimero per questa esecuzione.",
4052
+ "provisionTypeLabel": "Tipo di provisioning:",
4053
+ "engineLabel": "Motore:",
4054
+ "provisionType": {
4055
+ "kubernetes": "Kubernetes",
4056
+ "docker-compose": "Docker Compose",
4057
+ "custom": "Personalizzato",
4058
+ "infraless": "Nessuna infrastruttura"
4059
+ },
4060
+ "engine": {
4061
+ "local-docker": "Docker locale",
4062
+ "local-k3s": "k3s locale",
4063
+ "remote-kubernetes": "Kubernetes remoto",
4064
+ "remote-custom": "Personalizzato remoto (HTTP)",
4065
+ "none": "Nessuno"
4066
+ }
4067
+ },
4068
+ "provisioning": {
4069
+ "title": "Log del provisioning",
4070
+ "refresh": "Aggiorna",
4071
+ "empty": "Ancora nessun tentativo di provisioning registrato.",
4072
+ "operation": {
4073
+ "provision": "Avvio",
4074
+ "teardown": "Smantellamento",
4075
+ "status": "Controllo dello stato",
4076
+ "dispatch": "Avvio",
4077
+ "release": "Smantellamento",
4078
+ "poll-failure": "Controllo dello stato di salute"
4079
+ },
4080
+ "outcome": {
4081
+ "success": "riuscito",
4082
+ "failure": "non riuscito"
4083
+ }
4084
+ },
4085
+ "kaizen": {
4086
+ "title": "Kaizen",
4087
+ "subtitle": "Valutazione a miglioramento continuo delle esecuzioni degli agenti",
4088
+ "refresh": "Aggiorna",
4089
+ "notConfigured": "Kaizen non è configurato in questo deployment.",
4090
+ "grading": {
4091
+ "title": "Valutazione Kaizen"
4092
+ },
4093
+ "status": {
4094
+ "scheduled": "Programmato",
4095
+ "grading": "Valutazione…",
4096
+ "failed": "Non riuscito",
4097
+ "graded": "Valutato"
4098
+ },
4099
+ "gradeValue": "{grade}/5",
4100
+ "scheduledHint": "Una valutazione Kaizen è in coda per questo passaggio. Viene eseguita in background al termine dell'esecuzione.",
4101
+ "recommendations": "Raccomandazioni",
4102
+ "noImprovements": "Interazione fluida, nulla da migliorare.",
4103
+ "gradedBy": "Valutato da {model}",
4104
+ "failedFallback": "Non è stato possibile completare la valutazione.",
4105
+ "promptVersion": "v{version}",
4106
+ "verifiedCombos": {
4107
+ "title": "Combinazioni verificate",
4108
+ "count": "({count})",
4109
+ "hint": "Una combinazione di prompt + agente + modello che ha ottenuto una valutazione di 4 o 5 senza raccomandazioni per cinque volte consecutive. Queste non vengono più valutate.",
4110
+ "empty": "Ancora nessuna combinazione.",
4111
+ "progress": "{count}/5",
4112
+ "modelPrompt": "{model} · prompt v{version}"
4113
+ },
4114
+ "history": {
4115
+ "title": "Cronologia delle valutazioni",
4116
+ "col": {
4117
+ "when": "Quando",
4118
+ "agent": "Agente",
4119
+ "model": "Modello",
4120
+ "grade": "Valutazione",
4121
+ "recommendations": "Raccomandazioni"
4122
+ },
4123
+ "empty": "Ancora nessuna valutazione."
4124
+ }
4125
+ },
4126
+ "recurring": {
4127
+ "runEvery": "Esegui ogni",
4128
+ "hours": "ore",
4129
+ "allowedDays": "Giorni consentiti",
4130
+ "allowedDaysHelp": "Lascia tutto disattivato per eseguire ogni giorno.",
4131
+ "weekday": {
4132
+ "sun": "Dom",
4133
+ "mon": "Lun",
4134
+ "tue": "Mar",
4135
+ "wed": "Mer",
4136
+ "thu": "Gio",
4137
+ "fri": "Ven",
4138
+ "sat": "Sab"
4139
+ },
4140
+ "windowToggle": "Solo entro una fascia oraria della giornata (es. orario lavorativo)",
4141
+ "to": "alle",
4142
+ "timezone": "Fuso orario"
4143
+ },
4144
+ "media": {
4145
+ "compare": {
4146
+ "mode": {
4147
+ "sideBySide": "Affiancato",
4148
+ "overlay": "Sovrapposizione",
4149
+ "swipe": "Scorrimento",
4150
+ "diff": "Differenza"
4151
+ },
4152
+ "actual": "Effettivo",
4153
+ "reference": "Riferimento",
4154
+ "actualAlt": "{view} (effettivo)",
4155
+ "referenceAlt": "{view} (riferimento)",
4156
+ "replace": "Sostituisci",
4157
+ "failedToLoad": "Caricamento non riuscito",
4158
+ "loading": "Caricamento…",
4159
+ "notCaptured": "Non acquisito",
4160
+ "dropHint": "Trascina o clicca per aggiungere un riferimento",
4161
+ "diffHint": "I pixel identici appaiono neri; le differenze risaltano."
4162
+ },
4163
+ "lightbox": {
4164
+ "ariaLabel": "Screenshot: {label}",
4165
+ "ariaLabelFallback": "Visualizzatore di screenshot",
4166
+ "fallbackTitle": "Screenshot",
4167
+ "counter": "{current} / {total}",
4168
+ "zoomOut": "Riduci zoom (-)",
4169
+ "zoomIn": "Aumenta zoom (+)",
4170
+ "reset": "Reimposta (0)",
4171
+ "close": "Chiudi (Esc)",
4172
+ "prev": "Precedente (←)",
4173
+ "next": "Successivo (→)",
4174
+ "failed": "Caricamento dell'immagine non riuscito.",
4175
+ "loading": "Caricamento…"
4176
+ }
4177
+ },
4178
+ "sandbox": {
4179
+ "title": "Sandbox: test di prompt e modelli",
4180
+ "description": "Prova versioni di prompt e modelli su fixture valutate, con un punteggio assegnato da un modello giudice.",
4181
+ "unavailable": {
4182
+ "title": "La Sandbox non è abilitata per questo deployment.",
4183
+ "body": "Richiede un proprio database (un {db} dedicato su Cloudflare, oppure lo schema Postgres {schema} su Node). Configuralo e ricarica."
4184
+ },
4185
+ "error": {
4186
+ "title": "Caricamento della Sandbox non riuscito."
4187
+ },
4188
+ "deploymentDefault": "Predefinito del deployment",
4189
+ "defaultRunName": "Esecuzione sandbox {kind}",
4190
+ "baseline": "baseline",
4191
+ "versionLabel": "v{version}",
4192
+ "tab": {
4193
+ "experiments": "Esperimenti",
4194
+ "prompts": "Prompt",
4195
+ "fixtures": "Fixture"
4196
+ },
4197
+ "builder": {
4198
+ "title": "Nuovo esperimento",
4199
+ "agent": "Agente",
4200
+ "promptVersions": "Versioni del prompt",
4201
+ "models": "Modelli",
4202
+ "noModels": "Nessun modello selezionabile. Configura una chiave provider o abilita Cloudflare AI.",
4203
+ "fixtures": "Fixture",
4204
+ "noFixtures": "Nessuna fixture per questo agente.",
4205
+ "judgeModel": "Modello giudice",
4206
+ "judgeModelHint": "valuta ogni cella",
4207
+ "nameLabel": "Nome (facoltativo)",
4208
+ "cellCount": "{count} cella | {count} celle",
4209
+ "maxCells": "(max {max})",
4210
+ "run": "Esegui"
4211
+ },
4212
+ "experimentStatus": {
4213
+ "draft": "bozza",
4214
+ "running": "in esecuzione",
4215
+ "done": "completato",
4216
+ "failed": "non riuscito"
4217
+ },
4218
+ "results": {
4219
+ "col": {
4220
+ "prompt": "Prompt",
4221
+ "model": "Modello",
4222
+ "fixture": "Fixture",
4223
+ "score": "Punteggio",
4224
+ "objective": "Obiettivo"
4225
+ },
4226
+ "failed": "non riuscito",
4227
+ "past": "Esperimenti passati",
4228
+ "empty": "Ancora nessun esperimento."
4229
+ },
4230
+ "prompts": {
4231
+ "forkTitle": "Deriva un candidato",
4232
+ "editTitle": "Modifica / versione",
4233
+ "forkOf": "Fork · {name}",
4234
+ "newVersionOf": "Nuova versione di · {name}",
4235
+ "saveVersion": "Salva nuova versione",
4236
+ "hint": "Scegli un prompt per derivare una baseline già distribuita o versionare un candidato. Ogni salvataggio aggiunge una versione immutabile che puoi mettere sotto test."
4237
+ },
4238
+ "fixtureKind": {
4239
+ "requirements": "requisiti",
4240
+ "clarity": "chiarezza",
4241
+ "architecture": "architettura",
4242
+ "code-review": "revisione del codice",
4243
+ "repo-feature": "funzionalità del repository",
4244
+ "repo-bug": "bug del repository"
4245
+ },
4246
+ "fixtureOrigin": {
4247
+ "builtin": "integrata",
4248
+ "custom": "personalizzata"
4249
+ },
4250
+ "fixtures": {
4251
+ "expectations": "{count} aspettativa valutata | {count} aspettative valutate",
4252
+ "empty": "Nessuna fixture."
4253
+ },
4254
+ "toast": {
4255
+ "running": "Esecuzione dell'esperimento…",
4256
+ "complete": "Esperimento completato",
4257
+ "runFailed": "Impossibile eseguire l'esperimento",
4258
+ "versionSaved": "Nuova versione salvata",
4259
+ "saveFailed": "Impossibile salvare la versione",
4260
+ "archiveFailed": "Impossibile archiviare"
4261
+ }
4262
+ },
4263
+ "mergePreset": {
4264
+ "health": {
4265
+ "title": "Aggiornamenti dei preset di merge",
4266
+ "allValid": "Tutti i preset di merge integrati sono aggiornati.",
4267
+ "newHeading": "Nuovi preset disponibili",
4268
+ "newDescription": "Sono stati rilasciati nuovi preset di merge integrati. Aggiungili alla libreria di questa board.",
4269
+ "add": "Aggiungi",
4270
+ "updatesHeading": "Aggiornamenti disponibili",
4271
+ "updatesDescription": "È stata rilasciata una versione più recente di questi preset di merge integrati. Ripristina i valori iniziali per adottarla (il predefinito e l'ordinamento vengono mantenuti).",
4272
+ "versionAvailable": "Versione {from} → {to} disponibile.",
4273
+ "reseed": "Ripristina",
4274
+ "reseedAll": "Aggiorna tutti ({count})",
4275
+ "dismiss": "Ignora",
4276
+ "done": "Fatto",
4277
+ "toast": {
4278
+ "reseedFailed": "Impossibile ripristinare il preset di merge"
4279
+ }
4280
+ }
4281
+ },
4282
+ "environmentWizard": {
4283
+ "title": "Configura un ambiente di test",
4284
+ "subtitle": "Rileva, rivedi e salva una ricetta Docker Compose in modo che il Deployer la esegua.",
4285
+ "recommended": "consigliato",
4286
+ "steps": {
4287
+ "pick": "Scegli servizio",
4288
+ "review": "Rivedi ricetta",
4289
+ "preflight": "Verifica preliminare",
4290
+ "save": "Salva"
4291
+ },
4292
+ "pick": {
4293
+ "intro": "Scegli il servizio per cui configurare un ambiente Docker Compose.",
4294
+ "empty": "Ancora nessun servizio. Aggiungi prima un servizio."
4295
+ },
4296
+ "review": {
4297
+ "detectHint": "Rilevato dal repository. Nulla viene applicato finché non salvi.",
4298
+ "detect": "Rileva di nuovo",
4299
+ "noRepo": "Questo servizio non ha un repository collegato, quindi il rilevamento non può essere eseguito.",
4300
+ "detectError": "Rilevamento non riuscito. Verifica la connessione al repository e riprova.",
4301
+ "provenanceTitle": "Da dove proviene ciascun campo",
4302
+ "service": "Servizio compose esposto",
4303
+ "servicePlaceholder": "es. app",
4304
+ "port": "Porta esposta",
4305
+ "composeFiles": "File compose",
4306
+ "profiles": "Profili",
4307
+ "seedDumps": "Dump di seed",
4308
+ "seedAdd": "Aggiungi passaggio di seed",
4309
+ "seedAdded": "Aggiunto",
4310
+ "rawEditor": "Modifica la ricetta grezza",
4311
+ "rawApply": "Applica"
4312
+ },
4313
+ "analysis": {
4314
+ "title": "Analisi approfondita",
4315
+ "hint": "Esegui l'analista degli ambienti per redigere i passaggi di configurazione e i gate di stato di salute dal repository.",
4316
+ "run": "Esegui analisi",
4317
+ "unavailable": "L'analisi approfondita richiede un repository collegato e la pipeline di analisi.",
4318
+ "failed": "L'esecuzione dell'analisi non è riuscita.",
4319
+ "apply": "Applica la bozza dell'analista"
4320
+ },
4321
+ "field": {
4322
+ "composeFiles": "File compose",
4323
+ "composeProfiles": "Profili",
4324
+ "envFiles": "File env",
4325
+ "externalNetworks": "Reti esterne",
4326
+ "sharedStackRefs": "Stack condivisi",
4327
+ "prerequisites": "Verifiche preliminari",
4328
+ "setupSteps": "Passaggi di configurazione",
4329
+ "healthGate": "Gate dello stato di salute",
4330
+ "teardownSteps": "Passaggi di smantellamento"
4331
+ },
4332
+ "origin": {
4333
+ "detector": "rilevato",
4334
+ "analyst": "analista",
4335
+ "both": "rilevato + analista"
4336
+ },
4337
+ "preflight": {
4338
+ "intro": "Verifica i prerequisiti della macchina prima del provisioning.",
4339
+ "run": "Esegui verifiche",
4340
+ "none": "Questa ricetta non dichiara verifiche preliminari.",
4341
+ "unavailable": "Le verifiche preliminari vengono eseguite sulla macchina locale e non sono disponibili in questo deployment.",
4342
+ "optional": "facoltativo"
4343
+ },
4344
+ "save": {
4345
+ "handlerLabel": "Etichetta del handler",
4346
+ "handlerHint": "Il handler Docker Compose dello workspace che il Deployer usa per eseguire il provisioning di questo stack.",
4347
+ "summary": "Salva una ricetta Docker Compose su \"{frame}\" (esponendo il servizio \"{service}\") e registra il handler dello workspace.",
4348
+ "saved": "Salvato. Il Deployer eseguirà il provisioning di questo stack quando una pipeline lo esegue.",
4349
+ "save": "Salva configurazione"
4350
+ },
4351
+ "trial": {
4352
+ "hint": "Se vuoi, esegui subito il provisioning di questo ambiente per testare la ricetta.",
4353
+ "run": "Provisioning di prova"
4354
+ }
4355
+ },
4356
+ "palette": {
4357
+ "hint": "Clicca su un agente per aggiungerlo alla pipeline.",
4358
+ "customAgents": "Agenti personalizzati"
4359
+ }
4360
+ }