iOS Localization & Assets
Priority: P1
Implementation Workflow
- Use String Catalogs — Adopt
.stringcatalogfiles in Xcode 15+ for visual editing and compile-time missing translation checks. - Prefer modern APIs — Use
String(localized: "key")orLocalizedStringResourceinstead ofNSLocalizedString. - Handle pluralization — Use String Catalogs' built-in pluralization instead of custom code logic.
- Format with locale — Use
FormattedAPI for dates, numbers, and currencies to respect user locale. - Organize assets — Use
.xcassetswith "Provides Namespace" enabled. Prefer SF Symbols for standard icons. - Complete Base localization — Ensure
Baseis complete before adding other languages.
See localization and asset catalog examples
Anti-Patterns
- ❌ Manual currency symbol concatenation — use
NumberFormatteror.formatted(.currency) - ❌ Loose png/jpg files in repo — always use Asset Catalogs
- ❌ Placeholder strings left in String Catalogs — ensure 100% translation coverage