--- 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