feat(i18n): complete V2 translation coverage - #43073
opencode-agent[bot] wants to merge 15 commits into
Conversation
|
|
e80e60d to
68b3047
Compare
68b3047 to
a2ba9ed
Compare
a2ba9ed to
590a02f
Compare
|
Automated PR Cleanup Thank you for contributing to opencode. Due to the high volume of PRs from users and AI agents, we periodically close older PRs using automated criteria so maintainers can focus review time on the most active and community-supported contributions. This PR was closed because it matched the following cleanup criteria:
PRs created within the last month are not affected by this cleanup. If you believe this PR was closed incorrectly, or if you are still actively working on it, please leave a comment explaining why it should be reopened. A maintainer can review and reopen it if appropriate. Thanks again for taking the time to contribute. |
Summary
Weekly audit refresh — 2026-09-14
This refresh reused the still-open translation PR rather than publishing an overlapping duplicate. The branch was rebased onto current
origin/v2at7a31b5c0f7before auditing.Findings
The rebased audit found:
.one/.othersource forms, including the new complete file-count familysettings.workspaces.deleteAll.warningand UIui.messagePart.context.thought.one/.otheracross every localeIntl.PluralRules, or plural-category key construction/selectionThe weekly wave adds 12,388 translated entries/forms, repairs 186 placeholder contracts, and removes 744 obsolete entries.
Product areas
Exact English source keys
app source keys (170)
ui source keys (10)
Removed obsolete ordinary keys
App locale dictionaries remove:
settings.timeline.advanced.explainer,settings.timeline.activitysettings.timeline.placement.title,.separate,.grouped,.hiddensettings.timeline.expansion.title,.collapsed,.expandedsession.queue.attachmentssettings.workspaces.deleteAll.confirmShared-UI dictionaries remove
ui.messagePart.tools.used; the current English source is the typed plural family.one/.other.Hardcoded, grammar, and accessibility repairs
packages/app/src/session/browser/pane.tsxtranslates known browser-pane protocol errors and announces failures as an assertive alert.packages/session-ui/src/tools/tool-renderer.tsxuses a completeui.common.fileCountplural family instead of prefixing a number to a noun fragment.packages/ui/src/context/i18n.tsxowns locale-aware list separators;packages/session-ui/src/components/tool-count-summary.tsxno longer hardcodes commas between translated count phrases.packages/desktop/src/renderer/migration-status.tsxrenders complete localized progress phrases for phase-only, current, and current/total states; unknown future phases use generic translated migration copy instead of raw English.packages/app/src/settings/workspaces/project.tsxtranslates the nine project color names used in accessible labels.New English source keys translated in every locale:
session.browser.unsupported; fivetoast.migration.progress.*current/progress/generic keys; ninecommon.color.*keysui.common.fileCount.one,ui.common.fileCount.otherPer-locale counts
Every non-English locale receives 185 app source-key translations and 12 shared-UI source-key translations.
Additional required CLDR forms beyond those English keys:
am,az,bg,bn,da,de,dv,dz,el,et,fa,fi,fo,hi,hu,hy,id,is,ja,ka,km,ko,lo,mk,mn,ms,my,ne,nl,no,pa,si,sq,sv,tg,th,tk,tr,ur,uz,vi,zh,zhtbr,bs,ca,es,fr,he,hr,it,lv,ro,srcs,lt,pl,ru,sk,sl,ukarTranslation-quality method
English dictionaries remained the semantic source of truth. Independent language-family reviews checked repository prior art, Unicode CLDR cardinal rules, Mozilla localization guidance and Firefox/Pontoon, Microsoft and Apple localization guidance, maintained KDE/VS Code and localized Git terminology where available, and the language authorities named in package guidance.
Product names, provider names, commands, identifiers, paths, key labels, acronyms, and placeholders remain exact. New RTL phrases isolate dynamic Latin values where needed. Sparse-corpus terminology is flagged for native review in Dzongkha, Faroese, Persian, Burmese, Khmer, Lao, Amharic, Tajik, Turkmen, Uzbek, Shahmukhi Punjabi, and Divehi.
Cumulative branch behavior
Earlier reviewed waves in this PR translated prior app/UI/desktop drift across the same 62 locales, localized provider/timeline/native errors, preserved runtime English through typed fallback, localized rich lists and count-sensitive copy, and kept locale/plural mechanics behind shared typed APIs.
Checks
Intl.PluralRules, or plural-category key construction/selectionCIexplicitly unset for scoped i18n and package testsgit diff --check, and scoped Oxlint (zero errors) passedThe broad desktop run passed 112 tests; five storage/browser test files could not start because the Host Bun runtime lacks the
node:sqlitebuiltin. Desktop typecheck and the scoped native-i18n suite passed. The app production build could not start under the Host's Node 18 because Rolldown imports Node's newerutil.styleText; package typechecks and browser/unit suites passed.Requested by: @Hona (Hona via Slack)