feat(i18n): add Simplified Chinese localization for web, desktop, and mobile - #8073
Open
ZhiweiXiao98 wants to merge 17 commits into
Open
feat(i18n): add Simplified Chinese localization for web, desktop, and mobile#8073ZhiweiXiao98 wants to merge 17 commits into
ZhiweiXiao98 wants to merge 17 commits into
Conversation
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds application-level localization with
System / English / Simplified Chineseand applies it across the Web UI, Electron shell, and mobile client.The branch is synchronized with upstream
mainthroughb4be33f0and includes translations for the newer Skills menu, background thread creation, workspace images, Codex feedback, contrast controls, provider update flows, and integration settings.What is localized
Implementation
system,en, andzh-CNModel/provider names, Git refs, file paths, URLs, terminal output, commands, agent responses, and raw third-party errors intentionally remain unchanged.
Validation
Community builds
The Android community build uses an isolated package ID and disables official OTA updates so it can coexist with the official client. Those distribution-specific changes are isolated and can be dropped or split if upstream prefers to merge only the localization infrastructure and UI coverage.
Implemented with GPT-5.6 Sol in Codex.
Note
Medium Risk
Large UI-wide string and settings-schema change with a new
appLocalepreference and mobileAppTextdefault-on localization. Community mobile builds also change package IDs and disable official OTA, which can affect update and coexistence behavior.Overview
Adds an
appLocaleclient setting (system/en/zh-CN) and applies Simplified Chinese across the web UI, Electron native menus, and mobile chrome. Technical identifiers (models, Git refs, paths, URLs, agent output) stay untranslated.Web wraps the app in
WebI18nProviderand replaces hardcoded copy with keyed catalogs. Desktop rebuilds the application menu and update dialogs when locale changes. Mobile localizesAppText, alerts, headers, and placeholders via a string catalog; user/server-owned text must opt out withlocalize={false}.Also adds a
communityExpo variant that pins Chinese, uses a distinct package ID, and disables official OTA so a community APK can sit beside the official app.Reviewed by Cursor Bugbot for commit ce63585. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Add Simplified Chinese localization across web, desktop, and mobile
WebI18nProviderwith locale resolution, an English/Chinese message catalog in messages.ts, sharedresolveAppLocale/resolveRuntimeLocalein appLocale.ts, and anAppLocalePreferencesetting (system/en/zh-CN) with a new language selector in General settingst()calls across settings panels, sidebar, chat composer, command palette, dialogs, usage page, pull request views, connections, provider cards, theme editor, diagnostics, and many other web componentslocalizeTextChildren/localizeMobileStringwith anAppTextlocalizeprop (defaults on), aLocalizedAlertwrapper, localized screen titles and placeholders, and a newcommunitybuild variant that sets the locale tozh-CNand disables OTA updatesDesktopApplicationMenuMessagesand rebuilds the menu whenappLocalechanges throughsetClientSettingsattachmentUploadBlockReasonin attachmentUploadState.ts now returns a structured{ kind, count }object instead of a string; mobileAppTextlocalizes text children by default, so dynamic content must opt out withlocalize={false}Macroscope summarized ce63585.