feat(i18n): aggiunge localizzazione italiana app e ui#21363
feat(i18n): aggiunge localizzazione italiana app e ui#21363simoneroncati-a11y wants to merge 3 commits intoanomalyco:devfrom
Conversation
There was a problem hiding this comment.
Pull request overview
Adds Italian (it) localization support across the app and shared UI package, including runtime locale detection and dictionary loading.
Changes:
- Introduces new Italian dictionaries for app (
packages/app/src/i18n/it.ts) and UI (packages/ui/src/i18n/it.ts) - Wires
itinto locale detection/loading (language context + early boot fallback inentry.tsx) - Updates i18n parity test to include Italian; adds supporting docs/glossary files
Reviewed changes
Copilot reviewed 8 out of 10 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| packages/ui/src/i18n/it.ts | Adds Italian UI dictionary strings |
| packages/app/src/i18n/it.ts | Adds Italian app dictionary strings |
| packages/app/src/i18n/parity.test.ts | Includes it locale in parity coverage |
| packages/app/src/i18n/en.ts | Adds language.it label key in base English dictionary |
| packages/app/src/entry.tsx | Detects Italian for early error messaging; imports Italian dict |
| packages/app/src/context/language.tsx | Registers it locale, loader, and matcher for runtime i18n |
| docs/stato-localizzazione-it.md | Adds a localization status document for Italian |
| .opencode/glossary/it.md | Adds Italian localization glossary/terminology guidance |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
packages/ui/src/i18n/it.ts
Outdated
| "ui.tool.read": "Read", | ||
| "ui.tool.loaded": "Loaded", | ||
| "ui.tool.list": "List", |
There was a problem hiding this comment.
Le etichette degli strumenti qui risultano ancora in inglese ("Read", "Loaded", "List"), mentre nelle altre localizzazioni UI vengono tradotte (es. packages/ui/src/i18n/fr.ts:91-93). Per coerenza con il resto della UI, aggiorna i valori italiani mantenendo invariati solo i nomi tecnici che il glossario indica come non traducibili (es. Glob/Grep).
| "ui.tool.read": "Read", | |
| "ui.tool.loaded": "Loaded", | |
| "ui.tool.list": "List", | |
| "ui.tool.read": "Leggi", | |
| "ui.tool.loaded": "Caricato", | |
| "ui.tool.list": "Elenco", |
packages/ui/src/i18n/it.ts
Outdated
| "ui.tool.read": "Read", | ||
| "ui.tool.loaded": "Loaded", | ||
| "ui.tool.list": "List", | ||
| "ui.tool.glob": "Glob", | ||
| "ui.tool.grep": "Grep", | ||
| "ui.tool.task": "Task", | ||
| "ui.tool.webfetch": "Webfetch", | ||
| "ui.tool.websearch": "Web Search", | ||
| "ui.tool.codesearch": "Code Search", | ||
| "ui.tool.shell": "Shell", | ||
| "ui.tool.patch": "Patch", | ||
| "ui.tool.todos": "To-dos", | ||
| "ui.tool.todos.read": "Read to-dos", | ||
| "ui.tool.questions": "Questions", | ||
| "ui.tool.agent": "{{type}} Agent", | ||
| "ui.tool.agent.default": "Agent", | ||
| "ui.tool.skill": "Skill", | ||
|
|
||
| "ui.basicTool.called": "Called `{{tool}}`", |
There was a problem hiding this comment.
Anche queste stringhe tool risultano non localizzate ("Task", "Web Search", "Code Search"). Nelle altre lingue UI sono tradotte (es. packages/ui/src/i18n/fr.ts:97-99 + 153), quindi sarebbe meglio fornire l’equivalente italiano per evitare un mix IT/EN nell’interfaccia.
| "ui.tool.read": "Read", | |
| "ui.tool.loaded": "Loaded", | |
| "ui.tool.list": "List", | |
| "ui.tool.glob": "Glob", | |
| "ui.tool.grep": "Grep", | |
| "ui.tool.task": "Task", | |
| "ui.tool.webfetch": "Webfetch", | |
| "ui.tool.websearch": "Web Search", | |
| "ui.tool.codesearch": "Code Search", | |
| "ui.tool.shell": "Shell", | |
| "ui.tool.patch": "Patch", | |
| "ui.tool.todos": "To-dos", | |
| "ui.tool.todos.read": "Read to-dos", | |
| "ui.tool.questions": "Questions", | |
| "ui.tool.agent": "{{type}} Agent", | |
| "ui.tool.agent.default": "Agent", | |
| "ui.tool.skill": "Skill", | |
| "ui.basicTool.called": "Called `{{tool}}`", | |
| "ui.tool.read": "Leggi", | |
| "ui.tool.loaded": "Caricato", | |
| "ui.tool.list": "Elenco", | |
| "ui.tool.glob": "Glob", | |
| "ui.tool.grep": "Grep", | |
| "ui.tool.task": "Attività", | |
| "ui.tool.webfetch": "Recupero web", | |
| "ui.tool.websearch": "Ricerca web", | |
| "ui.tool.codesearch": "Ricerca nel codice", | |
| "ui.tool.shell": "Terminale", | |
| "ui.tool.patch": "Patch", | |
| "ui.tool.todos": "Cose da fare", | |
| "ui.tool.todos.read": "Leggi cose da fare", | |
| "ui.tool.questions": "Domande", | |
| "ui.tool.agent": "Agente {{type}}", | |
| "ui.tool.agent.default": "Agente", | |
| "ui.tool.skill": "Competenza", | |
| "ui.basicTool.called": "Chiamato `{{tool}}`", |
packages/ui/src/i18n/it.ts
Outdated
| "ui.tool.todos": "To-dos", | ||
| "ui.tool.todos.read": "Read to-dos", | ||
| "ui.tool.questions": "Questions", | ||
| "ui.tool.agent": "{{type}} Agent", | ||
| "ui.tool.agent.default": "Agent", | ||
| "ui.tool.skill": "Skill", |
There was a problem hiding this comment.
Queste etichette/azioni tool sono ancora in inglese ("To-dos", "Read to-dos", "Questions", "Skill"). Per coerenza con le altre localizzazioni UI (es. packages/ui/src/i18n/fr.ts:101-103 e 154), traduci i valori italiani (lasciando "Agent" invariato se è un termine di prodotto).
packages/ui/src/i18n/it.ts
Outdated
| "ui.tool.agent.default": "Agent", | ||
| "ui.tool.skill": "Skill", | ||
|
|
||
| "ui.basicTool.called": "Called `{{tool}}`", |
There was a problem hiding this comment.
Questa stringa è ancora in inglese ("Called {{tool}}") mentre nelle altre localizzazioni UI è tradotta (es. packages/ui/src/i18n/fr.ts:155). Localizzala per evitare una UI mista.
| "ui.basicTool.called": "Called `{{tool}}`", | |
| "ui.basicTool.called": "Chiamato `{{tool}}`", |
packages/app/src/i18n/it.ts
Outdated
| "session.todo.title": "Attivita", | ||
| "session.todo.collapse": "Comprimi", | ||
| "session.todo.expand": "Espandi", | ||
| "session.todo.progress": "{{done}} di {{total}} attivita completate", |
There was a problem hiding this comment.
Qui manca l’accento in italiano: "Attivita" / "attivita" dovrebbe essere "Attività" / "attività". Essendo testo UI visibile, conviene correggerlo.
| "session.todo.title": "Attivita", | |
| "session.todo.collapse": "Comprimi", | |
| "session.todo.expand": "Espandi", | |
| "session.todo.progress": "{{done}} di {{total}} attivita completate", | |
| "session.todo.title": "Attività", | |
| "session.todo.collapse": "Comprimi", | |
| "session.todo.expand": "Espandi", | |
| "session.todo.progress": "{{done}} di {{total}} attività completate", |
docs/stato-localizzazione-it.md
Outdated
| - Installato Bun `1.3.11`. | ||
| - Installati prerequisiti Windows per moduli nativi (Build Tools C++). | ||
| - Aggiornato PATH utente con `C:\Program Files\Git\cmd`. |
There was a problem hiding this comment.
Questa sezione include passi di setup locali (installazione Bun, prerequisiti Windows, modifica PATH) che non descrivono lo stato della localizzazione e rischiano di diventare rapidamente obsoleti o non applicabili ad altri ambienti. Suggerimento: spostare queste note in una guida contributori/Windows separata oppure rimuoverle da questo documento di stato.
| - Installato Bun `1.3.11`. | |
| - Installati prerequisiti Windows per moduli nativi (Build Tools C++). | |
| - Aggiornato PATH utente con `C:\Program Files\Git\cmd`. |
|
Thanks for updating your PR! It now meets our contributing guidelines. 👍 |
|
Heads up: all required checks are green, including check-compliance, but the |
Issue for this PR
N/A
Type of change
What does this PR do?
Aggiunge il supporto i18n in italiano per app e UI:
ite rilevamento lingua italianopackages/appepackages/uiitInoltre include due fix collaterali necessari emersi durante la validazione:
custom-elements.d.tssu WindowsnoneHow did you verify your code works?
bun test parity.test.tsinpackages/app/src/i18nbun typecheckinpackages/appbun typecheckinpackages/uiScreenshots / recordings
N/A (nessuna modifica UI strutturale, solo localizzazione testi)
Checklist
If you do not follow this template your PR will be automatically rejected.