Improve Traditional Chinese localization wording#1158
Conversation
- Refine zh-Hant strings for more natural Taiwan usage and terminology. - Replace provider terminology with 提供者 across Traditional Chinese copy. - Validate localized resources, placeholder parity, diff cleanliness, and high-risk term usage.
- Route quota warning, session depleted/restored, and login success notifications through localized strings. - Add English and Traditional Chinese notification keys with focused notification copy tests. - Validate with make check and focused notification/localization tests.
|
Codex review: needs maintainer review before merge. Reviewed May 26, 2026, 4:41 AM ET / 08:41 UTC. Summary Reproducibility: yes. Source inspection of current main shows quota/session/login notification copy built from English literals while selectable localization already exists. Review metrics: 3 noteworthy metrics.
Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Risk before merge
Maintainer options:
Next step before merge Security Review detailsBest possible solution: Land after maintainer and Traditional Chinese wording review, keeping the notification copy on the existing localization helper with focused regression tests. Do we have a high-confidence way to reproduce the issue? Yes. Source inspection of current main shows quota/session/login notification copy built from English literals while selectable localization already exists. Is this the best way to solve the issue? Yes for the code path. Routing the notification strings through AGENTS.md: found and applied where relevant. Codex review notes: model gpt-5.5, reasoning high; reviewed against 7c751570b7e9. Label changesLabel justifications:
Evidence reviewedWhat I checked:
Likely related people:
What the crustacean ranks mean
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 re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. |
|
@clawsweeper re-review |
|
🦞👀 Command router queued. I will update this comment with the next step. Re-review progress:
|
- Pin English-only assertions to the English localization override so local app language settings do not affect tests. - Adjust the OpenAI web refresh test wait order to avoid a full-suite scheduling timeout. - Verification: make check, swift test.
94facea to
b34e05e
Compare
# Conflicts: # CHANGELOG.md
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 8ade819e3b
ℹ️ 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".
| let windowLabel = window.localizedNotificationDisplayName | ||
| let remainingText = Self.percentText(currentRemaining) | ||
| let accountPrefix = accountDisplayName | ||
| .map { "Account \($0). " } ?? "" | ||
| return ( | ||
| "\(providerName) \(windowLabel) quota low", | ||
| "\(accountPrefix)\(remainingText) left. Reached your \(threshold)% \(windowLabel) warning threshold.") | ||
| let title = L("quota_warning_notification_title", providerName, windowLabel) |
There was a problem hiding this comment.
Avoid mixed-language fallback in quota warning copy
windowLabel is localized separately before formatting the notification strings, but quota_warning_notification_* keys were only added in en.lproj and zh-Hant.lproj. In locales like ca, es, pt-BR, and zh-Hans, L("quota_warning_notification_title", ...) falls back to the English template while still injecting a localized window label, producing mixed text (for example, "Codex sesión quota low"). Please derive the label from the same fallback language as the template (or add these keys to all shipped locales) so notifications stay linguistically consistent.
Useful? React with 👍 / 👎.
Summary
Root Cause
UNMutableNotificationContenttitle/body strings still used hardcoded English.Visual Proof
General
Providers
About
Debug
Session quota notification
Validation
make checkswift test --filter 'QuotaWarningNotificationLogicTests|SessionQuotaNotificationLogicTests|LoginNotificationLogicTests|LocalizationBundleTests'plutil -lint Sources/CodexBar/Resources/*/Localizable.stringsgit diff --check HEAD