# Fill Translations

Fill missing Reactive Resume translations across all configured web and mobile locales...

- Repository: https://github.com/reactive-resume/reactive-resume (45160 stars)
- Category: Engineering
- License: MIT
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add reactive-resume/reactive-resume --skill fill-translations -g -a claude-code -y`
Codex: `npx skills add reactive-resume/reactive-resume --skill fill-translations -g -a codex -y`
Cursor: `npx skills add reactive-resume/reactive-resume --skill fill-translations -g -a cursor -y`
Gemini CLI: `npx skills add reactive-resume/reactive-resume --skill fill-translations -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add reactive-resume/reactive-resume`

## Description

Fill missing Reactive Resume translations across all configured web and mobile locales using parallel subagents, then prove catalog completeness. Use for “fill translations”, “complete translations”, missing locale strings, or a request to ensure translations are complete before release. Cover existing gaps unrelated to the current task unless the user explicitly narrows scope. Do not activate for ordinary prose translation or a read-only audit that forbids edits.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Fill translations

Finish every active catalog entry, including older gaps outside the current feature. Preserve existing translations and unrelated work. Technical completeness and linguistic quality are separate claims.

Run from the Reactive Resume checkout root. Follow its `AGENTS.md`, command wrappers, and current package scripts. Commands below match its Lingui 6 workflow; inspect installed `--help` if flags change. Use existing dependencies; no translation service or new dependency is required.

## Establish the baseline

1. Read `GLOSSARY.md`, both apps' `lingui.config.ts`, relevant package scripts, and `apps/mobile/scripts/seed-locales.mjs`. Derive locales, source locale, and pseudo-locale from current config rather than a fixed locale count. Currently `zu-ZA` is a generated pseudo-locale, not Zulu translation work.
2. Capture `git status --short` and the initial diff. Save copies of catalog bytes outside the checkout so preservation checks compare against current work, not `HEAD`. Record pre-existing compiled locale files too. Keep staged/unstaged changes intact; no reset, checkout, clean, commit, push, or release unless separately requested.
3. Extract all source strings in both apps, sequentially, before dispatching workers:

   ```sh
   pnpm --filter web lingui:extract
   pnpm --filter mobile lingui:extract
   ```

   The root `lingui:extract` currently covers web only. Web's script cleans obsolete entries and overwrites the source locale from source messages; mobile's script also seeds empty entries from web. These extraction changes are expected. Compare preservation of active nonempty target translations against the post-extraction baseline.

4. Run both missing checks, capturing each exit code and verbose findings even when one fails:

   ```sh
   pnpm --filter web exec lingui check missing --mode catalog --verbose
   pnpm --filter mobile exec lingui check missing --mode catalog --verbose
   ```

The rest: https://github.com/reactive-resume/reactive-resume/blob/HEAD/.agents/skills/fill-translations/SKILL.md
