Agent skill

Localization Setup

by rshankras in rshankras/claude-code-apple-skills

Generate internationalization (i18n) infrastructure for multi-language support in iOS/macOS apps.

MITAuto-check: notesFrontend & Design

Install Localization Setup

skills CLI
$ npx skills add rshankras/claude-code-apple-skills --skill localization-setup -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install rshankras/claude-code-apple-skills localization-setup --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/rshankras/claude-code-apple-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/generators/localization-setup .claude/skills/localization-setup && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
localization-setup
GitHub stars
781
Token cost
~1.4k tokens
SKILL.md length
270 words
Files
5
Skills in repo
46
Repo updated
First seen
Licence
MIT

At a glance

Generate internationalization (i18n) infrastructure for multi-language support in iOS/macOS apps.

  • Works in 8 steps: Localization Approach → Initial Languages → Features → …
  • Localizing for multiple languages
  • SKILL.md covers When This Skill Activates, Pre-Generation Checks, Configuration Questions and Generated Files, plus 4 more sections
  • Runs Swift scripts from its folder

What it does

Localization Setup is an agent skill from rshankras/claude-code-apple-skills. Generate internationalization (i18n) infrastructure for multi-language support in iOS/macOS apps. Use when localizing for multiple languages, adopting String Catalogs (xcstrings), or supporting RTL languages.

Its SKILL.md is about 1.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files (for example `localization-patterns.md`).

It sits in Frontend & Design, covering Internationalization and iOS development. It works with iOS, macOS, SwiftUI and Xcode. The repository describes itself as: Claude Code skills for Apple platform development (iOS, macOS, iPadOS) — product validation, code generation, App Store optimization, and more. The licence is MIT.

When your agent uses it

  • Localizing for multiple languages
  • Adopting String Catalogs (xcstrings)
  • Supporting RTL languages

Example prompts

  • “/localization-setup”

Requirements

  • Pre-approved tools (allowed-tools): Read, Write, Edit, Glob, Grep, Bash, AskUserQuestion

Workflow steps

8 steps, taken from the step headings in SKILL.md.

  1. Localization Approach
  2. Initial Languages
  3. Features
  4. Add String Catalog
  5. Add Supported Languages
  6. Migrate Existing Strings
  7. Use in SwiftUI
  8. Use in UIKit

What it can do on your machine

Read from SKILL.md and the folder at commit 9ffb831. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Write
    • Edit
    • Glob
    • Grep
    • Bash
    • AskUserQuestion

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships script files (Swift), which the agent can run.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • developer.apple.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Localization Setup loads about 1.4k tokens when it runs. Until then it costs about 57 tokens; SKILL.md has 270 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~57
When it runs · the whole SKILL.md, loaded when a task matches
~1.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Read, Write, Edit, Glob, Grep, Bash, AskUserQuestion

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from rshankras/claude-code-apple-skills at commit 9ffb831, republished under its MIT licence (© rshankras). 270 words, ~1,428 tokens.

Download SKILL.mdSave it as .claude/skills/localization-setup/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.
name
localization-setup
description
Generate internationalization (i18n) infrastructure for multi-language support in iOS/macOS apps. Use when localizing for multiple languages, adopting String Catalogs (xcstrings), or supporting RTL languages.
allowed-tools
Read, Write, Edit, Glob, Grep, Bash, AskUserQuestion
last_verified
2026-07-16
review_by
2027-06-22
os_version
iOS 27 / macOS 27

Localization Setup Generator

Generate internationalization (i18n) infrastructure for multi-language support in iOS/macOS apps.

When This Skill Activates

  • User wants to localize their app for multiple languages
  • User mentions i18n, internationalization, or localization
  • User asks about String Catalogs or .strings files
  • User wants to support RTL (right-to-left) languages

Pre-Generation Checks

Before generating, verify:

  1. Existing Localization

    bash
    # Check for existing localization files
    find . -name "*.xcstrings" -o -name "Localizable.strings" 2>/dev/null | head -5
    find . -name "*.lproj" -type d 2>/dev/null | head -5
  2. Deployment Target

    bash
    # String Catalogs require iOS 16+ / macOS 13+
    grep -r "IPHONEOS_DEPLOYMENT_TARGET\|MACOSX_DEPLOYMENT_TARGET" *.xcodeproj 2>/dev/null
  3. Project Structure

    bash
    # Find project for adding localization
    find . -name "*.xcodeproj" | head -1

Configuration Questions

1. Localization Approach
  • String Catalogs (Recommended, iOS 16+) - Modern, visual editor in Xcode
  • Legacy .strings - Traditional approach, all iOS versions
2. Initial Languages
  • English (en) - default
  • Which additional languages? (e.g., es, de, fr, ja, zh-Hans)
3. Features
  • Pluralization - Handle "1 item" vs "2 items"
  • Device-specific - Different strings for iPhone/iPad/Mac
  • SwiftUI Preview - Preview in different locales

Generated Files

Resources/
└── Localizable.xcstrings    # String catalog with all translations
Supporting Code
Sources/Localization/
├── LocalizedStrings.swift   # Type-safe string access
├── LocalizationManager.swift # Runtime language switching
└── LocalizedPreview.swift   # SwiftUI preview helpers

Key Features

Type-Safe String Access
swift
// Generated enum for type-safe access
enum L10n {
    static let appName = String(localized: "app_name")
    static let welcomeMessage = String(localized: "welcome_message")

    enum Settings {
        static let title = String(localized: "settings_title")
        static let language = String(localized: "settings_language")
    }
}

// Usage
Text(L10n.appName)
Text(L10n.Settings.title)
Pluralization
swift
// In String Catalog, define plural rules
// key: "items_count"
// variations:
//   - zero: "No items"
//   - one: "1 item"
//   - other: "%lld items"

Text(String(localized: "items_count \(count)",
            defaultValue: "\(count) items"))
String Interpolation
swift
// In String Catalog:
// key: "greeting"
// value: "Hello, %@!"

let name = "Alice"
Text(String(localized: "greeting \(name)"))
Runtime Language Switching
swift
// Preview in different locale
struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
            .environment(\.locale, Locale(identifier: "es"))
    }
}

Integration Steps

1. Add String Catalog
  1. In Xcode: File > New > File
  2. Choose "String Catalog"
  3. Name it "Localizable.xcstrings"
  4. Add to your app target
2. Add Supported Languages
  1. Select project in navigator
  2. Info tab > Localizations
  3. Click + to add languages
3. Migrate Existing Strings

If migrating from .strings files:

  1. Right-click .strings file
  2. "Migrate to String Catalog..."
4. Use in SwiftUI
swift
// Automatic localization
Text("Hello, World!")  // Uses String Catalog automatically

// Explicit localized string
Text(String(localized: "custom_key"))

// With type-safe enum (generated)
Text(L10n.welcomeMessage)
5. Use in UIKit
swift
label.text = String(localized: "hello_world")
// or
label.text = NSLocalizedString("hello_world", comment: "Greeting")

Best Practices

Key Naming Conventions
// Good: Descriptive, hierarchical
"settings.appearance.theme"
"onboarding.step1.title"
"error.network.connection_failed"

// Avoid: Vague or hardcoded text as key
"button1"
"Hello, World!"
Comments for Translators
swift
String(localized: "delete_confirmation",
       comment: "Alert message asking user to confirm deletion")
Formatting
swift
// Numbers - Use FormatStyle
Text(price, format: .currency(code: "USD"))

// Dates - Use FormatStyle
Text(date, format: .dateTime.month().day())

// Lists - Use ListFormatStyle
Text(items, format: .list(type: .and))
RTL Support
swift
// Automatic with SwiftUI
// For manual layout adjustments:
.environment(\.layoutDirection, .rightToLeft)

