ios-localization

Implement iOS and macOS localization with String Catalogs and LocalizedStringResource symbols.

Updated May 10, 2026
One-click install
npx skills add https://github.com/FelixRauch/medat-figuren --skill ios-localization-felixrauch
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: ios-localization
Source: https://github.com/FelixRauch/medat-figuren/tree/main/.agents/skills/ios-localization
Command: npx skills add https://github.com/FelixRauch/medat-figuren --skill ios-localization-felixrauch

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Prevents localization and internationalization issues in iOS/macOS apps, including broken layouts, wrong pluralization, RTL bugs, and App Store rejection risks in non-English markets.

Core Features & Use Cases

  • String Catalogs (.xcstrings): Centralizes user-facing text and plural/device variations for reliable, build-integrated localization workflows.
  • Type-safe localization access (Xcode 26+): Uses generated localizable symbols and LocalizedStringResource to reduce key typos and enable compiler-checked access.
  • Locale-aware formatting & RTL support: Ensures correct dates/numbers/currencies via FormatStyle and guarantees proper mirroring using RTL-safe layout practices.
  • Use Cases: Applying localization when adding new UI screens, migrating from .strings/.stringsdict, fixing mistranslations or plural rules, and validating RTL/Dynamic Type behavior before release.

Quick Start

Set up and verify iOS String Catalogs (.xcstrings) for your target, then ensure all user-facing text uses LocalizedStringKey or String(localized:) with RTL-safe layout and FormatStyle-based formatting.

Frequently Asked Questions about ios-localization

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I migrate iOS localization from .strings and .stringsdict to String Catalogs?▼

String Catalogs (.xcstrings) centralize user-facing text, pluralization, and device variations into a single build-integrated file, replacing fragmented legacy .strings and .stringsdict formats to prevent mistranslations and App Store rejection risks.

What is the best way to handle RTL layout and pluralization in SwiftUI?▼

To handle RTL layout and pluralization in SwiftUI, use LocalizedStringKey with proper plural rules and apply RTL-safe layout practices to guarantee correct UI mirroring and text adaptation across different languages and device types.

How does type-safe localization access work with LocalizedStringResource in Xcode?▼

Type-safe localization access uses generated LocalizedStringResource symbols to provide compiler-checked text retrieval, reducing key typos and replacing legacy APIs like NSLocalizedString with stable key naming for secure UI integration.

How do I format dates, numbers, and currencies correctly for different locales in iOS?▼

Format dates, numbers, and currencies correctly for different locales in iOS by applying FormatStyle, ensuring locale-aware formatting that adapts user-facing UI text and measurements automatically to the user's language and region settings.

Why should I use String(localized:) instead of NSLocalizedString for macOS apps?▼

You should use String(localized:) instead of NSLocalizedString because it integrates directly with modern String Catalogs and LocalizedStringResource, avoiding legacy APIs and ensuring compiler-validated, locale-safe UI text across SwiftUI and non-SwiftUI code paths.

When do I need to validate RTL layout and Dynamic Type behavior before an App Store release?▼

You need to validate RTL layout and Dynamic Type behavior before an App Store release when adding multi-language support or fixing localization issues, ensuring your iOS UI mirrors and scales correctly to avoid rejection risks in non-English markets.