feat(i18n): localize the interface in English and pt-BR (v1.4.0)
Every UI string moves to String(localized:) and lives in Localizable.xcstrings (32 keys, English as the source), with InfoPlist.xcstrings covering the About panel copyright. All keys are translated. XcodeGen does not infer a build phase for .xcstrings, so project.yml excludes them from the sources path and adds each catalog with buildPhase: resources. Without that the catalog never becomes a .lproj in the bundle and the app ships English-only without a build error. SWIFT_EMIT_LOC_STRINGS and LOCALIZATION_PREFERS_STRING_CATALOGS are set so the compiler emits the strings the catalog is checked against. CLAUDE.md records the traps: the key is the English text including the format specifiers interpolation generates, a key that does not match falls back to raw English with no build error, plurals belong in the catalog rather than a ternary, and en.lproj ships without Localizable.strings on purpose. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
J
junior-rj committed
2ef7e270aede2a699ffa4eec7ea4b6868ef14c53
Parent: deeea43