Skip to content

Add native Korean localization support - #1244

Closed
Yuxin-Qiao wants to merge 9 commits into
steipete:mainfrom
Yuxin-Qiao:feat/korean-localization-public
Closed

Add native Korean localization support#1244
Yuxin-Qiao wants to merge 9 commits into
steipete:mainfrom
Yuxin-Qiao:feat/korean-localization-public

Conversation

@Yuxin-Qiao

Copy link
Copy Markdown
Contributor

Summary

Adds Korean (ko) as a first-class app localization.

Changes

  • Add ko to the language picker.
  • Add Sources/CodexBar/Resources/ko.lproj/Localizable.strings.
  • Add language_korean labels in existing localization files so the new option is shown consistently in the language menu.
  • Preserve existing localization fallback behavior.

Validation

  • Confirmed key parity with en.lproj.
  • Confirmed format placeholder parity (%@, %d, positional specifiers).
  • Ran full test suite:

swift test -> 3197 tests passed.

@clawsweeper

clawsweeper Bot commented May 31, 2026

Copy link
Copy Markdown

Codex review: needs real behavior proof before merge. Reviewed June 11, 2026, 1:33 PM ET / 17:33 UTC.

Summary
Review failed before ClawSweeper could summarize the requested change.

Reproducibility: unclear. The review failed before ClawSweeper could establish a reproduction path.

Review metrics: none identified.

Merge readiness
Overall: 🌊 off-meta tidepool
Proof: 🌊 off-meta tidepool
Patch quality: 🌊 off-meta tidepool
Result: rating does not apply to this item.

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

Risk before merge

  • [P1] No close action taken because the review did not complete.

Maintainer options:

  1. Decide the mitigation before merge
    Retry the Codex review after fixing the execution failure.
  2. Pause or close
    Do not merge this PR until maintainers decide whether the risk is worth taking.

Next step before merge

  • [P1] Review did not complete, so no work-lane recommendation was made.
Review details

Best possible solution:

Retry the Codex review after fixing the execution failure.

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

Unclear. The review failed before ClawSweeper could establish a reproduction path.

Is this the best way to solve the issue?

Unclear. Retry the review first so ClawSweeper can evaluate the actual issue and fix direction.

AGENTS.md: unclear because the file could not be read completely.

Codex review notes: model internal, reasoning high; reviewed against 3c2d23d1739a.

Label changes

Label changes:

  • remove P2: Current review triage priority is none.
  • remove merge-risk: 🚨 other: Current PR review selected no merge-risk labels.

Label justifications:

  • rating: 🌊 off-meta tidepool: Overall readiness is 🌊 off-meta tidepool; proof is 🌊 off-meta tidepool and patch quality is 🌊 off-meta tidepool.
Evidence reviewed

What I checked:

  • failure reason: retryable codex transport failure.
  • codex failure detail: Codex review failed for this PR with exit 1.
  • codex stderr: 1 06:35:12 +0100 48) }.
  • codex stdout: No stdout captured.

Likely related people:

  • unknown: Codex failed before it could trace repository history. (role: review did not complete; confidence: low)
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.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 51aa5edf9e

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

"CodexBar could not save the current system account before switching." = "CodexBar는 전환하기 전에 현재 시스템 계정을 저장할 수 없습니다.";
"CodexBar could not update managed account storage." = "CodexBar가 관리 계정 저장소를 업데이트할 수 없습니다.";
"CodexBar found another managed account that already uses the current system account. Resolve the duplicate account before switching." = "CodexBar가 현재 시스템 계정을 이미 사용하고 있는 다른 관리 계정을 찾았습니다. 전환하기 전에 중복 계정을 해결하세요.";
"CodexBar will ask macOS Keychain for “%@” so it can decrypt browser cookies and authenticate your account. Click OK to continue." = "CodexBar는 브라우저 쿠키를 해독하고 계정을 인증할 수 있도록 macOS 키체인에 "%@"을 요청합니다. 계속하려면 확인을 클릭하세요.";

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Escape the placeholder quotes in Korean strings

