Preserve core workflow terms in English and apply CJK spacing (#5141)

* Preserve core workflow and product terms in English across locales

Update translation policy to prevent localization of key terms such as
"Agent", "Commit", "Markdown", and "Terminal". This ensures consistent
jargon and product branding.

Introduce CJK-Latin term spacing to keep these Latin terms legible
when combined with CJK text, while adjusting Korean particle spacing.
Also add overrides to prevent network proxy settings from being
mistranslated as "Agent".

* Preserve repo terminology in English and localize source control labels

Treat "repo" and "repos" (and their capitalized forms) as brand terms
that should remain in English/Latin across CJK and Spanish locales.
Update translation files and policies to replace translated words like
"repositorio" or "リポジトリ" with "repo"/"repos", and fix an issue where
latin brand terms could be incorrectly matched as substrings in larger
words during cleanup.

Additionally, externalize and localize the "Staged Changes", "Changes",
and "Untracked Files" section labels in the source control sidebar.
This commit is contained in:
Jinjing
2026-06-10 19:24:16 -07:00
committed by GitHub
parent d66027c433
commit d4bee7db5c
16 changed files with 2999 additions and 2462 deletions
@@ -262,10 +262,19 @@ const PRIMARY_ICONS: Partial<
// This keeps unresolved conflicts visible at the top of the list where the
// user won't miss them.
const SECTION_ORDER = ['unstaged', 'staged', 'untracked'] as const
const SECTION_LABELS: Record<(typeof SECTION_ORDER)[number], string> = {
staged: 'Staged Changes',
unstaged: 'Changes',
untracked: 'Untracked Files'
const SECTION_LABELS: Record<(typeof SECTION_ORDER)[number], { key: string; fallback: string }> = {
staged: {
key: 'auto.components.right.sidebar.SourceControl.48a003c1b1',
fallback: 'Staged Changes'
},
unstaged: {
key: 'auto.components.right.sidebar.SourceControl.d4ef4bafc5',
fallback: 'Changes'
},
untracked: {
key: 'auto.components.right.sidebar.SourceControl.522f44dce5',
fallback: 'Untracked Files'
}
}
const BRANCH_REFRESH_INTERVAL_MS = 5000
@@ -4212,10 +4221,11 @@ function SourceControlInner(): React.JSX.Element {
getUnstageAllPaths(grouped.staged).length > 0
const canRevertAll =
!normalizedFilter && getDiscardAllPaths(grouped[area], area).length > 0
const sectionLabel = SECTION_LABELS[area]
return (
<div key={area}>
<SectionHeader
label={SECTION_LABELS[area]}
label={translate(sectionLabel.key, sectionLabel.fallback)}
count={items.length}
conflictCount={
items.filter((entry) => entry.conflictStatus === 'unresolved').length
+3
View File
@@ -7740,6 +7740,9 @@
"7a09d7f9d2": "base",
"383cf92c73": "tree",
"d7ae61269b": "Committed on Branch",
"48a003c1b1": "Staged Changes",
"d4ef4bafc5": "Changes",
"522f44dce5": "Untracked Files",
"3636d0f686": "ready",
"d2e9189866": "all",
"a0cc0e6b4e": "loading",
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff