Authoritative App Intents best practices from Apple: execution model, entities, queries, parameters, enums, dependencies, and donations.
日本語の概要は準備中です。原文の説明を表示しています。
Inspect and edit Xcode String Catalogs (.xcstrings) via bundled l10n.sh and find_unused_keys.sh scripts, and apply Apple localization conventions.
インストールする前に、エージェントに与えられる指示の中身を確認できます。
The scripts work on any Xcode String Catalog (.xcstrings). They auto-discover
the catalog by searching the project for .xcstrings files (preferring
Localizable.xcstrings when several exist) and can be pointed at a specific
one with the L10N_FILE env var. Run l10n.sh file to see which catalog is
targeted.
String catalogs are usually too large to open with the Read/Edit tools — use
the scripts instead. They operate on the catalog with jq, write changes back
atomically, and re-serialize to Xcode's exact on-disk format (Xcode writes
"key" : value with spaces around the colon; without normalization every edit
would produce a huge spurious git diff).
Both scripts resolve the project root from their own location, so they can be run from any working directory.
.claude/skills/localization/scripts/l10n.sh <command> [args]
| Command | Purpose |
|---|---|
file | Print the resolved catalog path |
keys | List all translatable keys |
search <pattern> | Search keys (case-insensitive) |
search-values <pattern> | Search translation values; prints key⇥lang⇥value |
get <key> | Show all translations for a key (raw JSON) |
comment <key> [text] | Show or set the translator comment for a key |
set <key> <lang> <value> | Set a single translation |
set-plural <key> <lang> <cat> <value> | Set a plural variant (zero|one|two|few|many|other) |
batch-set <file.tsv> | Bulk set from a TSV file (key⇥lang⇥value), single pass |
missing <lang> | Keys missing or pending (state ≠ translated) for <lang> |
stats [lang] | Per-language translated counts, plus pending/stale totals |
stale | Keys Xcode marked extractionState: "stale" (removed from code) |
rename <old> <new> | Rename a key, preserving translations |
delete <key> [lang] | Delete a key, or just one language's translation |
normalize | Re-serialize the file to Xcode's exact .xcstrings format |
set "New key" en "New key"), then other languages, then a translator
comment (comment <key> <text>). Keys are created on first set.batch-set over many set calls — it applies
all rows in one pass. Build a TSV with one key⇥lang⇥value row per cell;
\n and \t escapes in values become real newlines/tabs.set refuses keys that use variations; use set-plural, which also
converts a flat value to plural form. Fill every category the language
requires (English: one/other; Russian: one/few/many/other; …).en,
de, fr, …). Run stats to see which languages exist.set, set-plural, and batch-set mark each unit state: "translated"..claude/skills/localization/scripts/find_unused_keys.sh
Lists catalog keys not referenced anywhere in the project sources (Swift,
ObjC, storyboards/xibs). Matching accounts for format specifiers (%@,
%lld, …), Swift string-escape forms, and interpolation; placeholder-only
keys it cannot verify are listed separately. Matching is textual, so keys
built dynamically at runtime are invisible to it — verify each hit, then
remove confirmed-unused keys with l10n.sh delete <key>. Cross-check with
l10n.sh stale for keys Xcode itself no longer extracts.
Full guidance distilled from Apple's docs lives in references/best-practices.md — consult it when writing or reviewing localizable Swift code. The short version:
Text/Label/etc. are auto-localizable; elsewhere use
String(localized:), and pass strings around as LocalizedStringResource,
not String. In frameworks/packages, pass bundle: #bundle.formatted(…) styles, which localize per locale.shouldTranslate: false instead of deleting
them; keep unreviewed machine translations in needs_review state.まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Authoritative App Intents best practices from Apple: execution model, entities, queries, parameters, enums, dependencies, and donations.
日本語の概要は準備中です。原文の説明を表示しています。
New App Intents APIs and behaviors for iOS 27 and macOS 27: SnippetIntent, LongRunningIntent, execution modes, and interactive snippets.
日本語の概要は準備中です。原文の説明を表示しています。
Apple Human Interface Guidelines as structured design values — system colors (incl. increased-contrast variants), the full Dynamic Type ramp, Liquid Glass rules and budgets, layout and hit-target metrics, SF Symbols, and HIG-to-SwiftUI component mappings. Use when styling or reviewing any Apple-platform UI: picking a color, size, spacing, corner radius, or hit target; writing .glassEffect / material code; choosing an SF Symbol; or answering 'what does the HIG say about X'.
日本語の概要は準備中です。原文の説明を表示しています。
Run an offline ASO audit on canonical App Store metadata under `./Store` and surface keyword gaps using Astro MCP. Use after pulling metadata with `asc metadata pull`.
日本語の概要は準備中です。原文の説明を表示しています。
Track build processing, find latest builds, and clean up old builds with asc. Use when managing build retention or waiting on processing.
日本語の概要は準備中です。原文の説明を表示しています。
Guidance for using asc cli in this repo (flags, output formats, pagination, auth, and discovery). Use when asked to run or design asc commands or interact with App Store Connect via the CLI.
日本語の概要は準備中です。原文の説明を表示しています。