Testing Localization

In Xcode
  1. Edit Scheme > Run > Options
  2. Set "App Language" to test language
  3. Set "App Region" for number/date formatting
In SwiftUI Previews
swift
#Preview {
    ContentView()
        .environment(\.locale, Locale(identifier: "ja"))
}
Export for Translation
  1. Product > Export Localizations...
  2. Share .xliff files with translators
  3. Import translated .xliff files

References

© rshankras, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 4 other files in skills/generators/localization-setup of rshankras/claude-code-apple-skills.

  • SKILL.md
  • localization-patterns.md
  • templates/LocalizationManager.swift
  • templates/LocalizedPreview.swift
  • templates/LocalizedStrings.swift

Open the folder on GitHubat commit 9ffb831

Compare with similar skills

Localization Setup next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Localization Setup compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Localization Setup this skillrshankras/claude-code-apple-skills781—~1.4kAutomated safety check: NotesMIT
Xcstrings ManagerEslzzyl/Pixiv-SwiftUI111—~482Automated safety check: PassAGPL-3.0
iOS Patternshanamizuki/solopreneur152—~2.3kAutomated safety check: NotesMIT
SwiftUI Design SkillWholiver/swiftui-design-skill210—~2.8kAutomated safety check: PassMIT
FlowdeckSwiftedMind/Tessera116—~11kAutomated safety check: PassMIT
Bootstrap iOSRayFernando1337/rayfernando-skills130—~1.1kAutomated safety check: PassApache-2.0

Similar skills

  • Xcstrings Manager

    Eslzzyl/Pixiv-SwiftUI

    Manage Xcode String Catalog (.xcstrings) localization files through a command-line interface.

    111 GitHub stars~482 tokensUpdated today
    MobileAuto-check passed
  • iOS Patterns

    hanamizuki/solopreneur

    A skill your agent uses when building iOS/macOS apps with SwiftUI — covers localization (String Catalogs), date/time formatting, JSON date decoding, Previews, state management, sheet/navigation…

    152 GitHub stars~2.3k tokensUpdated 11 days ago
    Frontend & DesignAuto-check: notes
  • SwiftUI Design Skill

    Wholiver/swiftui-design-skill

    Guides the agent to design distinctive SwiftUI interfaces for iOS and macOS, with six anti-generic rules, a design direction workflow and a five-dimension review.

    210 GitHub stars~2.8k tokensUpdated 5 mo ago
    MobileAuto-check passed
  • Flowdeck

    SwiftedMind/Tessera

    FlowDeck is REQUIRED for all Apple platform build/run/test/launch/debug/simulator/device/log/automation tasks.

    116 GitHub stars~11k tokensUpdated 5 mo ago
    MobileAuto-check passed
  • Bootstrap iOS

    RayFernando1337/rayfernando-skills

    Bootstrap agents for iOS, iPadOS, macOS, Swift, SwiftUI, SwiftData/Core Data, Swift Testing, Xcode build/test/debug, Simulator, App Intents, or XcodeBuildMCP work.

    130 GitHub stars~1.1k tokensUpdated 2 mo ago
    MobileAuto-check passed
  • iOS Localization

    dpearson2699/swift-ios-skills

    Implement, review, or improve localization and internationalization in iOS/macOS apps — String Catalogs (.xcstrings), generated localizable symbols, stable key naming, LocalizedStringKey…

    1.2k GitHub stars~3.6k tokensUpdated 2 mo ago
    Frontend & DesignAuto-check passed

More from rshankras/claude-code-apple-skills

