Skip to content

Add Polish localization across iOS and watchOS - #70

Merged
CodyBontecou merged 1 commit into
mainfrom
codex/polish-localization
Oct 17, 2026
Merged

CodyBontecou merged 1 commit into
mainfrom
codex/polish-localization

Conversation

@CodyBontecou

Copy link
Copy Markdown
Owner

Summary

Polish users now get localized screens, count forms, permission explanations, and VoiceOver descriptions across iPhone, Apple Watch, widgets, and App Shortcuts. Strings that previously bypassed localization now use the catalogs.

 iso.me
+ Polish in all nine string catalogs, including current Country Days and photo-map features
+ Count-aware map/photo summaries and localized actions, duration labels, and default outing names
+ Compiler-extraction coverage audit and compiled-resource regression checks

Evidence

Before: truncated photo setup labels After: labels fit
Truncated Polish photo setup labels Polish photo setup labels fit
  • Before: Polish fell back to English; dynamic strings included English words such as points and Tracking is off.
    After: 1,326 catalog entries pass the Polish coverage/placeholder audit; all four targets have zero missing compiler-extracted keys. Simulator AX output includes 0 wizyt. 0 punktów trasy and Śledzenie jest wyłączone.
  • Validation on current main: iOS/Watch/widget build passed; 275 app tests passed with CODE_SIGNING_ALLOWED=YES CODE_SIGN_IDENTITY=-; 162 compiled localization checks and five audit-tool tests passed. An initial unsigned run failed seven Keychain tests; simulator signing resolved all seven.
  • Recorded onboarding and map checks replayed successfully during implementation. Screenshots use a separate Polish-only QA bundle; simulator region and Watch UI were not fully exercised.
  • Polish copy is machine-assisted with contextual review. Native-speaker editorial review of long-form copy remains open. Newly cataloged English/Polish strings still need translations in the other supported languages.

Commands and coverage details: Polish localization notes.

Merge Danger

Door: Two-way

Reversible source and catalog changes; no data migration. Default outing titles and associated fallback export names now follow the app language.

Blast Radius: Presentation

Changes affect localized labels, plural forms, accessibility text, permission descriptions, and screenshot-copy tooling. Existing translations are preserved. The unrelated local debug overlay and Watch-sync commit are excluded.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 17, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-17T23:51:54.586512Z c8f00f2 PR opened
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@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: c8f00f2f75

ℹ️ 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".

Comment on lines +324 to +326
# A plural catalog entry represents the same source value with count-specific forms.
unit = localized.get("stringUnit") or localized.get("variations", {}).get("plural", {}).get("other", {}).get("stringUnit", {})
value = unit.get("value")

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 Preserve localized plural variants during fill

When fill(overwrite=True) processes any Polish plural entry, locale_values reduces the localization to only its other form; the later set_locale_values call then replaces the entire variations.plural dictionary with one stringUnit. Thus the documented overwrite workflow silently deletes the one, few, and many translations from all affected entries. The fill path needs to preserve or regenerate every plural variant instead of round-tripping only other.

Useful? React with 👍 / 👎.

@CodyBontecou
CodyBontecou merged commit 5d24707 into main Oct 17, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant