Repository navigation
Conversation
Resolve 18 locale JSON conflicts in src/locales/*.json by keeping both
sides. Each file had exactly one conflict block: this branch appends
common.{clear,done,saved,edit} while upstream appends common.{hide,show}
at the same insertion point, so neither side can be discarded.
Verification after the merge:
- node scripts/check_locales.cjs (pass; 18 bundles, matching key sets)
- npm run typecheck (pass)
- npm test (823 pass, 0 fail)
- npm run build (pass)
npm run test:release has 1 failure in build_windows_portable.test.cjs
caused by a Windows path-separator expectation. It reproduces on a clean
upstream/main checkout and this branch does not touch scripts/, so it is
unrelated to this PR.
|
Rebased onto Conflict resolution. All 18 conflicts were in What this means for review. The diff is still the same 23 files (18 locale bundles + 5 components). The 40 upstream commits appear in history but not in the diff. One spot worth a glance: the two key sets now sit adjacent in the Ready for review. |
Resolve locale conflicts in favour of upstream/main.
upstream/main (v1.3.66) added its own settings.general keys at the same
position, which collided with the 15 keys this branch added.
Keys owned by upstream are dropped from this branch:
- common.clear, settings.general.codexAutoRestoreTakeoverOnLaunch(+Desc)
upstream already defines these; keeping the branch copies would have
produced a duplicate key and stale wording (upstream's text matches the
current restore_codex_active_takeover_if_enabled behaviour).
Keys carried over: 12 x 18 locales
- common.done/saved/edit
- settings.general.accountLevelRefresh{Title,Desc,SummaryActive,Summary,Inherit,Disabled}
- settings.general.errorReporting(+Desc)
- appPath.missing.scanEmptyGeneric
Removes the hardcoded Chinese fallback from 14 t() call sites across
4 files so the locale entries are actually used.
Conflict resolution against upstream/main (v1.3.66)This supersedes my 2026-09-30 comment above, which described an earlier attempt. The branch now merges All 18 conflicts were in Root cause. Both sides appended keys to the end of the Resolution: upstream wins any overlap. 22 keys across the two sides, 20 kept:
Why the two Why Also. upstream had already removed the Chinese fallback from Nothing from upstream is reverted. All 181 keys added between v1.3.63 and v1.3.66 survive byte-identical in all 18 bundles, and the 7 keys deleted in that range are not reintroduced. |
upstream added settings.general.errorReporting and errorReportingDesc in
v1.3.67 at a different position in the object than this branch did, so the
line-based merge combined them instead of conflicting and left every bundle
with a duplicate key. JSON.parse keeps the last one, so this branch's wording
(lifted from the Chinese fallback string being deleted) would have won at
runtime, and check_locales.cjs does not detect duplicates.
Kept upstream's copy and dropped this branch's in all 18 bundles.
Keys owned by upstream are therefore not part of this branch:
- common.clear
- settings.general.codexAutoRestoreTakeoverOnLaunch(+Desc)
- settings.general.errorReporting(+Desc)
Carried over: 10 keys x 18 locales
- common.done/saved/edit
- settings.general.accountLevelRefresh{Title,Desc,SummaryActive,Summary,Inherit,Disabled}
- appPath.missing.scanEmptyGeneric
Removes the hardcoded Chinese fallback from 12 t() call sites across 4 files.
upstream already did 2 of them (errorReporting, errorReportingDesc) in
v1.3.67, so this branch only needs the remaining 12.
Follow-up merges: v1.3.67 and v1.3.68This supersedes my previous comment above, which covered the v1.3.66 merge. Since then The v1.3.67 merge produced a duplicate key in all 18 bundles, and nothing flagged it. upstream added "errorReporting": "Diagnostics", // upstream, earlier
...
"errorReporting": "Telemetry diagnostics", // this branch, later
Worth noting that upstream also removed the Chinese fallback from those same two Final split against upstream/main (v1.3.68).
Nothing from upstream is reverted. All 90 keys added between v1.3.66 and v1.3.68 and all 34 upstream value changes in that range survive byte-identical in all 18 bundles, and the 7 keys upstream deleted earlier ( Scope check. Across all of Two of the keys added here are also referenced from files outside this diff ( |
Summary
Validation
Verified locally on the merged branch (Node scripts, no external tooling):
settings.general.errorReportinganderrorReportingDescinto every bundle;JSON.parsesilently keeps the last one andcheck_locales.cjsde-duplicates with aSet, so neither would have surfaced it.{{placeholder}}sets matchenfor all 10 keys in all 18 bundles, and no bundle has an empty value.en/en-USstring for these keys, with one exception below the duplicate threshold:common.editis"Edit"inid, which is the correct Indonesian word.npm run typecheck,npm testandnode scripts/check_locales.cjswere not re-run locally during these merges (nonode_modulesavailable); the checks above are the structural equivalent for the files this PR touches.Notes