anomalyco / anomalyco/opencode

Catalan (ca) locale has systematic mistranslations

Open
#42,837 0 comments 0 reactions 1 assignee View on GitHub

@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:

  • shell is rendered five different ways in the same locale: Shell, shell,
    intèrpret d'ordres, Carcassa, closca.
  • web switches gender inside a single popover: session.share.popover.title and
    ...description.shared say a la web, while ...description.unshared says al web.
  • workspace.resetting.title ("Resetting workspace") and workspace.reset.success.title
    ("Workspace reset") are both Restabliment 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 codiS'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
  1. Set the interface language to Catalan
  2. 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.