diff --git a/.claude/skills/find-missing-translations/SKILL.md b/.claude/skills/find-missing-translations/SKILL.md new file mode 100644 index 000000000..36bf02c91 --- /dev/null +++ b/.claude/skills/find-missing-translations/SKILL.md @@ -0,0 +1,77 @@ +--- +name: find-missing-translations +description: Use when comparing Android strings.xml locale files to find untranslated string resources, missing translation keys, or preparing translation work for a specific language +--- + +# Find Missing Translations + +## Overview + +Extract string resource keys from the default `values/strings.xml` that are absent in a target locale's `strings.xml`, excluding non-translatable entries. Outputs a table ready for translation. + +## When to Use + +- Need to find untranslated strings for a specific locale +- Preparing a batch of strings for a translator +- Checking translation coverage after adding new features + +## Technique + +### 1. Identify files + +``` +Default: amethyst/src/main/res/values/strings.xml +Target: amethyst/src/main/res/values-/strings.xml +``` + +Default locale: `cs-rCZ` if none specified. User may override (e.g., `pt-rBR`, `ja`). + +### 2. Extract and diff keys + +Use a single bash pipeline to extract translatable keys from both files and diff them: + +```bash +# Extract translatable keys from default (exclude translatable="false") +comm -23 \ + <(grep 'Valid + Valid from %1$s + Lists +``` + +Also check `` and `` tags using the same approach if the project uses them. + +## Common Mistakes + +- **Forgetting `translatable="false"`** — these should never appear in locale files +- **Not checking string-arrays/plurals** — only checking `` misses other resource types +- **Modifying files** — this is a read-only research task unless the user asks to add entries \ No newline at end of file