Skip to content

Localize default terminal setting#1859

Merged
steipete merged 3 commits into
steipete:mainfrom
Zihao-Qi:default-terminal-localization
Jul 3, 2026
Merged

Localize default terminal setting#1859
steipete merged 3 commits into
steipete:mainfrom
Zihao-Qi:default-terminal-localization

Conversation

@Zihao-Qi

@Zihao-Qi Zihao-Qi commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Summary

Localize the new Default Terminal setting for every supported app language that was missing it. The Settings UI already uses localization keys; this change adds the missing terminal_app_title and terminal_app_subtitle entries and keeps a regression test to prevent future omissions.

Why

The redesigned Settings screen showed most System settings in the selected language, but Default Terminal fell back to English in several locales, including Japanese. Traditional Chinese already worked because its locale file had the required keys. The missing keys created an inconsistent non-English Settings experience.

Validation

  • make test
  • make check
  • swift test --filter LocalizationLanguageCatalogTests

Screenshot

before
Screenshot 2026-07-03 at 07 30 36

after
Screenshot 2026-07-03 at 08 22 29

@clawsweeper

clawsweeper Bot commented Jul 3, 2026

Copy link
Copy Markdown

Codex review: needs maintainer review before merge. Reviewed July 3, 2026, 5:29 PM ET / 21:29 UTC.

Summary
The PR adds missing terminal_app_title and terminal_app_subtitle entries to nine localization catalogs, adds a catalog completeness test, and adds a 0.38.1 changelog credit.

Reproducibility: yes. Source inspection shows the Settings row reads localized terminal keys while current main's affected catalogs, including Japanese, lack them; the inspected before/after screenshots show the fallback changing to localized copy.

Review metrics: 2 noteworthy metrics.

  • Localized catalogs updated: 9 modified, 0 added, 0 removed. The production change is limited to filling missing localized strings for existing Settings copy.
  • Regression coverage added: 1 Swift Testing case added. The new test checks every .lproj catalog for the two Default Terminal localization keys.

Merge readiness
Overall: 🐚 platinum hermit
Proof: 🦞 diamond lobster ✨ media proof bonus
Patch quality: 🐚 platinum hermit
Result: ready for maintainer review.

Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch.

Rank-up moves:

  • none.

Risk before merge

  • [P1] Individual translation wording was not independently validated by native speakers, so maintainers may still choose small follow-up wording edits even though the structural localization gap is well supported.

Maintainer options:

  1. Decide the mitigation before merge
    Merge the focused localization repair after normal checks, with wording refinements handled as follow-up localization edits if maintainers want them.
  2. Pause or close
    Do not merge this PR until maintainers decide whether the risk is worth taking.

Next step before merge

  • No ClawSweeper repair lane is needed because the patch is narrow, proof-backed, and has no actionable review findings.

Security
Cleared: The diff is limited to localized strings, one Swift test, and a changelog line, with no dependency, CI, secret, or executable production-code changes.

Review details

Best possible solution:

Merge the focused localization repair after normal checks, with wording refinements handled as follow-up localization edits if maintainers want them.

Do we have a high-confidence way to reproduce the issue?

Yes. Source inspection shows the Settings row reads localized terminal keys while current main's affected catalogs, including Japanese, lack them; the inspected before/after screenshots show the fallback changing to localized copy.

Is this the best way to solve the issue?

Yes. Adding the missing catalog entries plus a catalog-wide regression test is the narrowest maintainable fix and does not change settings persistence or runtime behavior.

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning high; reviewed against 386de1eaddd9.

Label changes

Label justifications:

  • P3: This is a low-risk Settings localization completeness fix with limited user-facing blast radius.
  • rating: 🐚 platinum hermit: Overall readiness is 🐚 platinum hermit; proof is 🦞 diamond lobster and patch quality is 🐚 platinum hermit.
  • status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR. Sufficient (screenshot): The inspected before/after screenshots directly show the Japanese Settings row changing from English fallback text to localized title and subtitle after the patch.
  • proof: sufficient: Contributor real behavior proof is sufficient. The inspected before/after screenshots directly show the Japanese Settings row changing from English fallback text to localized title and subtitle after the patch.
  • proof: 📸 screenshot: Contributor real behavior proof includes screenshot evidence. The inspected before/after screenshots directly show the Japanese Settings row changing from English fallback text to localized title and subtitle after the patch.
Evidence reviewed

