diff --git a/.opencode/glossary/ca.md b/.opencode/glossary/ca.md new file mode 100644 index 000000000000..9b79e5968bc2 --- /dev/null +++ b/.opencode/glossary/ca.md @@ -0,0 +1,131 @@ +# ca Glossary + +## Sources + +- Guia d'estil de Softcatalà: https://www.softcatala.org/guia-estil-de-softcatala/tota-la-guia/ +- Recull de termes de Softcatalà: https://www.softcatala.org/recull/ +- TERMCAT (Catalan terminology authority): https://www.termcat.cat/ +- Optimot (Generalitat de Catalunya language service): https://optimot.gencat.cat/ + +Term mappings below were cross-checked against the Catalan translation memories published by +Softcatalà (https://www.softcatala.org/recursos/memories/): KDE (329k segments), GNOME (92k), +LibreOffice (81k), Microsoft Terminology (21k), Chromium (7.7k) and Git (6.6k). Counts cited in +the Notes column are occurrences of the Catalan string for that English source label. + +For Git-specific vocabulary (`fork`, `worktree`, `branch`, `commit`), the Git translation memory +is authoritative and overrides the general-purpose corpora. + +The general-purpose corpora predate the LLM domain, so AI-specific vocabulary was checked against +shipped AI interfaces instead: Firefox's `browser/browser/genai.ftl` (mozilla-l10n, human- +translated) and Open WebUI's `ca-ES` locale. + +## Do Not Translate (Locale Additions) + +- `OpenCode` (preserve casing in prose; keep `opencode` only in commands, package names, paths, or code) +- `OpenCode CLI` +- `CLI`, `TUI`, `MCP`, `OAuth`, `LSP`, `API` +- Tool identifiers exactly as written: `todowrite`, `bash`, `webfetch`, `doom_loop`, `external_directory` +- Commands, flags, file paths, model IDs, and code literals (keep exactly as written) +- Keyboard legends: `Page Up`, `Page Down`, `Esc`, `Tab`, `Enter` + +## Preferred Terms + +| English | Preferred | Notes | +| --------------- | ------------------ | ---------------------------------------------------------------------------------------------- | +| shell | intèrpret d'ordres | GNOME, KDE. Keep `Shell` only where it labels the prompt-mode toggle. Never «closca»/«carcassa» | +| to search | cercar / cerca | KDE 3728:21, GNOME 1164:6, MS 124:2 against «buscar» | +| to download | baixar / baixa | KDE 639:264, GNOME 120:38 against «descarregar» | +| next | següent | KDE 2552:163, GNOME 545:17, LibreOffice 792:35 against «proper» | +| to toggle | commuta | KDE 539:167, GNOME 273:10 against «alterna». Pick one verb and keep it | +| called (a tool) | S'ha cridat | invocation, not naming. KDE uses `cridar`/`invocar`; «Es diu» appears in no corpus | +| Select All | Selecciona-ho tot | unanimous: KDE 25/25, GNOME, LibreOffice, MS, Chromium | +| Close | Tanca | KDE 49, LibreOffice 24. Imperative, not «Tancar» | +| Send | Envia | KDE 12, LibreOffice 3, GNOME 2 | +| Save / Open | Desa / Obre | KDE 44 / 33, LibreOffice 19 / 16 | +| Undo / Redo/Cut | Desfés/Refés/Retalla | KDE 27 / 20 / 16. Never the infinitive | +| settings | configuració | KDE 33, MS 5, GNOME, Chromium. (LibreOffice prefers «Paràmetres» — minority) | +| workspace | espai de treball | KDE. MS prefers «àrea de treball»; pick one, KDE matches developer tooling better | +| session | sessió | unanimous | +| file / folder | fitxer / carpeta | unanimous; not «arxiu» | +| tab (UI) | pestanya | «Tabulador» is the *key*, not the UI tab | +| prompt | indicació | LLM sense. Open WebUI `ca-ES` 45 occurrences; Firefox `genai.ftl` (human-translated) agrees | +| agent | agent | GNOME «Agent», MS «agent» (7) | +| model | model | KDE 17, LibreOffice 5, GNOME 2 | +| token | token | keep the English loanword — see note below | +| to fork | bifurcar / bifurca | Git ca, 7 of 10 segments | +| worktree | arbre de treball | Git ca, 59:25; «work tree» is 11/11 | +| diff | diff (masculine) | «el diff», «un diff unificat». KDE 243:111; es/fr/de/it in this repo all keep «Diff» | +| patch (noun) | pedaç | Git ca 128:0; Recull de termes «Patch → Pedaç» | +| tests (software)| proves | KDE 42, GNOME 15, Git 2, LibreOffice 2; «Unit Tests» → «Proves unitàries». See **Avoid** | +| to patch | apedaçar | Git ca «deixar d'apedaçar», «operació d'apedaçament»; KDE «sense apedaçar». `Patched` → «Apedaçat» | + +Notes on the terms the general-purpose corpora did not settle: + +- **`prompt` → «indicació»** in the LLM sense. The general corpora only have the command-line + prompt or request senses («indicador», «petició», «sol·licitud») and the Recull de termes has no + `prompt` entry at all, so the evidence comes from AI interfaces: Firefox's `genai.ftl` uses + «indicacions», and Open WebUI's `ca-ES` uses «indicació» 45 times against 4 that keep the English, + 3 «sol·licitud» and 2 «petició». Note `prompt` is also a verb in the source (`Subagent sessions + cannot be prompted`); rewrite rather than calque — «No es poden enviar indicacions a les sessions + de subagent». +- **`token` stays English.** The corpora say «testimoni» (KDE 5, GNOME 2, MS 4), but that is the + authentication-token sense; it is wrong for the tokenizer unit. `AGENTS.md` permits this: + *"If established practice keeps an English loanword or acronym, keep it rather than inventing a + translation."* +- **`fork` and `worktree` follow Git**, since both are Git terms and users meet them in `git` + output first. The 3 non-«bifurcar» `fork` segments are the `--fork-point` flag and the `fork` + syscall name; the 25 non-translated `worktree` segments are all command literals + (`git worktree add`, `skip-worktree`). Keep the English inside literal commands, translate the + prose. +- **`diff` stays English**, unlike `fork` and `worktree`, because Git itself does not settle it: + excluding command literals, the Git memory is 47 prose «diff» against 46 «diferència». KDE breaks + the tie at 243:111 in favour of keeping the term, and every sibling locale in this repo already + does (`Diff unificado`, `Diff unifié`, `Vereinheitlichter Diff`, `Diff unificato`). Treat it as + masculine and inflect around it: «el diff», «Diff unificat», «Diff dividit», «Vista del diff». + Where the English says *non-diff lines* rather than *diff*, a paraphrase is fine — «línies sense + canvis», matching `es` and `it`. +- **`agent` and `model` are spelled the same in Catalan**. Do not let that + invite word-by-word treatment of the phrases they appear in: `Show agent` and `Cycle agent` are + verb + noun (see **Avoid**). + +## Guidance + +- **Verb form depends on who is speaking.** This is the rule most often broken and it is not a + matter of taste — see Softcatalà, *Formes verbals*: + - **User → computer** (menu items, buttons, command-palette entries, config toggles): imperative + **2nd person singular**. `Edita`, `Obre`, `Desa`, `Reinicia`, `Comprova si hi ha actualitzacions`. + - **Computer → user** (dialogs, status text, questions, descriptions): imperative **2nd person + plural** (*vós*). `Escriviu…`, `Trieu una carpeta`, `Voleu continuar?` + - Never use the infinitive as a command. `Tancar` → `Tanca`; `Enviar` → `Envia`; `Desfer` → `Desfés`. +- **Progressive actions use `S'està` / `S'estan` + gerund**, never a bare gerund and never a + nominalisation. `Downloading` → `S'està baixant` (not «Baixant», not «Baixada»). +- Elide `de` before a vowel: `d'OpenCode`, not «de OpenCode». +- Sentence case only. Do not carry English title case into Catalan (`Última activitat`, not + «Última Activitat»). +- Drop `please` and `sorry` entirely; Catalan software copy does not render them. +- Prefer `ser` over `estar` with adjectives and for location (`El disc és ple`). +- **`web` takes the gender of the elided noun** (TERMCAT): «un web» is *un lloc web*, «una web» is + *una pàgina web*. It is not a free choice. Every article-bearing `web` string in this codebase + refers to the Web as a whole or to publishing a session on it — never to a single page — so all + of them are **masculine**: `al web`, `el web`. Softcatalà's Recull de termes (revised by TERMCAT) + has «Mapa del web»; Microsoft Terminology (56:0), Chromium (13:0) and LibreOffice agree for + «on the web». KDE and GNOME often use the feminine, but that reflects common parlance rather + than the rule. Attributive uses take no article and raise no question: `Cerca web`. +- Prefer active voice; English passives usually become pronominal (`s'ha desat`). +- Omit possessives unless ownership is genuinely ambiguous (`el fitxer`, not «el vostre fitxer»). +- Use gender-neutral constructions where they exist (`Us donem la benvinguda`, `Tothom`). + +## Avoid + +- Avoid translating a word whose English part of speech you have not resolved. `Show agent` is + verb + noun, not «Agent d'espectacles»; `Cycle agent` is verb + noun, not «Agent de cicle». +- Avoid rendering one source term several ways. `shell` currently appears as `Shell`, `shell`, + `intèrpret d'ordres`, `Carcassa` and `closca` across the locale. +- Avoid collapsing distinct states into one string. `Resetting workspace` and `Workspace reset` + must not both become «Restabliment de l'espai de treball». +- Avoid mixing *tu* and *vós* within a surface once the speaker direction is fixed. +- Avoid «tests» for software *tests*; use «proves». The corpora are unanimous on this + (KDE 42, GNOME 15, Git 2, LibreOffice 2), including «Unit Tests» → «Proves unitàries». +- Avoid merging `workspace` («espai de treball») and `worktree` («arbre de treball»). The English + source uses both, occasionally in one string (`Runs after creating a new workspace (worktree)`). + Keep whatever distinction the English makes. diff --git a/packages/app/src/i18n/ca.ts b/packages/app/src/i18n/ca.ts index 21ad325607a6..daa858e072ed 100644 --- a/packages/app/src/i18n/ca.ts +++ b/packages/app/src/i18n/ca.ts @@ -2,64 +2,64 @@ export const dict = { "desktop.menu.app": "OpenCode", "desktop.menu.file": "Fitxer", "desktop.menu.edit": "Edita", - "desktop.menu.view": "Veure", + "desktop.menu.view": "Visualitza", "desktop.menu.go": "Vés", "desktop.menu.window": "Finestra", "desktop.menu.help": "Ajuda", - "desktop.menu.checkForUpdates": "Comproveu si hi ha actualitzacions...", + "desktop.menu.checkForUpdates": "Comprova si hi ha actualitzacions...", "desktop.menu.settings": "Configuració", - "desktop.menu.reloadWebview": "Torna a carregar Webview", - "desktop.menu.restart": "Reinicieu", - "desktop.menu.exportLogs": "Exporta registres...", - "desktop.menu.newSession": "Nova sessió", - "desktop.menu.openProject": "Projecte obert...", + "desktop.menu.reloadWebview": "Torna a carregar el Webview", + "desktop.menu.restart": "Reinicia", + "desktop.menu.exportLogs": "Exporta els registres...", + "desktop.menu.newSession": "Sessió nova", + "desktop.menu.openProject": "Obre un projecte...", "desktop.menu.newWindow": "Finestra nova", "desktop.menu.closeWindow": "Tanca la finestra", - "desktop.menu.undo": "Desfer", - "desktop.menu.redo": "Refer", - "desktop.menu.cut": "Tallar", - "desktop.menu.copy": "Còpia", + "desktop.menu.undo": "Desfés", + "desktop.menu.redo": "Refés", + "desktop.menu.cut": "Retalla", + "desktop.menu.copy": "Copia", "desktop.menu.paste": "Enganxa", "desktop.menu.delete": "Suprimeix", - "desktop.menu.selectAll": "Seleccioneu Tot", + "desktop.menu.selectAll": "Selecciona-ho tot", "desktop.menu.toggleSidebar": "Commuta la barra lateral", "desktop.menu.toggleTerminal": "Commuta el terminal", "desktop.menu.toggleFileTree": "Commuta l'arbre de fitxers", "desktop.menu.reload": "Torna a carregar", - "desktop.menu.toggleDeveloperTools": "Alterna Eines per a desenvolupadors", + "desktop.menu.toggleDeveloperTools": "Commuta les eines per a desenvolupadors", "desktop.menu.actualSize": "Mida real", "desktop.menu.zoomIn": "Apropa", - "desktop.menu.zoomOut": "Allunya el zoom", + "desktop.menu.zoomOut": "Allunya", "desktop.menu.toggleFullScreen": "Commuta la pantalla completa", "desktop.menu.back": "Enrere", "desktop.menu.forward": "Endavant", "desktop.menu.previousSession": "Sessió anterior", - "desktop.menu.nextSession": "Propera sessió", + "desktop.menu.nextSession": "Sessió següent", "desktop.menu.previousProject": "Projecte anterior", "desktop.menu.nextProject": "Projecte següent", - "desktop.menu.minimize": "Minimitzar", - "desktop.menu.maximize": "Maximitzar", - "desktop.menu.documentation": "OpenCode Documentació", + "desktop.menu.minimize": "Minimitza", + "desktop.menu.maximize": "Maximitza", + "desktop.menu.documentation": "Documentació d'OpenCode", "desktop.menu.supportForum": "Fòrum de suport", "desktop.menu.shareFeedback": "Comparteix comentaris", - "desktop.menu.reportBug": "Informar d'un error", - "desktop.menu.ariaLabel": "menú OpenCode.", - "desktop.updater.dialog.checkFailed.message": "La comprovació d'actualització ha fallat.", + "desktop.menu.reportBug": "Informa d'un error", + "desktop.menu.ariaLabel": "Menú d'OpenCode", + "desktop.updater.dialog.checkFailed.message": "La comprovació d'actualitzacions ha fallat.", "desktop.updater.dialog.checkFailed.title": "Error d'actualització", - "desktop.updater.dialog.upToDate.message": "Estàs al dia.", + "desktop.updater.dialog.upToDate.message": "Esteu al dia.", "desktop.updater.dialog.upToDate.title": "No hi ha actualitzacions", - "desktop.updater.dialog.ready.message": "Actualització {{version}} baixada. Reiniciar ara?", + "desktop.updater.dialog.ready.message": "S'ha baixat l'actualització {{version}}. Voleu reiniciar ara?", "desktop.updater.dialog.ready.title": "Actualització llesta", - "desktop.updater.dialog.restart": "Reinicieu", + "desktop.updater.dialog.restart": "Reinicia", "desktop.updater.dialog.later": "Més tard", - "desktop.recovery.action.relaunch": "Relançar", - "desktop.recovery.action.exportLogs": "Exporta registres", - "desktop.recovery.action.keepWaiting": "Seguiu esperant", + "desktop.recovery.action.relaunch": "Torna a iniciar", + "desktop.recovery.action.exportLogs": "Exporta els registres", + "desktop.recovery.action.keepWaiting": "Continua esperant", "desktop.recovery.action.quit": "Surt", "desktop.recovery.loadFailed": "OpenCode no s'ha pogut carregar", - "desktop.recovery.terminated": "La finestra OpenCode s'ha acabat inesperadament", + "desktop.recovery.terminated": "La finestra d'OpenCode s'ha tancat inesperadament", "desktop.recovery.unresponsive": "OpenCode no respon", - "desktop.recovery.unresponsive.detail": "Podeu reiniciar l'aplicació, obrir els registres o continuar esperant.", + "desktop.recovery.unresponsive.detail": "Podeu tornar a iniciar l'aplicació, obrir els registres o continuar esperant.", "desktop.recovery.loadFailed.detail": "Finestra: {{window}}\nURL: {{url}}\nError: {{code}} {{description}}", "desktop.recovery.terminated.detail": "Finestra: {{window}}\nMotiu: {{reason}}\nCodi: {{code}}", "desktop.recovery.unknown": "", @@ -75,7 +75,7 @@ export const dict = { "desktop.wsl.error.executeDistro": "No es poden executar ordres a la distribució", "desktop.wsl.error.installWsl": "La instal·lació de WSL ha fallat", "desktop.wsl.error.installDistro": "No s'ha pogut instal·lar la distribució: {{distro}}", - "desktop.wsl.error.installOpencode": "La instal·lació de OpenCode ha fallat", + "desktop.wsl.error.installOpencode": "La instal·lació d'OpenCode ha fallat", "desktop.wsl.error.alreadyAdded": "{{distro}} ja està afegit", "desktop.wsl.error.opencodeMissing": "opencode no està instal·lat en aquesta distribució", "desktop.wsl.error.opencodeCannotRun": "opencode està instal·lat però no s'ha pogut executar", @@ -94,7 +94,7 @@ export const dict = { "desktop.picker.error.notSelected": "El selector no ha seleccionat el fitxer", "desktop.picker.error.sizeLimit": "Els fitxers adjunts seleccionats superen el límit de {{limit}} MB", "command.category.suggested": "Suggerit", - "command.category.view": "Veure", + "command.category.view": "Visualització", "command.category.project": "Projecte", "command.category.provider": "Proveïdor", "command.category.server": "Servidor", @@ -137,7 +137,7 @@ export const dict = { "command.session.new": "Nova sessió", "command.file.open": "Obre el fitxer", "command.tab.close": "Tanca la pestanya", - "command.tab.reopenClosed": "Torneu a obrir la pestanya tancada", + "command.tab.reopenClosed": "Torna a obrir la pestanya tancada", "command.context.addSelection": "Afegeix la selecció al context", "command.context.addSelection.description": "Afegeix les línies seleccionades del fitxer actual", "command.input.focus": "Entrada de focus", @@ -145,18 +145,18 @@ export const dict = { "command.fileTree.toggle": "Commuta l'arbre de fitxers", "command.review.toggle": "Commuta la revisió", "command.terminal.new": "Nou terminal", - "command.terminal.new.description": "Creeu una nova pestanya de terminal", + "command.terminal.new.description": "Crea una pestanya de terminal nova", "command.steps.toggle": "Commuta els passos", "command.steps.toggle.description": "Mostra o amaga els passos del missatge actual", "command.message.previous": "Missatge anterior", - "command.message.previous.description": "Aneu al missatge anterior de l'usuari", + "command.message.previous.description": "Vés al missatge d'usuari anterior", "command.message.next": "Següent missatge", - "command.message.next.description": "Aneu al següent missatge de l'usuari", + "command.message.next.description": "Vés al missatge d'usuari següent", "command.model.choose": "Tria el model", - "command.model.choose.description": "Seleccioneu un model diferent", + "command.model.choose.description": "Selecciona un model diferent", "command.mcp.toggle": "Commuta els MCP", "command.mcp.toggle.description": "Commuta els MCP", - "command.agent.cycle": "Agent de cicle", + "command.agent.cycle": "Canvia d'agent", "command.agent.cycle.description": "Canvia al següent agent", "command.agent.cycle.reverse": "Cicle l'agent cap enrere", "command.agent.cycle.reverse.description": "Canvia a l'agent anterior", @@ -168,12 +168,12 @@ export const dict = { "command.permissions.autoaccept.disable": "Atura l'acceptació automàtica de permisos", "command.workspace.toggle": "Commuta els espais de treball", "command.workspace.toggle.description": "Activa o desactiva diversos espais de treball a la barra lateral", - "command.session.undo": "Desfer", + "command.session.undo": "Desfés", "command.session.undo.description": "Desfer l'últim missatge", - "command.session.redo": "Refer", + "command.session.redo": "Refés", "command.session.redo.description": "Torna a fer l'últim missatge desfet", "command.session.compact": "Sessió compacta", - "command.session.compact.description": "Resumeix la sessió per reduir la mida del context", + "command.session.compact.description": "Resumeix la sessió per a reduir la mida del context", "command.session.fork": "Bifurcació del missatge", "command.session.fork.description": "Crea una sessió nova a partir d'un missatge anterior", "command.session.share": "Compartir sessió", @@ -191,12 +191,12 @@ export const dict = { "dialog.provider.empty": "No s'han trobat proveïdors", "dialog.provider.group.popular": "Popular", "dialog.provider.group.other": "Altres", - "dialog.provider.custom.label": "Proveïdor personalitzat compatible amb OpenAI.", + "dialog.provider.custom.label": "Proveïdor personalitzat compatible amb OpenAI", "dialog.provider.tag.recommended": "Recomanat", "dialog.provider.opencode.note": "Models seleccionats que inclouen Claude, GPT, Gemini i més", "dialog.provider.opencode.tagline": "Models optimitzats fiables", "dialog.provider.opencodeGo.tagline": "Subscripció de baix cost per a tothom", - "dialog.provider.anthropic.note": "Accés directe a Claude models, inclosos Pro i Max", + "dialog.provider.anthropic.note": "Accés directe als models de Claude, inclosos Pro i Max", "dialog.provider.copilot.note": "Models d'IA per a l'assistència de codificació mitjançant GitHub Copilot", "dialog.provider.openai.note": "GPT models per a tasques d'IA generals ràpides i capaces", "dialog.provider.google.note": "Gemini models per a respostes ràpides i estructurades", @@ -215,28 +215,28 @@ export const dict = { "provider.connect.title": "Connecta {{provider}}", "provider.connect.title.anthropicProMax": "Inicieu sessió amb Claude Pro/Max", "provider.connect.selectMethod": "Seleccioneu el mètode d'inici de sessió per a {{provider}}.", - "provider.connect.method.apiKey": "tecla API.", + "provider.connect.method.apiKey": "Clau API", "provider.connect.method.browser": "Navegador", "provider.connect.method.headless": "Sense cap", "provider.connect.status.inProgress": "Autorització en curs...", "provider.connect.status.waiting": "Esperant l'autorització...", "provider.connect.status.failed": "L'autorització ha fallat: {{error}}", "provider.connect.apiKey.description": - "Introduïu la clau API de {{provider}} per connectar el compte i utilitzar els models de {{provider}} a OpenCode.", + "Introduïu la clau API de {{provider}} per a connectar el compte i utilitzar els models de {{provider}} a OpenCode.", "provider.connect.apiKey.label": "Tecla {{provider}} API.", - "provider.connect.apiKey.placeholder": "tecla API.", + "provider.connect.apiKey.placeholder": "Clau API", "provider.connect.apiKey.required": "La clau API és necessària", "provider.connect.opencodeZen.line1": "OpenCode Zen us ofereix accés a un conjunt seleccionat de models optimitzats fiables per a agents de codificació.", "provider.connect.opencodeZen.line2": - "Amb una sola tecla API tindreu accés a models com ara Claude, GPT, Gemini, GLM i més.", + "Amb una sola clau API tindreu accés a models com ara Claude, GPT, Gemini, GLM i més.", "provider.connect.opencodeZen.visit.prefix": "Visita ", "provider.connect.opencodeZen.visit.link": "opencode.ai/zen", - "provider.connect.opencodeZen.visit.suffix": " per recollir la teva clau API.", + "provider.connect.opencodeZen.visit.suffix": " per a recollir la clau API.", "provider.connect.oauth.code.visit.prefix": "Visita ", "provider.connect.oauth.code.visit.link": "aquest enllaç", "provider.connect.oauth.code.visit.suffix": - " per recollir el vostre codi d'autorització per connectar el vostre compte i utilitzar {{provider}} models a OpenCode.", + " per a recollir el codi d'autorització, connectar el compte i utilitzar els models de {{provider}} a OpenCode.", "provider.connect.oauth.code.label": "{{method}} codi d'autorització", "provider.connect.oauth.code.placeholder": "Codi d'autorització", "provider.connect.oauth.code.required": "Cal un codi d'autorització", @@ -244,14 +244,14 @@ export const dict = { "provider.connect.oauth.auto.visit.prefix": "Visita ", "provider.connect.oauth.auto.visit.link": "aquest enllaç", "provider.connect.oauth.auto.visit.suffix": - " i introduïu el codi següent per connectar el vostre compte i utilitzar {{provider}} models a OpenCode.", + " i introduïu el codi següent per a connectar el compte i utilitzar els models de {{provider}} a OpenCode.", "provider.connect.oauth.auto.confirmationCode": "Codi de confirmació", "provider.connect.toast.connected.title": "{{provider}} connectat", "provider.connect.toast.connected.description": "{{provider}} ara es poden utilitzar models.", "provider.custom.title": "Proveïdor personalitzat", "provider.custom.unavailable": "Els proveïdors personalitzats no estan disponibles en aquest servidor", - "provider.custom.description.prefix": "Configureu un proveïdor compatible amb OpenAI. Veure el ", - "provider.custom.description.link": "documents de configuració del proveïdor", + "provider.custom.description.prefix": "Configureu un proveïdor compatible amb OpenAI. Vegeu la ", + "provider.custom.description.link": "documentació de configuració del proveïdor", "provider.custom.description.suffix": ".", "provider.custom.field.providerID.label": "Proveïdor ID", "provider.custom.field.providerID.placeholder": "myprovider", @@ -260,8 +260,8 @@ export const dict = { "provider.custom.field.name.placeholder": "El meu proveïdor d'IA", "provider.custom.field.baseURL.label": "URL base", "provider.custom.field.baseURL.placeholder": "https://api.myprovider.com/v1", - "provider.custom.field.apiKey.label": "tecla API.", - "provider.custom.field.apiKey.placeholder": "tecla API.", + "provider.custom.field.apiKey.label": "Clau API", + "provider.custom.field.apiKey.placeholder": "Clau API", "provider.custom.field.apiKey.description": "Opcional. Deixeu-lo en blanc si gestioneu l'autenticació mitjançant les capçaleres.", "provider.custom.models.label": "Models", @@ -312,10 +312,10 @@ export const dict = { "common.search.placeholder": "Cerca", "common.goBack": "Navega enrere", "common.goForward": "Navega cap endavant", - "common.loading": "Carregant", + "common.loading": "S'està carregant", "common.loading.ellipsis": "...", "common.cancel": "Cancel·la", - "common.clear": "Clar", + "common.clear": "Neteja", "common.open": "Obert", "common.connect": "Connecta't", "common.disconnect": "Desconnecta", @@ -326,44 +326,44 @@ export const dict = { "common.default": "Per defecte", "common.attachment": "adjunt", "prompt.placeholder.shell": "Introduïu una ordre de l'intèrpret d'ordres... {{example}}", - "prompt.placeholder.normal": 'Pregunta qualsevol cosa... "{{example}}"', + "prompt.placeholder.normal": 'Pregunteu qualsevol cosa... "{{example}}"', "prompt.placeholder.simple": "Pregunta qualsevol cosa...", "prompt.placeholder.summarizeComments": "Resum dels comentaris...", "prompt.placeholder.summarizeComment": "Resumeix el comentari...", "prompt.mode.shell": "Shell", "prompt.mode.normal": "Indicació", - "prompt.mode.shell.exit": "esc per sortir", + "prompt.mode.shell.exit": "esc per a sortir", "session.child.promptDisabled": "No es poden demanar sessions de subagent.", "session.child.backToParent": "Torna a la sessió principal.", - "prompt.example.1": "Arregleu una TODO a la base de codi", + "prompt.example.1": "Arregla un TODO a la base de codi", "prompt.example.2": "Quina és la pila tecnològica d'aquest projecte?", - "prompt.example.3": "Arreglar les proves trencades", + "prompt.example.3": "Arregla les proves que fallen", "prompt.example.4": "Explica com funciona l'autenticació", - "prompt.example.5": "Trobeu i solucioneu les vulnerabilitats de seguretat", - "prompt.example.6": "Afegiu proves unitàries per al servei d'usuari", - "prompt.example.7": "Refactoritza aquesta funció per ser més llegible", + "prompt.example.5": "Troba i corregeix les vulnerabilitats de seguretat", + "prompt.example.6": "Afegeix proves unitàries per al servei d'usuaris", + "prompt.example.7": "Refactoritza aquesta funció perquè sigui més llegible", "prompt.example.8": "Què significa aquest error?", - "prompt.example.9": "Ajudeu-me a depurar aquest problema", - "prompt.example.10": "Genera API documentació", - "prompt.example.11": "Optimitzar les consultes a la base de dades", - "prompt.example.12": "Afegiu la validació d'entrada", - "prompt.example.13": "Crea un component nou per...", - "prompt.example.14": "Com implemento aquest projecte?", - "prompt.example.15": "Revisa el meu codi per conèixer les pràctiques recomanades", - "prompt.example.16": "Afegiu la gestió d'errors a aquesta funció", - "prompt.example.17": "Expliqueu aquest patró d'expressió regular", + "prompt.example.9": "Ajuda'm a depurar aquest problema", + "prompt.example.10": "Genera la documentació de l'API", + "prompt.example.11": "Optimitza les consultes a la base de dades", + "prompt.example.12": "Afegeix validació d'entrada", + "prompt.example.13": "Crea un component nou per a...", + "prompt.example.14": "Com desplego aquest projecte?", + "prompt.example.15": "Revisa el meu codi segons les pràctiques recomanades", + "prompt.example.16": "Afegeix gestió d'errors a aquesta funció", + "prompt.example.17": "Explica aquest patró d'expressió regular", "prompt.example.18": "Converteix això a TypeScript", - "prompt.example.19": "Afegiu registres a tota la base de codi", + "prompt.example.19": "Afegeix registres a tota la base de codi", "prompt.example.20": "Quines dependències estan obsoletes?", - "prompt.example.21": "Ajudeu-me a escriure un script de migració", - "prompt.example.22": "Implementeu la memòria cau per a aquest punt final", + "prompt.example.21": "Ajuda'm a escriure un script de migració", + "prompt.example.22": "Implementa la memòria cau per a aquest punt final", "prompt.example.23": "Afegeix la paginació a aquesta llista", - "prompt.example.24": "Creeu una ordre CLI per...", + "prompt.example.24": "Crea una ordre de CLI per a...", "prompt.example.25": "Com funcionen les variables d'entorn aquí?", "prompt.popover.emptyResults": "No hi ha resultats coincidents", "prompt.popover.emptyCommands": "No hi ha ordres coincidents", "prompt.dropzone.label": "Deixa anar imatges, PDFs o fitxers de text aquí", - "prompt.dropzone.file.label": "Aneu al fitxer @menció", + "prompt.dropzone.file.label": "Deixeu anar el fitxer per a @mencionar-lo", "prompt.slash.badge.custom": "costum", "prompt.slash.badge.skill": "habilitat", "prompt.slash.badge.mcp": "mcp", @@ -378,16 +378,16 @@ export const dict = { "prompt.menu.context": "Context", "prompt.menu.shellCommand": "Ordre de l'intèrpret d'ordres", "prompt.attachment.remove": "Elimina el fitxer adjunt", - "prompt.action.send": "Enviar", - "prompt.action.stop": "Atureu-vos", + "prompt.action.send": "Envia", + "prompt.action.stop": "Atura", "prompt.toast.pasteUnsupported.title": "Fitxer adjunt no compatible", "prompt.toast.pasteUnsupported.description": "Aquí només es poden adjuntar imatges, PDFs o fitxers de text.", "prompt.toast.attachmentDuplicate.title": "Aquest fitxer ja s'ha penjat", "prompt.toast.modelAgentRequired.title": "Seleccioneu un agent i un model", - "prompt.toast.modelAgentRequired.description": "Trieu un agent i un model abans d'enviar una sol·licitud.", + "prompt.toast.modelAgentRequired.description": "Trieu un agent i un model abans d'enviar una indicació.", "prompt.toast.worktreeCreateFailed.title": "No s'ha pogut crear l'arbre de treball", "prompt.toast.sessionCreateFailed.title": "No s'ha pogut crear la sessió", - "prompt.toast.shellSendFailed.title": "No s'ha pogut enviar l'ordre del shell", + "prompt.toast.shellSendFailed.title": "No s'ha pogut enviar l'ordre de l'intèrpret d'ordres", "prompt.toast.commandSendFailed.title": "No s'ha pogut enviar l'ordre", "prompt.toast.promptSendFailed.title": "No s'ha pogut enviar la sol·licitud", "prompt.toast.promptSendFailed.description": "No es pot recuperar la sessió", @@ -400,12 +400,12 @@ export const dict = { "mcp.status.failed": "fracassat", "mcp.status.needs_auth": "necessita autenticació", "mcp.status.disabled": "discapacitat", - "mcp.auth.clickToAuthenticate": "Feu clic per autenticar-vos", - "dialog.fork.empty": "No hi ha missatges per bifurcar", + "mcp.auth.clickToAuthenticate": "Feu clic per a autenticar-vos", + "dialog.fork.empty": "No hi ha missatges per a bifurcar", "dialog.directory.search.placeholder": "Cerca carpetes", "dialog.directory.empty": "No s'han trobat carpetes", - "dialog.directory.action.selectFile": "Seleccioneu el fitxer", - "dialog.directory.action.selectFolder": "Seleccioneu la carpeta", + "dialog.directory.action.selectFile": "Selecciona el fitxer", + "dialog.directory.action.selectFolder": "Selecciona la carpeta", "dialog.directory.root": "Arrel", "dialog.directory.parent": "Pare", "dialog.directory.readError": "No es pot llegir aquesta carpeta", @@ -413,7 +413,7 @@ export const dict = { "app.server.retrying": "S'està tornant a provar automàticament...", "app.server.otherServers": "Altres servidors", "dialog.server.title": "Servidors", - "dialog.server.description": "Canvia a quin OpenCode servidor es connecta aquesta aplicació.", + "dialog.server.description": "Canvia a quin servidor d'OpenCode es connecta aquesta aplicació.", "dialog.server.search.placeholder": "Servidors de cerca", "dialog.server.empty": "Encara no hi ha servidors", "dialog.server.add.title": "Afegeix servidor", @@ -434,7 +434,7 @@ export const dict = { "Connecteu-vos a aquest servidor en iniciar l'aplicació en lloc d'iniciar un servidor local. Requereix reinici.", "dialog.server.default.none": "No s'ha seleccionat cap servidor", "dialog.server.default.set": "Estableix el servidor actual com a predeterminat", - "dialog.server.default.clear": "Clar", + "dialog.server.default.clear": "Neteja", "dialog.server.action.remove": "Elimina el servidor", "dialog.server.menu.edit": "Edita", "dialog.server.menu.default": "Estableix com a predeterminat", @@ -448,19 +448,19 @@ export const dict = { "wsl.server.menu.label": "WSL servidor", "wsl.server.retryStart": "Torna a intentar començar", "wsl.server.updating": "S'està actualitzant...", - "wsl.onboarding.step.distro": "Trieu la distribució", + "wsl.onboarding.step.distro": "Tria la distribució", "wsl.onboarding.step.opencode": "OpenCode", "wsl.onboarding.checkingRuntime": "S'està comprovant WSL...", - "wsl.onboarding.restartRequired": "Windows necessita un reinici per acabar la instal·lació WSL.", + "wsl.onboarding.restartRequired": "Windows necessita un reinici per a acabar d'instal·lar WSL.", "wsl.onboarding.ready": "WSL està llest.", - "wsl.onboarding.required": "WSL és necessari per continuar.", + "wsl.onboarding.required": "WSL és necessari per a continuar.", "wsl.onboarding.checkingDistros": "S'estan comprovant les distribucions...", "wsl.onboarding.installingDistro": "S'està instal·lant {{distro}}...", "wsl.onboarding.checkingDistro": "S'està comprovant {{distro}}...", "wsl.onboarding.listingDistros": "Llistat de distribucions...", "wsl.onboarding.distroReady": "{{distro}} està llest.", "wsl.onboarding.distroNotInstalled": "{{distro}} encara no està instal·lat.", - "wsl.onboarding.openDistroOnce": "Obriu {{distro}} una vegada per acabar la configuració.", + "wsl.onboarding.openDistroOnce": "Obriu {{distro}} una vegada per a acabar la configuració.", "wsl.onboarding.finishingDistro": "S'està acabant la configuració de {{distro}}.", "wsl.onboarding.pickDistro": "Trieu una distribució o instal·leu-ne una a continuació.", "wsl.onboarding.checkingOpencode": "S'està comprovant OpenCode...", @@ -468,16 +468,16 @@ export const dict = { "wsl.onboarding.updatingOpencode": "S'està actualitzant OpenCode...", "wsl.onboarding.updatingOpencodeIn": "S'està actualitzant OpenCode a {{distro}}...", "wsl.onboarding.updateOpencodeIn": "Actualitza OpenCode a {{distro}}.", - "wsl.onboarding.updateOpencode": "Actualització OpenCode", + "wsl.onboarding.updateOpencode": "Actualitza OpenCode", "wsl.onboarding.opencodeReadyIn": "OpenCode està llest a {{distro}}.", "wsl.onboarding.opencodeReady": "OpenCode està llest.", "wsl.onboarding.installOpencodeIn": "Instal·leu OpenCode a {{distro}}.", "wsl.onboarding.installOpencode": "Instal·la OpenCode", "wsl.onboarding.chooseDistroFirst": "Trieu primer una distribució.", "wsl.onboarding.loadFailed": "No s'ha pogut carregar l'estat WSL.", - "wsl.onboarding.loading": "Carregant...", + "wsl.onboarding.loading": "S'està carregant...", "wsl.onboarding.installedDistros": "Distribucions instal·lades", - "wsl.onboarding.checkAgain": "Comproveu de nou", + "wsl.onboarding.checkAgain": "Comprova de nou", "wsl.onboarding.distroStatus.ready": "A punt", "wsl.onboarding.distroStatus.checking": "S'està comprovant...", "wsl.onboarding.distroStatus.opencodeMissing": "OpenCode no instal·lat", @@ -492,14 +492,14 @@ export const dict = { "wsl.onboarding.wslUnavailable.description": "OpenCode no ha pogut verificar WSL en aquesta màquina.", "wsl.onboarding.installWsl": "Instal·la WSL", "wsl.onboarding.windowsRestartRequired": - "Reinicieu Windows per acabar d'instal·lar WSL i, a continuació, torneu a obrir OpenCode.", + "Reinicieu Windows per a acabar d'instal·lar WSL i, a continuació, torneu a obrir OpenCode.", "wsl.onboarding.next": "A continuació", "wsl.onboarding.refresh": "Actualitza", "wsl.onboarding.allDistrosAdded": "Totes les distribucions instal·lades ja s'han afegit.", "wsl.onboarding.noDistros": "Encara no s'ha detectat cap distribució.", - "wsl.onboarding.install": "Instal·lar", + "wsl.onboarding.install": "Instal·la", "wsl.onboarding.installing": "S'està instal·lant...", - "wsl.onboarding.installDistro": "Instal·leu la distribució", + "wsl.onboarding.installDistro": "Instal·la la distribució", "wsl.onboarding.searchDistros": "Cerca distribucions", "wsl.onboarding.wsl2Required": "WSL Es requereix 2.", "wsl.onboarding.toolsRequired": "Aquesta distribució necessita bash i curl.", @@ -512,14 +512,14 @@ export const dict = { "wsl.onboarding.versionMismatch": "La versió instal·lada no coincideix amb la versió de l'aplicació d'escriptori.", "wsl.onboarding.adding": "S'està afegint...", "help.tabs.toast.ariaLabel": - "Presentació de les pestanyes. Organitza el teu treball i les sessions actives amb pestanyes", + "Presentació de les pestanyes. Organitzeu la feina i les sessions actives amb pestanyes", "help.tabs.toast.dismiss": "Ignora la informació de les pestanyes", "help.tabs.title": "Presentació de les pestanyes", - "help.tabs.description": "Organitza el teu treball i les sessions actives amb pestanyes", + "help.tabs.description": "Organitzeu la feina i les sessions actives amb pestanyes", "help.tabs.date": "14 de juliol", "help.tabs.introduction": "OpenCode L'escriptori ara està construït al voltant de pestanyes.", "help.tabs.sessions": - "Inicieu una sessió nova en una pestanya o obriu una sessió existent des de qualsevol dels vostres projectes. Obre una pestanya nova quan comencis una cosa nova i tanca-la quan hagis acabat.", + "Inicieu una sessió nova en una pestanya o obriu una sessió existent des de qualsevol dels vostres projectes. Obriu una pestanya nova quan comenceu una cosa nova i tanqueu-la quan hàgiu acabat.", "help.tabs.organize": "Mantenir unes quantes pestanyes obertes facilita l'organització de les sessions actives. Canvieu el nom de les pestanyes a alguna cosa memorable si teniu previst mantenir-les.", "help.tabs.home": @@ -535,21 +535,21 @@ export const dict = { "dialog.project.edit.icon.hint": "Feu clic o arrossegueu una imatge", "dialog.project.edit.icon.recommended": "Recomanat: 128x128px", "dialog.project.edit.color": "Color", - "dialog.project.edit.color.select": "Seleccioneu el color {{color}}.", + "dialog.project.edit.color.select": "Selecciona el color {{color}}", "dialog.project.edit.worktree.startup": "Script d'inici de l'espai de treball", "dialog.project.edit.worktree.startup.description": "S'executa després de crear un nou espai de treball (worktree).", "dialog.project.edit.worktree.startup.placeholder": "p. ex. bun install", "dialog.releaseNotes.action.getStarted": "Comença", - "dialog.releaseNotes.action.next": "A continuació", - "dialog.releaseNotes.action.hideFuture": "No mostris aquestes en el futur", - "dialog.releaseNotes.media.alt": "Allibera la vista prèvia", + "dialog.releaseNotes.action.next": "Següent", + "dialog.releaseNotes.action.hideFuture": "No ho tornis a mostrar", + "dialog.releaseNotes.media.alt": "Vista prèvia de la versió", "context.breakdown.title": "Desglossament del context", "context.breakdown.note": - "Desglossament aproximat de fitxes d'entrada. \"Altres\" inclou definicions d'eines i despeses generals.", + "Desglossament aproximat dels tokens d'entrada. «Altres» inclou les definicions de les eines i la sobrecàrrega.", "context.breakdown.system": "Sistema", "context.breakdown.user": "Usuari", "context.breakdown.assistant": "Assistent", - "context.breakdown.tool": "Trucades d'eines", + "context.breakdown.tool": "Crides d'eines", "context.breakdown.other": "Altres", "context.systemPrompt.title": "Indicació del sistema", "context.rawMessages.title": "Missatges crus", @@ -559,22 +559,22 @@ export const dict = { "context.stats.provider": "Proveïdor", "context.stats.model": "Model", "context.stats.limit": "Límit de context", - "context.stats.totalTokens": "Total de fitxes", + "context.stats.totalTokens": "Total de tokens", "context.stats.usage": "Ús", - "context.stats.inputTokens": "Fitxes d'entrada", - "context.stats.outputTokens": "Fitxes de sortida", - "context.stats.reasoningTokens": "Fitxes de raonament", - "context.stats.cacheTokens": "Fitxes de memòria cau (lectura/escriptura)", + "context.stats.inputTokens": "Tokens d'entrada", + "context.stats.outputTokens": "Tokens de sortida", + "context.stats.reasoningTokens": "Tokens de raonament", + "context.stats.cacheTokens": "Tokens de memòria cau (lectura/escriptura)", "context.stats.userMessages": "Missatges d'usuari", - "context.stats.assistantMessages": "Missatges de l'Assistent", + "context.stats.assistantMessages": "Missatges de l'assistent", "context.stats.totalCost": "Cost total", "context.stats.sessionCreated": "Sessió creada", - "context.stats.lastActivity": "Última Activitat", - "context.usage.tokens": "Fitxes", + "context.stats.lastActivity": "Última activitat", + "context.usage.tokens": "Tokens", "context.usage.usage": "Ús", "context.usage.cost": "Cost", - "context.usage.clickToView": "Feu clic per veure el context", - "context.usage.view": "Veure l'ús del context", + "context.usage.clickToView": "Feu clic per a veure el context", + "context.usage.view": "Mostra l'ús del context", "language.en": "Anglès", "language.zh": "简体中文", "language.zht": "繁體中文", @@ -606,7 +606,7 @@ export const dict = { "toast.permissions.autoaccept.off.title": "S'ha aturat l'acceptació automàtica de permisos", "toast.permissions.autoaccept.off.description": "Les sol·licituds de permís requeriran aprovació", "toast.model.none.title": "No s'ha seleccionat cap model", - "toast.model.none.description": "Connecteu un proveïdor per resumir aquesta sessió", + "toast.model.none.description": "Connecteu un proveïdor per a resumir aquesta sessió", "toast.file.loadFailed.title": "No s'ha pogut carregar el fitxer", "toast.file.listFailed.title": "No s'han pogut llistar els fitxers", "toast.context.noLineSelection.title": "Sense selecció de línia", @@ -627,26 +627,26 @@ export const dict = { "toast.session.listFailed.title": "No s'han pogut carregar les sessions de {{project}}", "toast.project.reloadFailed.title": "No s'ha pogut tornar a carregar {{project}}", "toast.update.title": "Actualització disponible", - "toast.update.description": "Una nova versió de OpenCode ({{version}}) ja està disponible per instal·lar-la.", - "toast.update.action.installRestart": "Instal·leu i reinicieu", + "toast.update.description": "Ja hi ha disponible una versió nova d'OpenCode ({{version}}) per a instal·lar-la.", + "toast.update.action.installRestart": "Instal·la i reinicia", "toast.update.action.notYet": "Encara no", "error.page.title": "Alguna cosa va fallar", "error.page.description": "S'ha produït un error en carregar l'aplicació.", "error.page.description.localServerStartup": "S'ha produït un error en iniciar el servidor local.", "error.page.details.label": "Detalls de l'error", - "error.page.action.restart": "Reinicieu", + "error.page.action.restart": "Reinicia", "error.page.action.report": "Informa d'un error", "error.page.action.reported": "S'ha informat d'un error", "error.page.action.exportLogs": "Exporta registres", "error.page.action.checking": "S'està comprovant...", - "error.page.action.checkUpdates": "Comproveu si hi ha actualitzacions", + "error.page.action.checkUpdates": "Comprova si hi ha actualitzacions", "error.page.action.updateTo": "Actualitza a {{version}}", "error.page.circular": "[Circular]", - "error.page.report.prefix": "Informeu aquest error a l'equip OpenCode.", + "error.page.report.prefix": "Informeu d'aquest error a l'equip d'OpenCode", "error.page.report.discord": "a Discord", "error.page.version": "Versió: {{version}}", "error.dev.rootNotFound": - "No s'ha trobat l'element arrel. T'has oblidat d'afegir-lo al teu index.html? O potser l'atribut id s'ha escrit malament?", + "No s'ha trobat l'element arrel. Us heu oblidat d'afegir-lo a l'index.html? O potser l'atribut id està mal escrit?", "error.serverSync.connectFailed": "No s'ha pogut connectar al servidor. Hi ha un servidor en funcionament a `{{url}}`?", "error.serverSDK.noServerAvailable": "No hi ha servidor disponible", @@ -665,7 +665,7 @@ export const dict = { "error.chain.responseBody": "Òrgan de resposta:\n{{body}}", "error.chain.didYouMean": "Volíeu dir: {{suggestions}}", "error.chain.modelNotFound": "No s'ha trobat el model: {{provider}}/{{model}}", - "error.chain.checkConfig": "Comproveu els noms del vostre proveïdor/model de configuració (opencode.json).", + "error.chain.checkConfig": "Comproveu els noms de proveïdor/model de la configuració (opencode.json)", "error.chain.mcpFailed": 'El servidor MCP "{{name}}" ha fallat. Tingueu en compte que OpenCode encara no admet l\'autenticació MCP.', "error.chain.providerAuthFailed": "L'autenticació del proveïdor ha fallat ({{provider}}): {{message}}", @@ -700,12 +700,12 @@ export const dict = { "home.sessions.search.sessions": "Sessions", "home.sessions.search.noResults": "No s'han trobat sessions per a {{query}}", "home.sessions.empty": "Aquí encara no hi ha res", - "home.sessions.empty.description": "Crea una sessió per començar", + "home.sessions.empty.description": "Crea una sessió per a començar", "home.sessions.group.today": "Avui", "home.sessions.group.yesterday": "Ahir", "home.sessions.group.older": "Més vell", "home.providerTip": - "Connecteu-vos a més de 75 proveïdors per utilitzar altres models, inclosos Claude, GPT, Gemini, etc.", + "Connecteu-vos a més de 75 proveïdors per a utilitzar altres models, inclosos Claude, GPT, Gemini, etc.", "session.tab.session": "Sessió", "session.tab.review": "Revisió", "session.tab.context": "Context", @@ -716,13 +716,13 @@ export const dict = { "session.error.notFound.closeTab": "Tanca la pestanya", "session.error.serverConnection": "No es pot connectar a aquest servidor", "session.review.filesChanged": "Fitxers canviats {{count}}", - "session.review.change.one": "Canviar", + "session.review.change.one": "Canvi", "session.review.change.other": "Canvis", "session.review.loadingChanges": "S'estan carregant els canvis...", "session.review.empty": "Encara no hi ha canvis en aquesta sessió", "session.review.noVcs": "No Git S'ha detectat el sistema de control de versions, els canvis no es mostren", - "session.review.noVcs.createGit.title": "Creeu un repositori Git.", - "session.review.noVcs.createGit.description": "Feu un seguiment, reviseu i desfer els canvis en aquest projecte", + "session.review.noVcs.createGit.title": "Creeu un repositori Git", + "session.review.noVcs.createGit.description": "Feu un seguiment, reviseu i desfeu els canvis d'aquest projecte", "session.review.noVcs.createGit.actionLoading": "S'està creant un repositori Git...", "session.review.noVcs.createGit.action": "Crea un repositori Git", "session.review.noSnapshot": @@ -730,19 +730,19 @@ export const dict = { "session.review.noChanges": "Sense canvis", "session.review.noUncommittedChanges": "Encara no hi ha canvis no compromesos", "session.review.noBranchChanges": "Encara no hi ha canvis de branca", - "session.files.selectToOpen": "Seleccioneu un fitxer per obrir", + "session.files.selectToOpen": "Seleccioneu un fitxer per a obrir-lo", "session.files.all": "Tots els fitxers", "session.files.empty": "No hi ha fitxers", "session.files.binaryContent": "Fitxer binari (el contingut no es pot mostrar)", "session.messages.renderEarlier": "Mostra missatges anteriors", "session.messages.loadingEarlier": "S'estan carregant missatges anteriors...", - "session.messages.loadEarlier": "Carregueu missatges anteriors", + "session.messages.loadEarlier": "Carrega els missatges anteriors", "session.messages.loading": "S'estan carregant els missatges...", "session.messages.jumpToLatest": "Ves a l'últim", "session.context.addToContext": "Afegeix {{selection}} al context", "session.todo.title": "Tots", "session.todo.collapse": "Col·lapse", - "session.todo.expand": "Expandir", + "session.todo.expand": "Expandeix", "session.todo.progress": "{{done}} de {{total}} tots completats", "session.question.progress": "{{current}} de {{total}} preguntes", "session.question.minimize": "Minimitzar la pregunta", @@ -756,12 +756,12 @@ export const dict = { "session.followupDock.sendNow": "Envia ara", "session.followupDock.edit": "Edita", "session.followupDock.collapse": "Replega els missatges a la cua", - "session.followupDock.expand": "Amplieu els missatges a la cua", + "session.followupDock.expand": "Expandeix els missatges de la cua", "session.revertDock.summary.one": "{{count}} missatge revertit", "session.revertDock.summary.other": "{{count}} missatges revertits", "session.revertDock.summary.many": "{{count}} missatges revertits", "session.revertDock.collapse": "Replega els missatges desfets", - "session.revertDock.expand": "Amplieu els missatges revertits", + "session.revertDock.expand": "Expandeix els missatges revertits", "session.revertDock.restore": "Restaura el missatge", "session.new.title": "Construeix qualsevol cosa", "session.new.project.new": "Nou projecte", @@ -770,7 +770,7 @@ export const dict = { "session.new.worktree.main": "Branca principal", "session.new.worktree.mainWithBranch": "Sucursal principal ({{branch}})", "session.new.worktree.create": "Crea un nou arbre de treball", - "session.new.workspace.runIn": "Executeu la sessió", + "session.new.workspace.runIn": "Executa la sessió a", "session.new.workspace.triggerLocal": "Local", "session.new.workspace.local": "Repositori local", "session.new.workspace.existing": "Espai de treball…", @@ -809,15 +809,15 @@ export const dict = { "status.popover.tab.lsp": "LSP", "status.popover.tab.plugins": "Connectors", "status.popover.action.manageServers": "Gestionar servidors", - "session.share.popover.title": "Publicar a la web", + "session.share.popover.title": "Publica al web", "session.share.popover.description.shared": "Aquesta sessió és pública a la web. És accessible per a qualsevol persona que tingui l'enllaç.", "session.share.popover.description.unshared": "Comparteix la sessió públicament al web. Serà accessible per a qualsevol persona que tingui l'enllaç.", "session.share.action.share": "Comparteix", - "session.share.action.publish": "Publicar", + "session.share.action.publish": "Publica", "session.share.action.publishing": "S'està publicant...", - "session.share.action.unpublish": "Despublicar", + "session.share.action.unpublish": "Deixa de publicar", "session.share.action.unpublishing": "S'està anul·lant la publicació...", "session.share.action.view": "Veure", "session.share.copy.copied": "Copiat", @@ -839,7 +839,7 @@ export const dict = { "titlebar.update": "Actualització", "titlebar.updateVersion": "Actualització {{version}}", "common.closeTab": "Tanca la pestanya", - "common.dismiss": "Descartar", + "common.dismiss": "Descarta", "common.moreCountSuffix": " (+{{count}} més)", "common.requestFailed": "La sol·licitud ha fallat", "common.moreOptions": "Més opcions", @@ -847,11 +847,11 @@ export const dict = { "common.rename": "Canvia el nom", "common.export": "Exporta", "common.reset": "Restableix", - "common.archive": "Arxiu", + "common.archive": "Arxiva", "common.delete": "Suprimeix", - "common.close": "Tancar", + "common.close": "Tanca", "common.edit": "Edita", - "common.loadMore": "Carregueu més", + "common.loadMore": "Carrega'n més", "common.key.esc": "ESC", "common.key.ctrl": "Ctrl", "common.key.alt": "Alt", @@ -880,12 +880,12 @@ export const dict = { "sidebar.workspaces.disable": "Desactivar els espais de treball", "sidebar.gettingStarted.title": "Per començar", "sidebar.gettingStarted.line1": "OpenCode inclou models gratuïts perquè pugueu començar immediatament.", - "sidebar.gettingStarted.line2": "Connecteu qualsevol proveïdor per utilitzar models, inc. Claude, GPT, Gemini etc.", + "sidebar.gettingStarted.line2": "Connecteu qualsevol proveïdor per a utilitzar models, inc. Claude, GPT, Gemini etc.", "sidebar.project.recentSessions": "Sessions recents", "sidebar.project.viewAllSessions": "Veure totes les sessions", "sidebar.project.clearNotifications": "Esborra les notificacions", "sidebar.empty.title": "No hi ha projectes oberts", - "sidebar.empty.description": "Obriu un projecte per començar", + "sidebar.empty.description": "Obriu un projecte per a començar", "debugBar.ariaLabel": "Diagnòstic de rendiment del desenvolupament", "debugBar.na": "n/a", "debugBar.nav.label": "NAV", @@ -924,7 +924,7 @@ export const dict = { "settings.tab.shortcuts": "Dreceres", "settings.desktop.section.wsl": "WSL", "settings.desktop.wsl.title": "WSL integració", - "settings.desktop.wsl.description": "Executeu el servidor OpenCode dins de WSL a Windows.", + "settings.desktop.wsl.description": "Executeu el servidor d'OpenCode dins de WSL a Windows.", "settings.general.section.appearance": "Aparença", "settings.general.section.advanced": "Avançat", "settings.general.section.notifications": "Notificacions del sistema", @@ -934,16 +934,16 @@ export const dict = { "settings.general.section.display": "Mostra", "settings.general.row.language.title": "Llengua", "settings.general.row.language.description": "Canvia l'idioma de visualització per a OpenCode", - "settings.general.row.shell.title": "Carcassa terminal", + "settings.general.row.shell.title": "Intèrpret d'ordres del terminal", "settings.general.row.shell.description": "Shell utilitzat pel terminal i les eines d'agent", "settings.general.row.shell.autoDefault": "Automàtic (per defecte)", "settings.general.row.shell.terminalOnly": "només terminal", "settings.general.row.appearance.title": "Aparença", - "settings.general.row.appearance.description": "Personalitza com es veu OpenCode al teu dispositiu", + "settings.general.row.appearance.description": "Personalitzeu com es veu OpenCode al vostre dispositiu", "settings.general.row.colorScheme.title": "Esquema de colors", "settings.general.row.colorScheme.description": "Trieu si OpenCode segueix el tema del sistema, clar o fosc", "settings.general.row.theme.title": "Tema", - "settings.general.row.theme.description": "Personalitza la temàtica de OpenCode.", + "settings.general.row.theme.description": "Personalitzeu el tema d'OpenCode.", "settings.general.row.font.title": "Font del codi", "settings.general.row.font.description": "Personalitzeu el tipus de lletra utilitzat als blocs de codi", "settings.general.row.terminalFont.title": "Tipus de lletra terminal", @@ -969,29 +969,29 @@ export const dict = { "settings.general.row.mobileTitlebarBottom.title": "Navegació inferior", "settings.general.row.mobileTitlebarBottom.description": "Col·loqueu la barra de títol i les pestanyes de sessió a la part inferior de la pantalla al mòbil", - "settings.general.row.showCustomAgents.title": "Agent d'espectacles", + "settings.general.row.showCustomAgents.title": "Mostra l'agent", "settings.general.row.showCustomAgents.description": "Canvia entre agents del compositor. Quan s'amaga, el valor predeterminat és Build agent.", "settings.general.row.reasoningSummaries.title": "Mostra resums de raonament", "settings.general.row.reasoningSummaries.description": "Mostra els resums de raonament del model a la línia de temps", - "settings.general.row.shellToolPartsExpanded.title": "Amplieu les peces de l'eina de closca", + "settings.general.row.shellToolPartsExpanded.title": "Expandeix les parts de l'eina d'intèrpret d'ordres", "settings.general.row.shellToolPartsExpanded.description": "Mostra les parts de l'eina d'intèrpret d'ordres ampliades per defecte a la línia de temps", - "settings.general.row.editToolPartsExpanded.title": "Amplieu les parts d'eina d'edició", + "settings.general.row.editToolPartsExpanded.title": "Expandeix les parts de l'eina d'edició", "settings.general.row.editToolPartsExpanded.description": "Mostra les parts de l'eina d'edició, escriptura i pedaç ampliades de manera predeterminada a la línia de temps", "settings.general.row.newInterface.title": "Nou disseny", "settings.general.row.newInterface.badge": "Nou", "settings.general.row.newInterface.description": - "Utilitzeu les noves pestanyes i el disseny de la casa. Canvia entre dissenys durant un temps limitat.", + "Utilitzeu les pestanyes noves i el disseny de la pantalla d'inici. Canvieu entre dissenys durant un temps limitat.", "settings.general.row.newInterfaceNotice.title": "Ara esteu utilitzant un disseny nou", "settings.general.row.newInterfaceNotice.description": "El disseny anterior ja no està disponible", - "settings.general.row.newInterfaceNotice.dismiss": "Descartar", - "settings.general.row.pinchZoom.title": "Pessigueu per fer zoom", + "settings.general.row.newInterfaceNotice.dismiss": "Descarta", + "settings.general.row.pinchZoom.title": "Pessigueu per a fer zoom", "settings.general.row.pinchZoom.description": "Permet que els gestos de pessigar el ratolí tàctil i de desplaçament Ctrl s'ampliïn", "settings.general.row.wayland.title": "Utilitza el nadiu Wayland", - "settings.general.row.wayland.description": "Desactiveu la alternativa X11 a Wayland. Requereix reinici.", + "settings.general.row.wayland.description": "Desactiveu l'alternativa X11 a Wayland. Requereix reinici.", "settings.general.row.wayland.tooltip": "A Linux amb monitors de freqüència de refresc mixta, el nadiu Wayland pot ser més estable.", "settings.general.row.releaseNotes.title": "Notes de publicació", @@ -1002,13 +1002,13 @@ export const dict = { "Comprova automàticament si hi ha actualitzacions quan s'iniciï OpenCode.", "settings.updates.row.check.title": "Comproveu si hi ha actualitzacions", "settings.updates.row.check.description": - "Comproveu manualment si hi ha actualitzacions i instal·leu si està disponible", - "settings.updates.action.checkNow": "Comproveu ara", + "Comproveu manualment si hi ha actualitzacions i instal·leu-les si n'hi ha", + "settings.updates.action.checkNow": "Comprova ara", "settings.updates.action.checking": "S'està comprovant...", "settings.updates.action.downloading": "S'està baixant...", "settings.updates.action.installing": "S'està instal·lant...", "settings.updates.toast.latest.title": "Estàs al dia", - "settings.updates.toast.latest.description": "Esteu executant la darrera versió de OpenCode.", + "settings.updates.toast.latest.description": "Esteu executant la darrera versió d'OpenCode.", "sound.option.none": "Cap", "sound.option.alert01": "Alerta 01", "sound.option.alert02": "Alerta 02", @@ -1091,7 +1091,7 @@ export const dict = { "settings.providers.connected.empty": "No hi ha proveïdors connectats", "settings.providers.connected.environmentDescription": "Connectat des de les vostres variables d'entorn", "settings.providers.section.popular": "Proveïdors populars", - "settings.providers.custom.description": "Afegiu un proveïdor compatible amb OpenAI per base URL.", + "settings.providers.custom.description": "Afegiu un proveïdor compatible amb OpenAI mitjançant l'URL base.", "settings.providers.tag.environment": "Medi ambient", "settings.providers.tag.config": "Config", "settings.providers.tag.custom": "Personalitzat", @@ -1110,7 +1110,7 @@ export const dict = { "settings.permissions.toast.updateFailed.title": "No s'han pogut actualitzar els permisos", "settings.permissions.action.allow": "Permetre", "settings.permissions.action.ask": "Pregunta", - "settings.permissions.action.deny": "Negar", + "settings.permissions.action.deny": "Denega", "settings.permissions.tool.read.title": "Llegeix", "settings.permissions.tool.read.description": "Llegint un fitxer (coincideix amb la ruta del fitxer)", "settings.permissions.tool.edit.title": "Edita", @@ -1123,14 +1123,14 @@ export const dict = { "settings.permissions.tool.list.title": "Llista", "settings.permissions.tool.list.description": "Llista els fitxers dins d'un directori", "settings.permissions.tool.bash.title": "Bash", - "settings.permissions.tool.bash.description": "Executeu ordres de shell", + "settings.permissions.tool.bash.description": "Executeu ordres de l'intèrpret d'ordres", "settings.permissions.tool.task.title": "Tasca", "settings.permissions.tool.task.description": "Llançar subagents", "settings.permissions.tool.skill.title": "Habilitat", "settings.permissions.tool.skill.description": "Carregueu una habilitat pel nom", "settings.permissions.tool.lsp.title": "LSP", - "settings.permissions.tool.lsp.description": "Executeu consultes del servidor d'idiomes", - "settings.permissions.tool.todowrite.title": "Tot Escriure", + "settings.permissions.tool.lsp.description": "Executeu consultes del servidor de llenguatge", + "settings.permissions.tool.todowrite.title": "todowrite", "settings.permissions.tool.todowrite.description": "Actualitzeu la llista de tasques", "settings.permissions.tool.webfetch.title": "Recollida web", "settings.permissions.tool.webfetch.description": "Obteniu contingut d'un URL", @@ -1139,7 +1139,7 @@ export const dict = { "settings.permissions.tool.external_directory.title": "Directori extern", "settings.permissions.tool.external_directory.description": "Accediu als fitxers fora del directori del projecte", "settings.permissions.tool.doom_loop.title": "Doom Loop", - "settings.permissions.tool.doom_loop.description": "Detecteu trucades d'eines repetides amb entrada idèntica", + "settings.permissions.tool.doom_loop.description": "Detecteu crides d'eines repetides amb la mateixa entrada", "session.delete.failed.title": "No s'ha pogut suprimir la sessió", "session.delete.title": "Suprimeix la sessió", "session.delete.confirm": 'Voleu suprimir la sessió "{{name}}"?', @@ -1149,10 +1149,10 @@ export const dict = { "workspace.type.sandbox": "caixa de sorra", "workspace.create.failed.title": "No s'ha pogut crear l'espai de treball", "workspace.delete.failed.title": "No s'ha pogut suprimir l'espai de treball", - "workspace.resetting.title": "Restabliment de l'espai de treball", + "workspace.resetting.title": "S'està restablint l'espai de treball", "workspace.resetting.description": "Això pot trigar un minut.", "workspace.reset.failed.title": "No s'ha pogut restablir l'espai de treball", - "workspace.reset.success.title": "Restabliment de l'espai de treball", + "workspace.reset.success.title": "S'ha restablert l'espai de treball", "workspace.reset.success.description": "L'espai de treball ara coincideix amb la branca predeterminada.", "workspace.error.stillPreparing": "L'espai de treball encara s'està preparant", "workspace.status.checking": "S'estan comprovant els canvis no combinats...", @@ -1163,7 +1163,7 @@ export const dict = { "workspace.delete.confirm": 'Voleu suprimir l\'espai de treball "{{name}}"?', "workspace.delete.button": "Suprimeix l'espai de treball", "workspace.reset.title": "Restableix l'espai de treball", - "workspace.reset.confirm": 'Restableix l\'espai de treball "{{name}}"?', + "workspace.reset.confirm": 'Voleu restablir l\'espai de treball "{{name}}"?', "workspace.reset.button": "Restableix l'espai de treball", "workspace.reset.archived.none": "No s'arxivarà cap sessió activa.", "workspace.reset.archived.one": "S'arxivarà 1 sessió.", diff --git a/packages/desktop/src/renderer/i18n/ca.ts b/packages/desktop/src/renderer/i18n/ca.ts index 534c64ae70b4..eef32c9eb606 100644 --- a/packages/desktop/src/renderer/i18n/ca.ts +++ b/packages/desktop/src/renderer/i18n/ca.ts @@ -1,17 +1,17 @@ export const dict = { - "desktop.menu.checkForUpdates": "Comproveu si hi ha actualitzacions...", - "desktop.menu.installCli": "Instal·la CLI...", - "desktop.menu.reloadWebview": "Torna a carregar Webview", + "desktop.menu.checkForUpdates": "Comprova si hi ha actualitzacions...", + "desktop.menu.installCli": "Instal·la la CLI...", + "desktop.menu.reloadWebview": "Torna a carregar el Webview", "desktop.menu.restart": "Reinicia", "desktop.dialog.chooseFolder": "Trieu una carpeta", "desktop.dialog.chooseFile": "Trieu un fitxer", "desktop.dialog.saveFile": "Desa el fitxer", - "desktop.updater.checkFailed.title": "La comprovació d'actualització ha fallat", + "desktop.updater.checkFailed.title": "La comprovació d'actualitzacions ha fallat", "desktop.updater.checkFailed.message": "No s'ha pogut comprovar si hi ha actualitzacions", "desktop.updater.none.title": "No hi ha cap actualització disponible", "desktop.updater.none.message": "Ja utilitzeu la versió més recent d'OpenCode", "desktop.updater.downloadFailed.title": "L'actualització ha fallat", - "desktop.updater.downloadFailed.message": "No s'ha pogut descarregar l'actualització", + "desktop.updater.downloadFailed.message": "No s'ha pogut baixar l'actualització", "desktop.updater.downloaded.title": "Actualització baixada", "desktop.updater.downloaded.prompt": "S'ha baixat la versió {{version}} d'OpenCode. Voleu instal·lar-la i reiniciar l'aplicació?", @@ -19,10 +19,10 @@ export const dict = { "desktop.updater.installFailed.message": "No s'ha pogut instal·lar l'actualització", "desktop.cli.installed.title": "CLI instal·lada", "desktop.cli.installed.message": - "CLI instal·lada a {{path}}\n\nReinicieu el terminal per utilitzar l'ordre 'opencode'.", + "CLI instal·lada a {{path}}\n\nReinicieu el terminal per a utilitzar l'ordre 'opencode'.", "desktop.cli.failed.title": "La instal·lació ha fallat", - "desktop.cli.failed.message": "No s'ha pogut instal·lar CLI: {{error}}", + "desktop.cli.failed.message": "No s'ha pogut instal·lar la CLI: {{error}}", "desktop.error.dev.rootNotFound": - "No s'ha trobat l'element arrel. T'has oblidat d'afegir-lo al teu index.html? O potser l'atribut id s'ha escrit malament?", + "No s'ha trobat l'element arrel. Us heu oblidat d'afegir-lo a l'index.html? O potser l'atribut id està mal escrit?", } diff --git a/packages/ui/src/i18n/ca.ts b/packages/ui/src/i18n/ca.ts index ca3d49b00395..353624e69bef 100644 --- a/packages/ui/src/i18n/ca.ts +++ b/packages/ui/src/i18n/ca.ts @@ -1,35 +1,35 @@ export const dict: Record = { - "ui.sessionReview.title": "Canvis de sessió", - "ui.sessionReview.title.git": "Canvis de Git", - "ui.sessionReview.title.branch": "Canvis de branca", + "ui.sessionReview.title": "Canvis de la sessió", + "ui.sessionReview.title.git": "Canvis del Git", + "ui.sessionReview.title.branch": "Canvis de la branca", "ui.sessionReview.title.lastTurn": "Canvis de l'últim torn", "ui.sessionReview.diffStyle.unified": "Unificat", "ui.sessionReview.diffStyle.split": "Dividit", - "ui.sessionReview.expandAll": "Ampliar-ho tot", - "ui.sessionReview.collapseAll": "Col·lapsa-ho tot", + "ui.sessionReview.expandAll": "Expandeix-ho tot", + "ui.sessionReview.collapseAll": "Redueix-ho tot", "ui.sessionReview.change.added": "Afegit", "ui.sessionReview.change.removed": "Eliminat", "ui.sessionReview.change.modified": "Modificat", - "ui.sessionReview.image.loading": "Carregant...", + "ui.sessionReview.image.loading": "S'està carregant...", "ui.sessionReview.image.placeholder": "Imatge", - "ui.sessionReview.largeDiff.title": "La diferència és massa gran per renderitzar-la", + "ui.sessionReview.largeDiff.title": "El diff és massa gran per a renderitzar-lo", "ui.sessionReview.largeDiff.meta": "Límit: {{limit}} línies canviades. Actual: {{current}} línies canviades.", - "ui.sessionReview.largeDiff.renderAnyway": "Renderitza de totes maneres", - "ui.sessionReviewV2.expandMode": "Amplia o redueix la diferència", - "ui.sessionReviewV2.filterFiles": "Filtrar fitxers", + "ui.sessionReview.largeDiff.renderAnyway": "Renderitza igualment", + "ui.sessionReviewV2.expandMode": "Expandeix o redueix el diff", + "ui.sessionReviewV2.filterFiles": "Filtra els fitxers", "ui.sessionReviewV2.toggleSidebar": "Commuta l'arbre de fitxers", "ui.sessionReviewV2.showAllLines": "Mostra totes les línies", "ui.sessionReviewV2.hideNonDiffLines": "Amaga les línies sense canvis", - "ui.sessionReviewV2.unifiedDiff": "Diferència unificada", + "ui.sessionReviewV2.unifiedDiff": "Diff unificat", "ui.sessionReviewV2.splitDiff": "Diff dividit", "ui.sessionReviewV2.previousFile": "Fitxer anterior", "ui.sessionReviewV2.nextFile": "Fitxer següent", "ui.sessionReviewV2.diffView": "Vista del diff", - "ui.sessionReviewV2.empty.noGit.title": "No hi ha canvis de seguiment", + "ui.sessionReviewV2.empty.noGit.title": "No hi ha canvis amb seguiment", "ui.sessionReviewV2.empty.noGit.description": "Feu el seguiment, reviseu i desfeu els canvis d'aquest projecte", "ui.sessionReviewV2.empty.noGit.action": "Crea un repositori Git", "ui.sessionReviewV2.empty.noGit.actionLoading": "S'està creant un repositori Git...", - "ui.sessionReviewV2.empty.changes.title": "Encara no hi ha canvis de fitxer", + "ui.sessionReviewV2.empty.changes.title": "Encara no hi ha canvis als fitxers", "ui.sessionReviewV2.empty.changes.description": "Els canvis del projecte apareixeran aquí", "ui.sessionReview.openFile": "Obre el fitxer", "ui.sessionReview.selection.line": "línia {{line}}", @@ -39,13 +39,13 @@ export const dict: Record = { "ui.fileMedia.state.removed": "S'ha eliminat el fitxer {{kind}}.", "ui.fileMedia.state.loading": "S'està carregant {{kind}}...", "ui.fileMedia.state.error": "No es pot carregar {{kind}}.", - "ui.fileMedia.state.unavailable": "{{kind}} previsualització no disponible.", + "ui.fileMedia.state.unavailable": "La previsualització de {{kind}} no està disponible.", "ui.fileMedia.binary.title": "Fitxer binari", "ui.fileMedia.binary.description.path": "{{path}} és binari.", "ui.fileMedia.binary.description.default": "Contingut binari", - "ui.lineComment.label.prefix": "Comenta ", + "ui.lineComment.label.prefix": "Comentari a ", "ui.lineComment.label.suffix": "", - "ui.lineComment.editorLabel.prefix": "Comentant ", + "ui.lineComment.editorLabel.prefix": "S'està comentant ", "ui.lineComment.editorLabel.suffix": "", "ui.lineComment.placeholder": "Afegeix un comentari", "ui.lineComment.contextPlaceholder": "Afegeix context per a aquest canvi", @@ -55,48 +55,48 @@ export const dict: Record = { "ui.sessionTurn.steps.hide": "Amaga els passos", "ui.sessionTurn.summary.response": "Resposta", "ui.sessionTurn.diff.showMore": "Mostra més canvis ({{count}})", - "ui.sessionTurn.diffs.changed.one": "{{count}} S'ha canviat el fitxer", - "ui.sessionTurn.diffs.changed.other": "{{count}} Fitxers canviats", + "ui.sessionTurn.diffs.changed.one": "{{count}} fitxer canviat", + "ui.sessionTurn.diffs.changed.other": "{{count}} fitxers canviats", "ui.sessionTurn.diffs.changed.many": "{{count}} fitxers canviats", "ui.sessionTurn.diffs.showAll": "Mostra-ho tot", - "ui.sessionTurn.diffs.showLess": "Mostra menys", + "ui.sessionTurn.diffs.showLess": "Mostra'n menys", "ui.sessionTurn.diffs.more": "+{{count}} fitxers més", - "ui.sessionTurn.retry.retrying": "tornant a provar", + "ui.sessionTurn.retry.retrying": "s'està tornant a provar", "ui.sessionTurn.retry.inSeconds": "en {{seconds}}s", "ui.sessionTurn.retry.attempt": "intent #{{attempt}}", "ui.sessionTurn.retry.attemptLine": "{{line}} - intent #{{attempt}}", - "ui.sessionTurn.retry.geminiHot": "Gemini està massa saturat ara mateix", + "ui.sessionTurn.retry.geminiHot": "el Gemini està massa saturat ara mateix", "ui.sessionTurn.error.freeUsageExceeded": "S'ha superat l'ús gratuït", "ui.sessionTurn.error.addCredits": "Afegeix crèdits", "dialog.usageExceeded.freeTier.title": "S'ha arribat al límit gratuït", "dialog.usageExceeded.freeTier.description": - "Subscriviu-vos a OpenCode Go per obtenir accés fiable als millors models de codi obert, a partir de 5 dòlars al mes.", + "Subscriviu-vos a OpenCode Go per a obtenir accés fiable als millors models de codi obert, a partir de 5 dòlars al mes.", "dialog.usageExceeded.freeTier.actionLabel": "Subscriu-te", "dialog.usageExceeded.accountRateLimit.title": "S'ha assolit el límit de Go", "dialog.usageExceeded.accountRateLimit.description": - "S'ha arribat al límit d'ús. Per continuar utilitzant aquest model ara, activeu l'ús des del vostre saldo disponible", + "S'ha arribat al límit d'ús. Per a continuar utilitzant aquest model ara, activeu l'ús des del saldo disponible", "dialog.usageExceeded.accountRateLimit.actionLabel": "Obre la configuració", - "ui.sessionTurn.status.delegating": "Delegació de feina", - "ui.sessionTurn.status.planning": "Planificant els propers passos", - "ui.sessionTurn.status.gatheringContext": "Explorant", - "ui.sessionTurn.status.gatheredContext": "Explorat", - "ui.sessionTurn.status.searchingCodebase": "Buscant la base de codi", - "ui.sessionTurn.status.searchingWeb": "Buscant a la web", - "ui.sessionTurn.status.makingEdits": "Fent edicions", - "ui.sessionTurn.status.runningCommands": "Execució d'ordres", - "ui.sessionTurn.status.thinking": "Pensant", - "ui.sessionTurn.status.thinkingWithTopic": "Pensant - {{topic}}", - "ui.sessionTurn.status.gatheringThoughts": "Recollint pensaments", - "ui.sessionTurn.status.consideringNextSteps": "Considerant els propers passos", + "ui.sessionTurn.status.delegating": "S'està delegant la feina", + "ui.sessionTurn.status.planning": "S'estan planificant els passos següents", + "ui.sessionTurn.status.gatheringContext": "S'està explorant", + "ui.sessionTurn.status.gatheredContext": "S'ha explorat", + "ui.sessionTurn.status.searchingCodebase": "S'està cercant a la base de codi", + "ui.sessionTurn.status.searchingWeb": "S'està cercant al web", + "ui.sessionTurn.status.makingEdits": "S'estan fent edicions", + "ui.sessionTurn.status.runningCommands": "S'estan executant ordres", + "ui.sessionTurn.status.thinking": "S'està pensant", + "ui.sessionTurn.status.thinkingWithTopic": "S'està pensant - {{topic}}", + "ui.sessionTurn.status.gatheringThoughts": "S'estan recollint els pensaments", + "ui.sessionTurn.status.consideringNextSteps": "S'estan considerant els passos següents", "ui.messagePart.diagnostic.error": "Error", "ui.messagePart.title.edit": "Edita", "ui.messagePart.title.write": "Escriu", - "ui.messagePart.option.typeOwnAnswer": "Escriu la teva pròpia resposta", - "ui.messagePart.review.title": "Revisa les teves respostes", - "ui.messagePart.questions.dismissed": "Preguntes desestimades", + "ui.messagePart.option.typeOwnAnswer": "Escriu una resposta pròpia", + "ui.messagePart.review.title": "Reviseu les respostes", + "ui.messagePart.questions.dismissed": "Preguntes descartades", "ui.messagePart.compaction": "Sessió compactada", - "ui.messagePart.context.read.one": "{{count}} llegir", - "ui.messagePart.context.read.other": "{{count}} llegeix", + "ui.messagePart.context.read.one": "{{count}} lectura", + "ui.messagePart.context.read.other": "{{count}} lectures", "ui.messagePart.context.read.many": "{{count}} lectures", "ui.messagePart.context.search.one": "{{count}} cerca", "ui.messagePart.context.search.other": "{{count}} cerques", @@ -104,32 +104,32 @@ export const dict: Record = { "ui.messagePart.context.list.one": "{{count}} llista", "ui.messagePart.context.list.other": "{{count}} llistes", "ui.messagePart.context.list.many": "{{count}} llistes", - "ui.list.loading": "Carregant", + "ui.list.loading": "S'està carregant", "ui.list.empty": "Sense resultats", - "ui.list.clearFilter": "Esborra el filtre", + "ui.list.clearFilter": "Neteja el filtre", "ui.list.emptyWithFilter.prefix": "No hi ha resultats per a", "ui.list.emptyWithFilter.suffix": "", - "ui.fileSearch.placeholder": "Troba", + "ui.fileSearch.placeholder": "Cerca", "ui.fileSearch.previousMatch": "Coincidència anterior", "ui.fileSearch.nextMatch": "Coincidència següent", "ui.fileSearch.close": "Tanca la cerca", - "ui.messageNav.newMessage": "Nou missatge", + "ui.messageNav.newMessage": "Missatge nou", "ui.promptInput.noMatchingItems": "No hi ha elements coincidents", "ui.promptInput.commands": "Ordres", - "ui.promptInput.dropFiles": "Deixeu fitxers per adjuntar-los", + "ui.promptInput.dropFiles": "Deixeu anar els fitxers per a adjuntar-los", "ui.promptInput.removeAttachment": "Elimina el fitxer adjunt", "ui.promptInput.label": "Indicació", "ui.promptInput.placeholder.shell": "Introduïu una ordre de l'intèrpret d'ordres...", - "ui.promptInput.placeholder.normal": "Pregunteu qualsevol cosa, {{slash}} per ordres, {{at}} per context...", + "ui.promptInput.placeholder.normal": "Pregunteu qualsevol cosa, {{slash}} per a ordres, {{at}} per a context...", "ui.promptInput.add": "Afegeix imatges i fitxers", "ui.promptInput.attachments": "Imatges i fitxers", "ui.promptInput.context": "Context", "ui.promptInput.shell": "Ordre de l'intèrpret d'ordres", - "ui.promptInput.chooseAgent": "Trieu un agent", + "ui.promptInput.chooseAgent": "Tria un agent", "ui.promptInput.chooseModel": "Tria el model", - "ui.promptInput.chooseVariant": "Trieu la variant del model", - "ui.promptInput.send": "Enviar", - "ui.promptInput.stop": "Atureu-vos", + "ui.promptInput.chooseVariant": "Tria la variant del model", + "ui.promptInput.send": "Envia", + "ui.promptInput.stop": "Atura", "ui.tabs.close": "Tanca la pestanya", "ui.textField.copyToClipboard": "Copia al porta-retalls", "ui.textField.copyLink": "Copia l'enllaç", @@ -144,19 +144,19 @@ export const dict: Record = { "ui.tool.task": "Tasca", "ui.tool.webfetch": "Webfetch", "ui.tool.websearch": "Cerca web", - "ui.tool.websearch.provider": "{{provider}} Cerca web", + "ui.tool.websearch.provider": "Cerca web de {{provider}}", "ui.tool.shell": "Shell", "ui.tool.patch": "Pedaç", - "ui.tool.todos": "Coses pendents", - "ui.tool.todos.read": "Llegir tasques pendents", + "ui.tool.todos": "Tasques pendents", + "ui.tool.todos.read": "Llegeix les tasques pendents", "ui.tool.questions": "Preguntes", "ui.tool.questions.numbered": "Preguntes {{number}}", - "ui.tool.agent": "{{type}} Agent", + "ui.tool.agent": "Agent {{type}}", "ui.tool.agent.default": "Agent", "ui.tool.skill": "Habilitat", - "ui.basicTool.called": "Es diu `{{tool}}`", + "ui.basicTool.called": "S'ha cridat `{{tool}}`", "ui.toolErrorCard.failed": "Ha fallat", - "ui.toolErrorCard.copyError": "Error de còpia", + "ui.toolErrorCard.copyError": "Copia l'error", "ui.common.file.one": "fitxer", "ui.common.file.other": "fitxers", "ui.common.question.one": "pregunta", @@ -166,18 +166,18 @@ export const dict: Record = { "ui.common.file": "Fitxer", "ui.common.back": "Enrere", "ui.common.cancel": "Cancel·la", - "ui.common.confirm": "Confirmeu", - "ui.common.dismiss": "Descartar", - "ui.common.close": "Tancar", - "ui.common.next": "A continuació", + "ui.common.confirm": "Confirma", + "ui.common.dismiss": "Descarta", + "ui.common.close": "Tanca", + "ui.common.next": "Següent", "ui.common.submit": "Envia", "ui.common.showMore": "Mostra'n més", - "ui.permission.deny": "Negar", - "ui.permission.allowAlways": "Permetre sempre", + "ui.permission.deny": "Denega", + "ui.permission.allowAlways": "Permet sempre", "ui.permission.allowOnce": "Permet una vegada", - "ui.message.expand": "Amplia el missatge", - "ui.message.collapse": "Replega el missatge", - "ui.message.copy": "Còpia", + "ui.message.expand": "Expandeix el missatge", + "ui.message.collapse": "Redueix el missatge", + "ui.message.copy": "Copia", "ui.message.copyMessage": "Copia el missatge", "ui.message.forkMessage": "Bifurca en una sessió nova", "ui.message.revertMessage": "Reverteix el missatge", @@ -188,14 +188,14 @@ export const dict: Record = { "ui.message.interrupted": "Interromput", "ui.message.queued": "En cua", "ui.message.attachment.alt": "adjunt", - "ui.patch.action.deleted": "S'ha suprimit", + "ui.patch.action.deleted": "Suprimit", "ui.patch.action.created": "Creat", "ui.patch.action.moved": "Mogut", - "ui.patch.action.patched": "Aplicat el pedaç", - "ui.question.subtitle.answered": "{{count}} va respondre", + "ui.patch.action.patched": "Apedaçat", + "ui.question.subtitle.answered": "{{count}} contestades", "ui.question.answer.none": "(sense resposta)", - "ui.question.review.notAnswered": "(no contestat)", + "ui.question.review.notAnswered": "(sense contestar)", "ui.question.multiHint": "Seleccioneu totes les respostes aplicables", "ui.question.singleHint": "Seleccioneu una resposta", - "ui.question.custom.placeholder": "Escriu la teva resposta...", + "ui.question.custom.placeholder": "Escriviu la resposta...", }