The Korean Localizable.strings file is syntactically invalid because the translated value contains unescaped "%@" quotes. I checked this file with plutil -lint, which reports a missing semicolon at this line; as a result, the Korean localization table cannot be parsed when the new ko language is selected, and macOS/Xcode string resource validation may reject the resource. Escape these quotes (or use curly quotes) so the .strings file remains valid.

Useful? React with 👍 / 👎.

@clawsweeper clawsweeper Bot added rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. rating: 🌊 off-meta tidepool PR readiness rating does not apply to this item. and removed rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. labels May 31, 2026
@Yuxin-Qiao

Copy link
Copy Markdown
Contributor Author

Screenshots

Korean menu card

Korean general settings

Korean providers settings

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Jun 1, 2026

Copy link
Copy Markdown

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

Re-review progress:

@clawsweeper clawsweeper Bot added proof: sufficient Contributor real behavior proof is sufficient. proof: 📸 screenshot Contributor real behavior proof includes screenshot evidence. rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. P2 Normal priority bug or improvement with limited blast radius. and removed rating: 🌊 off-meta tidepool PR readiness rating does not apply to this item. labels Jun 1, 2026
@Yuxin-Qiao
Yuxin-Qiao force-pushed the feat/korean-localization-public branch from 40a356d to 6d619bb Compare June 7, 2026 08:02
@clawsweeper clawsweeper Bot added rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. merge-risk: 🚨 other 🚨 Merging this PR has meaningful risk outside the owned taxonomy. and removed rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. labels Jun 7, 2026
@Yuxin-Qiao
Yuxin-Qiao force-pushed the feat/korean-localization-public branch from 6d619bb to 81149ac Compare June 7, 2026 13:32
@clawsweeper clawsweeper Bot added rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. and removed rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. labels Jun 7, 2026
@Yuxin-Qiao
Yuxin-Qiao force-pushed the feat/korean-localization-public branch from 0e59073 to fd353e9 Compare June 11, 2026 07:00
@clawsweeper clawsweeper Bot added rating: 🌊 off-meta tidepool PR readiness rating does not apply to this item. and removed proof: sufficient Contributor real behavior proof is sufficient. proof: 📸 screenshot Contributor real behavior proof includes screenshot evidence. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. labels Jun 11, 2026
@steipete
steipete force-pushed the feat/korean-localization-public branch from fd353e9 to 9509804 Compare June 11, 2026 15:40
@steipete

Copy link
Copy Markdown
Owner

Rebased and repaired this branch on current main at 88c43eeb; pushed head 95098043.

Proof:

  • Korean catalog parity: 1038/1038 English keys
  • fixed stale/missing keys and invalid escaped values
  • fixed printf percent placeholders and added direct formatting regressions
  • focused localization/preferences suite: 10 tests passed
  • make check: passed
  • autoreview: clean, confidence 0.84

I am holding merge for native-language review. The catalog still has clear user-visible machine-translation defects, including quota_warning_session = "이름 *", quota_warning_warn_at = "전쟁에서", and mixed-English depleted/stale labels. CI/parity can prove resource safety, but not Korean copy quality.

Yuxin-Qiao and others added 8 commits June 12, 2026 00:35
Add missing language picker keys to ko and fr/nl/uk/vi bundles, and include language_korean in the localization catalog test.

Co-authored-by: Cursor <cursoragent@cursor.com>
…talogs)

After rebasing onto origin/main, the invariant test
'localized catalogs include every app language label' requires every
lproj to contain every language_<X> key. Add language_japanese to
ko.lproj and language_korean to ja.lproj.

No-op for app behavior; only catalog parity for invariant.
@Yuxin-Qiao
Yuxin-Qiao force-pushed the feat/korean-localization-public branch from 9509804 to 068fdd6 Compare June 11, 2026 16:35

Copy link
Copy Markdown
Owner

Superseded by #1460, which carries a native-contributor Korean catalog, full catalog/format regressions, and live menu/settings proof.

Thank you @Yuxin-Qiao for starting the Korean localization work and for the screenshots and follow-up repairs here. Closing this branch to keep one canonical implementation.

@steipete steipete closed this Jun 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merge-risk: 🚨 other 🚨 Merging this PR has meaningful risk outside the owned taxonomy. P2 Normal priority bug or improvement with limited blast radius. rating: 🌊 off-meta tidepool PR readiness rating does not apply to this item.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants