anomalyco / anomalyco/opencode
Catalan (ca) locale has systematic mistranslations
@Brendonovich is already working on this.
Since Aug 16, 2026.
- Dominant language
- TypeScript
- Stars
- 209k
- Forks
- 27.5k
- PR merge metrics
- PR metrics pending
Description
Description
I'm a native Catalan speaker. The ca locale added in #40992 has errors that go beyond
awkward phrasing — several strings say something different from the English.
| Key | English | Catalan | What it actually says |
|---|---|---|---|
ui.basicTool.called |
Called {{tool}} |
Es diu {{tool}} |
"It is named {{tool}}" — read as called = named, not invoked |
settings.general.row.showCustomAgents.title |
Show agent | Agent d'espectacles | "Entertainment agent" — show read as the noun |
command.agent.cycle |
Cycle agent | Agent de cicle | "Agent of cycle" — cycle read as the noun |
settings.general.row.shell.title |
Terminal shell | Carcassa terminal | "Terminal casing" — a physical enclosure, not the command interpreter |
settings.general.row.shellToolPartsExpanded.title |
Expand shell tool parts | ...l'eina de closca | "...the eggshell tool" |
settings.permissions.tool.todowrite.title |
todowrite | Tot Escriure | tool identifier translated word-by-word |
Three more mechanical problems:
shellis rendered five different ways in the same locale:Shell,shell,
intèrpret d'ordres,Carcassa,closca.webswitches gender inside a single popover:session.share.popover.titleand
...description.sharedsaya la web, while...description.unsharedsaysal web.workspace.resetting.title("Resetting workspace") andworkspace.reset.success.title
("Workspace reset") are bothRestabliment de l'espai de treball— in-progress and
completed states are indistinguishable.
There's also a consistent grammar issue. Catalan software convention (Softcatalà style guide,
Formes verbals) uses the singular imperative for menu/button labels and the vós plural for
messages addressed to the user. The locale mixes these arbitrarily — desktop.menu.restart is
even Reinicieu in packages/app and Reinicia in packages/desktop for the same key. Roughly
a dozen labels use the infinitive instead (Tancar, Enviar, Publicar, Desfer, Tallar),
which the guide rules out for commands outright. Bare
gerunds are used where Catalan requires S'està… (Buscant la base de codi → S'està cercant a la base de codi; buscar is also a castellanism for cercar).
One likely root cause: there's no .opencode/glossary/ca.md, so .opencode/command/translate.md
had no locale guidance for Catalan, unlike the 16 locales that do have one.
Happy to open a PR fixing the three ca.ts files and adding a ca.md glossary grounded in the
Softcatalà style guide and cross-checked against the Catalan translation memories for KDE, GNOME,
LibreOffice, Chromium and Git. Let me know if you'd prefer that split across separate PRs.
Plugins
No response
OpenCode version
Strings quoted from the current dev branch — packages/app/src/i18n/ca.ts, packages/ui/src/i18n/ca.ts, packages/desktop/src/renderer/i18n/ca.ts
Steps to reproduce
- Set the interface language to Catalan
- Compare the keys listed above with their counterparts in
packages/app/src/i18n/en.ts
Screenshot and/or share link
No response
Operating System
Any — the strings are locale file contents
Terminal
No response
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.