xcstrings-localize

xcstrings-localize is a skill for Claude Code, Codex from CH3COOH/claude-skills. It costs 142 tokens per session (3,271 once invoked), scanned A, original, MIT.

A workflow for translating an iOS app using Xcode String Catalog files, which store the app's text and translations.

In plain words
What is it for?
It helps localize iOS apps by working with xcstrings, XLIFF files, Xcode exports and imports, and AI-assisted translation.
Why use it?
It helps identify the languages in the project and move translations through export, translation, validation, and import steps.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one.

Good fit It helps localize iOS apps by working with xcstrings, XLIFF files, Xcode exports and imports, and AI-assisted translation.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/ch3cooh/claude-skills/xcstrings-localize
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add CH3COOH/claude-skills --skill xcstrings-localize
Clone the repo
git clone --depth 1 https://github.com/CH3COOH/claude-skills

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for xcstrings-localize

README.md
[![agentmods](https://agentmods.dev/badge/skills/ch3cooh/claude-skills/xcstrings-localize/github.svg)](https://agentmods.dev/skills/ch3cooh/claude-skills/xcstrings-localize)
Your own site
<a href="https://agentmods.dev/skills/ch3cooh/claude-skills/xcstrings-localize"><img src="https://agentmods.dev/badge/skills/ch3cooh/claude-skills/xcstrings-localize/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for xcstrings-localize

Your own site · 80×15
<a href="https://agentmods.dev/skills/ch3cooh/claude-skills/xcstrings-localize"><img src="https://agentmods.dev/badge/skills/ch3cooh/claude-skills/xcstrings-localize.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 142 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 3,271 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00142 $0.03271
Opus 5 $0.00071 $0.01636
Sonnet 5 $0.00028 $0.00654
Haiku 4.5 $0.00014 $0.00327

Measured 9d ago against content hash 4b9e886b474e, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-09, from the pricing page.

Security

Grade A, and why

xcstrings-localize scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 9d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

xcstrings-localize/SKILL.md · 287 lines

How it starts

The opening of the file, as written. The whole thing — 287 lines — stays where its author put it; the contents beside it link to each section on GitHub.

iOS 多言語ローカライズワークフロー

xcstrings (String Catalog) を起点とした iOS アプリの多言語対応を自動化する。 xcodebuild によるエクスポート/インポートと、XLIFF ファイルの AI 翻訳を組み合わせる。

全体フロー

xcstrings → xcodebuild -exportLocalizations → xcloc (XLIFF) → AI翻訳 → バリデーション → xcodebuild -importLocalizations → xcstrings

ステップ 0: 対象言語の特定

翻訳対象の言語はプロジェクトの設定から動的に取得する。ハードコードしない。

方法 A: xcstrings から検出(推奨)

プロジェクト内の .xcstrings ファイルは JSON 形式で、sourceLanguage と各言語の翻訳情報を保持している。

# xcstrings ファイルを探す
find . -name "*.xcstrings" -not -path "*/.*"

# 対応言語の一覧を取得(sourceLanguage 以外のキーが翻訳対象)
python3 -c "
import json, sys
with open(sys.argv[1]) as f:
    data = json.load(f)
src = data.get('sourceLanguage', 'ja')
langs = set()
for key, val in data.get('strings', {}).items():
    langs.update(val.get('localizations', {}).keys())
langs.discard(src)
print(f'開発言語: {src}')
print(f'翻訳対象: {\" \".join(sorted(langs))}')
" Localizable.xcstrings

方法 B: Xcode プロジェクト設定から検出

# .xcodeproj 内の knownRegions を取得
grep -A 20 'knownRegions' *.xcodeproj/project.pbxproj | grep -oE '"[a-z]{2}(-[A-Za-z]+)?"'

方法 C: ユーザー指定

ユーザーが「英語とフランス語に翻訳して」のように明示した場合は、その言語のみを対象とする。

言語コードの対応表(参考)

よく使われる言語コード:

  • en (英語), zh-Hans (中国語簡体字), zh-Hant (中国語繁体字)
  • ko (韓国語), fr (フランス語), de (ドイツ語)
  • es (スペイン語), it (イタリア語), pt-BR (ポルトガル語・ブラジル)
  • th (タイ語), vi (ベトナム語), id (インドネシア語)
  • ar (アラビア語), hi (ヒンディー語)

ステップ 1: xcloc パッケージのエクスポート

ステップ 0 で特定した言語を -exportLanguage に指定してエクスポートする。

# 例: LANGUAGES 変数に検出結果を格納してエクスポート
xcodebuild -exportLocalizations \
  -project <プロジェクト名>.xcodeproj \
  -localizationPath ./Localizations \
  $(printf -- '-exportLanguage %s ' ${LANGUAGES})

注意事項

  • プロジェクトの場合は -project、ワークスペースの場合は -workspace-scheme を指定する
  • -exportLanguage を省略すると開発言語のみエクスポートされる
  • コマンドは全ターゲットをビルドするため、コンパイルエラーがあると失敗する
  • 出力先に Localizations/{lang}.xcloc/ が言語ごとに生成される

ステップ 2: XLIFF ファイルの翻訳

2-1. 対象ファイルの特定

xcloc パッケージ内の XLIFF ファイルパスは以下の規則に従う:

{言語コード}.xcloc/Localized Contents/{言語コード}.xliff

Read the full file on GitHub · 287 lines

Files

What ships with it

2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 9d ago First seen · 287 lines · 142 tokens per session scan A 4b9e886b474e

Subscribe to this mod's changes

xcstrings-localize is a skill published in the GitHub repository CH3COOH/claude-skills (2 stars, last pushed 2mo ago), licensed MIT. It adds 142 tokens to every session and 3,271 once invoked, about $0.0007 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

localization-patterns

Localization patterns for mobile - string resources, plurals, RTL support, Compose localization, KMP shared strings, and locale management.

ahmed3elshaer/everything-claude-code-mobile · 31 tokens

ax-privacy

Privacy manifests, permissions UX, ATT, localization (String Catalogs, plurals, RTL, Xcode 26 generated symbols), Transferable/drag-drop/copy-paste/ShareLink, App Intents discoverability, debug deep links, and Required Reason APIs.

Kasempiternal/axiom-v2 · 57 tokens

swift-formatstyle

Formats and parses locale-aware numbers, decimals, currencies, percentages, dates, durations, measurements, names, lists, byte counts, and URLs with Foundation FormatStyle and ParseableFormatStyle. Use when replacing legacy Formatter subclasses, designing reusable format APIs, using SwiftUI Text(:format:), correcting…

thiennc-tesoglobal/ios-skills · 74 tokens

ios-marketing-capture

Use when the user wants to automate capture of marketing screenshots for a SwiftUI iOS app across multiple locales, devices, or appearances. Covers full-screen shots, isolated element renders (carousel cards, widgets), and reproducible output naming. Triggers on marketing screenshots, locale screenshots, widget…

ParthJadhav/ios-marketing-capture · 78 tokens

workflow-audit

Systematic UI workflow auditing for SwiftUI applications. Discovers entry points, traces user flows, detects dead ends and broken promises, audits data wiring, evaluates from user perspective. Triggers: "workflow audit", "audit flows", "find dead ends", "check navigation".

Terryc21/workflow-audit · 59 tokens

swift-expert

Expert-level Swift development for iOS, macOS with SwiftUI, Combine, and modern Swift 5.9+. Use when the user mentions iOS, macOS, SwiftUI, Combine, async await, or Apple platforms, or when the task involves Modern Swift Features, Basics and Optionals, Functions and Closures, or Structs and Classes.

personamanagmentlayer/pcl · 76 tokens