Skillshub ios-localization

Standards for String Catalogs, L10n, and Asset Management. Use when adding multi-language support using iOS String Catalogs or L10n workflows. (triggers: **/*.stringcatalog, **/*.xcassets, **/*.strings, LocalizedStringResource, NSLocalizedString, String(localized:))

install
source · Clone the upstream repo
git clone https://github.com/ComeOnOliver/skillshub
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ComeOnOliver/skillshub "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/HoangNguyen0403/agent-skills-standard/ios-localization" ~/.claude/skills/comeonoliver-skillshub-ios-localization && rm -rf "$T"
manifest: skills/HoangNguyen0403/agent-skills-standard/ios-localization/SKILL.md
source content

iOS Localization & Assets Standards

Priority: P1

Implementation Guidelines

Localization (L10n)

  • String Catalogs (.stringcatalog): Use for primary localization in Xcode 15+. It provides a visual editor and compile-time checks for missing translations.
  • Native Implementation: Use
    String(localized: "key")
    or
    LocalizedStringResource
    . Avoid manual
    NSLocalizedString
    where possible.
  • Pluralization: Use String Catalogs' built-in pluralization support instead of complex code logic.
  • Formatting: Use
    Formatted
    API for dates, numbers, and currencies to respect the user's locale.

Asset Management

  • Asset Catalogs (.xcassets): Keep assets organized. Use folders with "Provides Namespace" enabled for large projects.
  • SF Symbols: Use for standard icons to ensure consistency and accessibility.
  • Vector Assets: Use PDF or SVG and enable "Preserve Vector Data" for resolution independence.

Best Practices

  • Hardcoded Strings: Never use hardcoded strings in UI. Every user-facing string must be localized.
  • Base Bundle: Ensure
    Base
    localization is complete before adding other languages.

Anti-Patterns

  • No manual currency symbol concat: Use NumberFormatter or .formatted(.currency).
  • No loose png/jpg files in repo: Always use Asset Catalogs.
  • No placeholder strings: Ensure 100% coverage in String Catalogs.

References