All 46 skills in this repo
  • Accessibility Generator

    rshankras/claude-code-apple-skills

    Generate accessibility infrastructure for VoiceOver, Dynamic Type, and accessibility features.

    781 GitHub stars~1.4k tokensUpdated 2 mo ago
    Auto-check: notes
  • Animation Patterns

    rshankras/claude-code-apple-skills

    SwiftUI animation patterns including springs, transitions, PhaseAnimator, KeyframeAnimator, SF Symbol effects, scroll-driven effects, mesh gradients, text renderers, and shader effects.

    781 GitHub stars~2.1k tokensUpdated 2 mo ago
    Auto-check passed
  • App Description Writer

    rshankras/claude-code-apple-skills

    Generate compelling App Store descriptions that convert browsers into users.

    781 GitHub stars~1.3k tokensUpdated 2 mo ago
    Auto-check passed
  • App Icon Generator

    rshankras/claude-code-apple-skills

    Generates an app icon for macOS or iOS — a fast CoreGraphics placeholder and/or flat layered source art to finish in Icon Composer (the Liquid Glass / iOS 26+ standard).

    781 GitHub stars~5.1k tokensUpdated 2 mo ago
    Auto-check: notes
  • App Namer

    rshankras/claude-code-apple-skills

    Turn an app idea into validated, App-Store-ready name candidates.

    781 GitHub stars~3.4k tokensUpdated 2 mo ago
    Auto-check passed
  • Bundles And Licensing

    rshankras/claude-code-apple-skills

    Revenue beyond the single-app price tag — own-app bundles, Family Sharing as a conversion lever, cross-developer bundles & suites, and institutional licensing via Group Purchases / Apple School &…

    781 GitHub stars~1.8k tokensUpdated 2 mo ago
    Auto-check passed

Questions about Localization Setup

What does Localization Setup do?

Generate internationalization (i18n) infrastructure for multi-language support in iOS/macOS apps. Localization Setup is an agent skill from rshankras/claude-code-apple-skills. Generate internationalization (i18n) infrastructure for multi-language support in iOS/macOS apps.

When should I use Localization Setup?

Localization Setup fits situations like: localizing for multiple languages; adopting String Catalogs (xcstrings); supporting RTL languages.

How do I install Localization Setup in Claude Code?

Run `npx skills add rshankras/claude-code-apple-skills --skill localization-setup -a claude-code`. Or copy the skill folder (skills/generators/localization-setup in rshankras/claude-code-apple-skills) into .claude/skills/localization-setup in your project. Claude Code loads it when a task matches its description.

How do I install Localization Setup in Codex?

Run `npx skills add rshankras/claude-code-apple-skills --skill localization-setup -a codex`. Or copy the skill folder (skills/generators/localization-setup in rshankras/claude-code-apple-skills) into .agents/skills/localization-setup in your project. Codex loads it when a task matches its description.

Can I use Localization Setup in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add rshankras/claude-code-apple-skills --skill localization-setup -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/localization-setup, .gemini/skills/localization-setup, .github/skills/localization-setup and .opencode/skills/localization-setup in your project.

What does Localization Setup need to run?

Going by SKILL.md and its folder, Localization Setup needs Swift for the scripts in its folder. Its frontmatter pre-approves these tools: Read, Write, Edit, Glob, Grep, Bash, AskUserQuestion.

Does Localization Setup access the network?

SKILL.md names 1 domain. As links in the text: developer.apple.com. This is read from the text; nothing was executed.

Is Localization Setup safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Localization Setup use?

Localization Setup is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Localization Setup use?

About 1.4k tokens (SKILL.md is roughly 5.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Localization Setup?

Skills that share tags, products or a category with Localization Setup: Xcstrings Manager (Eslzzyl/Pixiv-SwiftUI, 111 stars), iOS Patterns (hanamizuki/solopreneur, 152 stars), SwiftUI Design Skill (Wholiver/swiftui-design-skill, 210 stars) and Flowdeck (SwiftedMind/Tessera, 116 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Localization Setup?

rshankras (a GitHub user) maintains it in rshankras/claude-code-apple-skills, which has 781 GitHub stars. The repository holds 46 skills in this directory. The repository was last updated on July 24, 2026.

Source: rshankras/claude-code-apple-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.