Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Fill missing i18n translations in the viewer source JSON. Run this after adding or modifying English or Chinese UI strings in claude_tap/viewer_i18n.json — it auto-translates to ja, ko, fr, ar, de, ru via OpenRouter.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | -50% | 0% |
| case-06 | ✗→✓ | ▲ Improved | -29% | 0% |
| case-07 | ✗→✓ | ▲ Improved | -67% | 0% |
| case-09 | ✗→✓ | ▲ Improved | -32% | 0% |
| case-11 | ✗→✓ | ▲ Improved | -53% | 0% |
Automatically fill missing translations for the viewer's claude_tap/viewer_i18n.json source file. The script uses English and Chinese as source languages and translates to Japanese, Korean, French, Arabic, German, and Russian.
OPENROUTER_API_KEY must be set in the environment (it is in the user's .zshrc)google/gemini-2.5-flashAlways preview first to confirm which keys need translation:
bashuv run python scripts/translate_i18n.py --dry-run
This parses claude_tap/viewer_i18n.json, finds keys present in both en and zh-CN but missing in other languages, and lists them without modifying the file.
bashuv run python scripts/translate_i18n.py
The script calls OpenRouter once per target language, then writes the translations back into viewer_i18n.json in-place.
After translation, run the formatter and tests to make sure nothing broke:
bashuv run python -m json.tool claude_tap/viewer_i18n.json >/dev/null uv run pytest tests/test_translate_i18n.py -v
| Flag | Purpose | |------|---------| | --dry-run | Show missing keys only, no file changes | | --model MODEL | Override the OpenRouter model (default: google/gemini-2.5-flash) | | --target {viewer,cli} | Translation target preset (default: viewer) | | --file PATH | Override target file path | | --object-name NAME | Override the legacy JS/Python i18n object name |
The script:
en + zh-CN but missing in target languagesAdded a new UI string: Add the key to both en and zh-CN blocks in claude_tap/viewer_i18n.json, then run this skill. The other 6 languages will be filled automatically.
Changed an existing string: The script only fills missing keys. To re-translate an existing key, first delete it from the target language blocks, then run the script.
Other measured skills in the registry, with their headline benchmark lift.