← ClaudeAtlas

ios-localizationlisted

Implement, review, or improve localization and internationalization in iOS/macOS apps — String Catalogs (.xcstrings), LocalizedStringKey, LocalizedStringResource, pluralization, FormatStyle for numbers/dates/measurements, right-to-left layout, Dynamic Type, and locale-aware formatting. Use when adding multi-language support, setting up String Catalogs, handling plural forms, formatting dates/numbers/currencies for different locales, testing localizations, or making UI work correctly in RTL languages like Arabic and Hebrew.
dpearson2699/swift-ios-skills · ★ 730 · Code & Development · score 80
Install: claude install-skill dpearson2699/swift-ios-skills
# iOS Localization & Internationalization Localize iOS 26+ apps using String Catalogs, modern string types, FormatStyle, and RTL-aware layout. Localization mistakes cause App Store rejections in non-English markets, mistranslated UI, and broken layouts. Ship with correct localization from the start. ## Contents - [String Catalogs (.xcstrings)](#string-catalogs-xcstrings) - [String Types -- Decision Guide](#string-types-decision-guide) - [String Interpolation in Localized Strings](#string-interpolation-in-localized-strings) - [Pluralization](#pluralization) - [FormatStyle -- Locale-Aware Formatting](#formatstyle-locale-aware-formatting) - [Right-to-Left (RTL) Layout](#right-to-left-rtl-layout) - [Common Mistakes](#common-mistakes) - [Localization Review Checklist](#review-checklist) - [References](#references) ## String Catalogs (.xcstrings) String Catalogs replaced `.strings` and `.stringsdict` files starting in Xcode 15 / iOS 17. They unify all localizable strings, pluralization rules, and device variations into a single JSON-based file with a visual editor. **Why String Catalogs exist:** - `.strings` files required manual key management and fell out of sync - `.stringsdict` required complex XML for plurals - String Catalogs auto-extract strings from code, track translation state, and support plurals natively **How automatic extraction works:** Xcode scans for these patterns on each build: ```swift // SwiftUI -- automatically extracted (LocalizedStringKey) Text("Wel