SuperAPI AI Directory

appshots-translation

Writing & research

View repository

Updated 10-16 05:43

About this skill

App Screenshots Translation

Multi-language screenshot translation with AI or manual input, per-locale layout customization, and quality verification.

Why Localize?

Apple reports that localized screenshots can increase downloads by up to 4×. Localization goes beyond text translation — it includes font selection, layout adjustment, and cultural adaptation.

AI Translation Workflow

# 1. Set context for better, more relevant translations
appshots translate set-prompt --prompt "Habit tracking & productivity app for iOS"

# 2. Get all text overlays from all designs (useful for review)
appshots --json translate get-texts

# 3. AI-translate to multiple locales at once
appshots translate all --from en --to ja,ko,de,fr,es,pt,zh
4. Preview each locale in the editor

appshots translate preview --locale ja


## Text Expansion Reference

English is one of the most compact languages. Always design with expansion room:

| Language | Expansion | Key Challenge | Fix |
|----------|----------|---------------|-----|
| **German (de)** | **+30-40%** | Long compound words | `--font-size 72` (reduce ~20%) |
| **Finnish (fi)** | **+30-40%** | Very long words | `--font-size 70` |
| **French (fr)** | +15-25% | Articles lengthen | `--font-size 80` |
| **Spanish (es)** | +15-20% | Slightly longer | Minor reduction |
| **Portuguese (pt)** | +15-25% | Similar to French | Minor reduction |
| **Hindi (hi)** | +20-30% | Devanagari spacing | `--font-size 72` |
| **Japanese (ja)** | Same or shorter | Needs CJK font | `--font "Noto Sans JP"` |
| **Korean (ko)** | Same or shorter | Needs CJK font | `--font "Noto Sans KR"` |
| **Chinese (zh)** | -10-30% shorter | Needs CJK font | `--font "Noto Sans SC"` |
| **Arabic (ar)** | Varies | RTL layout | May need `--x` / position flip |
| **Thai (th)** | Varies | Tall stacking marks | Consider `--font-size` increase |

## Per-Locale Style Overrides

When a locale's text doesn't fit, override the font, size, or position for that specific locale:

```bash
# Reduce font size for German (text too long)
appshots translate override-overlay --locale de \
  --overlay-id <id> --font-size 72

# Use CJK font for Japanese
appshots translate override-overlay --locale ja \
  --overlay-id <id> --font "Noto Sans JP" --font-size 80

# Use CJK font for Korean
appshots translate override-overlay --locale ko \
  --overlay-id <id> --font "Noto Sans KR"

# Reposition text for Arabic (RTL)
appshots translate override-overlay --locale ar \
  --overlay-id <id> --x 50 --y 100

# Multiple properties at once
appshots translate override-overlay --locale de \
  --overlay-id <id> \
  --font "Inter" --font-size 70 \
  --width 900 --scale 0.9

Override Properties

Option Description
--font Google Font name (e.g., "Noto Sans JP")
--font-size Font size in points
--x, --y Position override
--scale Scale factor
--rotation Rotation
--width Text box width
--color Text color (hex)
--font-weight Weight index (0-8)

Per-Locale Screenshot Images

Some locales need different app screenshots (localized UI):

appshots translate set-locale-image --locale ja --file /path/to/ja_screenshot.png
appshots translate set-locale-image --locale ko --file /path/to/ko_screenshot.png

Manual Translation

# Edit a single overlay's translation
appshots translate edit --locale ja --overlay-id <id> --text "習慣トラッカー"

# Bulk apply translations (JSON: overlayId → text)
# For multi-screenshots, key format is "designIndex:overlayId"
appshots translate apply-manual --locale ja \
  --translations '{"0:<overlayId>":"翻訳テキスト","1:<overlayId>":"テキスト2"}'

Post-Translation Verification Workflow

This is the most critical step. Always verify every locale visually.

# Check worst offenders first (German = usually longest)
appshots translate preview --locale de
# → Is text cut off? Does it wrap properly? Readable?

# Check CJK rendering
appshots translate preview --locale ja
# → Is the CJK font applied? Glyphs correct?

appshots translate preview --locale ko
appshots translate preview --locale zh

# Check RTL if applicable
appshots translate preview --locale ar

# Check remaining locales
appshots translate preview --locale fr
appshots translate preview --locale es
appshots translate preview --locale pt

# Fix any issues found
appshots translate override-overlay --locale de --overlay-id <id> --font-size 70

# Clear preview when done
appshots translate preview --locale none

# Save with all translations
appshots multi save-design --name "My Screenshots" --override

Per-Locale Export

Export separate screenshot sets per locale:

for locale in ja ko de fr es pt zh; do
  appshots translate preview --locale $locale
  appshots editor export-all --dir ~/Desktop/screenshots/$locale
done
appshots translate preview --locale none

Remove a Locale

appshots translate remove-locale --locale ko

Commands Reference

Command Description
translate state Translation state & locale statuses
translate get-texts Get all texts from all designs
translate all --from en --to ja,ko AI-translate to targets
translate preview --locale ja Preview locale in editor
translate edit Edit single translation
translate apply-manual Bulk manual translations
translate remove-locale Remove all translations for locale
translate set-prompt Set AI context prompt
translate override-overlay Per-locale style override
translate set-locale-image Per-locale screenshot image