What I checked:

  • Repository policy read: AGENTS.md was read fully; its focused SwiftPM test guidance and release-note ownership guidance were applied while reviewing the localization test and maintainer-authored changelog credit. (AGENTS.md:1, 386de1eaddd9)
  • Current main uses localized terminal setting keys: The General settings pane renders the Default Terminal row through L("terminal_app_title") and L("terminal_app_subtitle"), so missing catalog entries produce fallback text. (Sources/CodexBar/PreferencesGeneralPane.swift:87, 386de1eaddd9)
  • Current main lacks the Japanese terminal keys: The Japanese catalog jumps from nearby System/loading strings to Tertiary strings without terminal_app_title or terminal_app_subtitle, matching the reported fallback behavior. (Sources/CodexBar/Resources/ja.lproj/Localizable.strings:310, 386de1eaddd9)
  • PR diff is narrow: The PR patch adds the two terminal localization keys to nine catalogs and adds one Swift Testing catalog-completeness test; the only extra file is a maintainer-authored changelog credit. (Tests/CodexBarTests/LocalizationLanguageCatalogTests.swift:155, c6cdec26bc3e)
  • Real behavior proof inspected: Downloaded and inspected the before/after screenshots; the Japanese Settings row changes from English Default Terminal fallback copy to localized Japanese title and subtitle after the patch.
  • Settings provenance: GitHub PR metadata shows the System Settings-style split-view work that contains the Default Terminal row was merged shortly before this fix. (Sources/CodexBar/PreferencesGeneralPane.swift:87, 9b13a7bae72f)

Likely related people:

  • steipete: Merged the Settings split-view work that contains the Default Terminal settings row and also authored the changelog credit commit on this PR branch. (role: recent Settings feature owner; confidence: high; commits: 9b13a7bae72f, 8a1a97e91b4a, c6cdec26bc3e; files: Sources/CodexBar/PreferencesGeneralPane.swift, CHANGELOG.md)
  • jack24254029: Recent merged localization work touched the same localized string catalogs and catalog parity test area, making this a plausible review/routing context for wording and coverage. (role: recent localization contributor; confidence: medium; commits: daba50847e18, eb660dc03d69, ab1a5fa9f73a; files: Sources/CodexBar/Resources/*/Localizable.strings, Tests/CodexBarTests/LocalizationLanguageCatalogTests.swift)
What the crustacean ranks mean
  • 🦀 challenger crab: rare, exceptional readiness with strong proof, clean implementation, and convincing validation.
  • 🦞 diamond lobster: very strong readiness with only minor maintainer review expected.
  • 🐚 platinum hermit: good normal PR, likely mergeable with ordinary maintainer review.
  • 🦐 gold shrimp: useful signal, but proof or patch confidence is still limited.
  • 🦪 silver shellfish: thin signal; proof, validation, or implementation needs work.
  • 🧂 unranked krab: not merge-ready because proof is missing/unusable or there are serious correctness or safety concerns.
  • 🌊 off-meta tidepool: rating does not apply to this item.

Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics.

How this review workflow works
  • ClawSweeper keeps one durable marker-backed review comment per issue or PR.
  • Re-runs edit this comment so the latest verdict, findings, and automation markers stay together instead of adding duplicate bot comments.
  • A fresh review can be triggered by eligible @clawsweeper re-review comments, exact-item GitHub events, scheduled/background review runs, or manual workflow dispatch.
  • PR/issue authors and users with repository write access can comment @clawsweeper re-review or @clawsweeper re-run on an open PR or issue to request a fresh review only.
  • Maintainers can also comment @clawsweeper review to request a fresh review only.
  • Fresh-review commands do not start repair, autofix, rebase, CI repair, or automerge.
  • Maintainer-only repair and merge flows require explicit commands such as @clawsweeper autofix, @clawsweeper automerge, @clawsweeper fix ci, or @clawsweeper address review.
  • Maintainers can comment @clawsweeper explain to ask for more context, or @clawsweeper stop to stop active automation.

@clawsweeper clawsweeper Bot added proof: sufficient Contributor real behavior proof is sufficient. proof: 📸 screenshot Contributor real behavior proof includes screenshot evidence. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. P3 Low-risk cleanup, docs, polish, ergonomics, or speculative feature. labels Jul 3, 2026
@steipete steipete merged commit a310c42 into steipete:main Jul 3, 2026
10 checks passed
@steipete

steipete commented Jul 3, 2026

Copy link
Copy Markdown
Owner

Landed as a310c42774ce6e54ca0be7291b769f1b4591e42a.

Proof on exact head c6cdec26bc3e38e1c35a0a41bcfe7e8a31f76527:

  • swift test --filter LocalizationLanguageCatalogTests — 19 tests passed.
  • make check — passed (catalog, site, docs, format, and lint checks).
  • make test — all 45 shards/groups passed.
  • ./Scripts/compile_and_run.sh — fresh production bundle built, packaged, launched, and stayed running.
  • Peekaboo live proof — freshly built CodexBar menu opened successfully on screen.
  • autoreview --mode branch --base origin/main — no accepted/actionable findings.
  • GitHub CI — 10/10 checks green on the exact merged head.

Thanks @Zihao-Qi for completing the Default Terminal localization across every supported language.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

P3 Low-risk cleanup, docs, polish, ergonomics, or speculative feature. proof: 📸 screenshot Contributor real behavior proof includes screenshot evidence. proof: sufficient Contributor real behavior proof is sufficient. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants