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.