You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[FEATURE]: Restore Console localization (new Console is English-only; v1 Console shipped 18 locales) #50299
I have verified this feature I'm about to request hasn't been suggested before.
Describe the enhancement you want to request
TL;DR: the new Console at https://opencode.ai/console/ is English-only, while the Console app in this repo (packages/console/app/src/i18n/*, including zh.ts / zht.ts, 750 keys, last touched 2026-09-18) ships full localization. It looks like localization was dropped during the Console rewrite / v2 migration.
What I observe (no account needed to check):
curl -H "Accept-Language: zh-CN" https://opencode.ai/console/ returns <html lang="en">. Sending the oc_locale=zh cookie makes no difference either — the locale is ignored.
The Console bundle (/console/assets/index-*.js, ~590 KB) and 16 sampled lazy chunks contain zero CJK characters and no i18n/locale code at all (no oc_locale, no language picker).
For comparison, https://opencode.ai/docs/does localize: Accept-Language: zh-CN returns <html lang="zh-CN">. So browser language detection works elsewhere; the Console is the one place that ignores it. (The docs also no longer expose the visible language picker the older site had.)
Some strings on the Console page (e.g. "One-time credits", "Manage privacy") don't exist anywhere in this repo, which suggests the new Console is built from a separate codebase.
Request:
Bring back locale handling for the new Console: browser language detection + the oc_locale cookie + a language picker.
Reuse the translation keys that already exist in this repo (packages/console/app/src/i18n/) so nothing has to be retranslated from scratch.
Context on when this appeared: the v2 rollout — Console URL change (~2026-08-20, "Updated the default Console URL used by account connection flows"), workspace migration (2026-09-16/17), install links switched to v2 (2026-09-19). Users whose browser is not English (e.g. zh users who had a Chinese Console before) now get an English-only Console.
Additional confirmation as of 2026-09-24, with a couple of pointers that may help:
Still reproducible on today's deployment. The live Console now serves /console/assets/index-DYyBjoBx.js (593,460 bytes; it was index-AYRBkg4c.js when I first checked on 2026-09-17 — so new deployments are going out). The new bundle still has:
0 CJK characters (raw or \uXXXX-escaped) — in the main bundle and in 10 sampled lazy chunks (40 are referenced).
No oc_locale / x-opencode-locale — the cookie/header used by v1's packages/console/app/src/lib/language.ts.
Only an English-only translator stub: the dictionary is hardcoded to locale: () => "en".
It's minified, while the repo's current packages/console/app/vite.config.ts sets minify: false — i.e. the deployed artifact is not built from the current repo config.
Separate-codebase evidence: I sampled 244 distinctive strings from packages/console/app/src/i18n/en.ts (e.g. "Create New Workspace", "Get started for free") — none of them appear in the deployed main bundle. This matches the observation above that the new Console is served from a different codebase/build.
Reuse is possible:packages/console/app/src/i18n/ still ships all 18 locales (en, zh, zht, ko, de, es, fr, it, da, ja, pl, ru, uk, ar, no, br, th, tr) via static imports in i18n/index.ts, and lib/language.ts still defines LOCALES, the oc_locale cookie and the x-opencode-locale header. zh.ts alone has ~750 keys, so wiring the new Console to these dictionaries would restore most of the v1 coverage without retranslating.
Related open work: PRs #50550 and #50204 ("complete Chinese copy in console and stats" / "complete current V2 translation coverage"), plus #50553 and #50554 — might be worth coordinating so the translations land in one place.
Thanks for the detailed write-up, @zcwvwdz! To restate the request: the new Console at opencode.ai/console should support localization again. That means detecting the browser language, honouring the oc_locale cookie and offering a language picker, ideally reusing the existing translations in packages/console/app/src/i18n/ so nothing needs to be retranslated.
The existing Console app in this repo does still ship those 18 locales and the oc_locale handling, while the strings you saw on the new Console page aren't in this repo. That fits your observation that it's built separately. I've passed this on as a feature request so maintainers can consider it.
Activity
SeaCat666 commentedon Sep 24, 2026
Additional confirmation as of 2026-09-24, with a couple of pointers that may help:
Still reproducible on today's deployment. The live Console now serves
/console/assets/index-DYyBjoBx.js(593,460 bytes; it wasindex-AYRBkg4c.jswhen I first checked on 2026-09-17 — so new deployments are going out). The new bundle still has:\uXXXX-escaped) — in the main bundle and in 10 sampled lazy chunks (40 are referenced).oc_locale/x-opencode-locale— the cookie/header used by v1'spackages/console/app/src/lib/language.ts.locale: () => "en".packages/console/app/vite.config.tssetsminify: false— i.e. the deployed artifact is not built from the current repo config.Separate-codebase evidence: I sampled 244 distinctive strings from
packages/console/app/src/i18n/en.ts(e.g. "Create New Workspace", "Get started for free") — none of them appear in the deployed main bundle. This matches the observation above that the new Console is served from a different codebase/build.Reuse is possible:
packages/console/app/src/i18n/still ships all 18 locales (en, zh, zht, ko, de, es, fr, it, da, ja, pl, ru, uk, ar, no, br, th, tr) via static imports ini18n/index.ts, andlib/language.tsstill definesLOCALES, theoc_localecookie and thex-opencode-localeheader.zh.tsalone has ~750 keys, so wiring the new Console to these dictionaries would restore most of the v1 coverage without retranslating.Related open work: PRs #50550 and #50204 ("complete Chinese copy in console and stats" / "complete current V2 translation coverage"), plus #50553 and #50554 — might be worth coordinating so the translations land in one place.
opencodejr commentedon Oct 28, 2026
Thanks for the detailed write-up, @zcwvwdz! To restate the request: the new Console at opencode.ai/console should support localization again. That means detecting the browser language, honouring the
oc_localecookie and offering a language picker, ideally reusing the existing translations inpackages/console/app/src/i18n/so nothing needs to be retranslated.The existing Console app in this repo does still ship those 18 locales and the
oc_localehandling, while the strings you saw on the new Console page aren't in this repo. That fits your observation that it's built separately. I've passed this on as a feature request so maintainers can consider it.