Skip to main content

Screenshot Translation

Translates app marketing screenshots into 48+ locales in parallel using fal.ai and saves the results to Fastlane-compatible distribution directories for both stores.

kappmaker translate-screenshots # Uses default source dir
kappmaker translate-screenshots ./screenshots/en-US # Custom source dir
kappmaker translate-screenshots ./screenshots/en-US --locales de-DE ja-JP # Specific locales

This is the image counterpart to Metadata Localization. Pair the two for fully-localized App Store and Play Store listings.

Flow

  1. Combines source screenshots into a 2×4 grid (configurable rows / cols).
  2. Submits the grid to fal.ai for every target locale in parallel — the request runs concurrently across locales, not sequentially.
  3. Downloads the translated grids and splits each one back into individual screenshots.
  4. Writes the results to the Fastlane iOS and Android directory structure under MobileApp/distribution/.

Default source path

If you don't pass a source directory, the command defaults to:

MobileApp/distribution/ios/appstore_metadata/screenshots/en-US

If that path doesn't exist, the command falls back to scanning the parent of whatever source directory you supplied. For custom templates (i.e. anything other than the KAppMaker boilerplate), pass an explicit source path.

Output auto-detection

If the source directory is somewhere inside a distribution tree, the distribution root is auto-detected (the command walks upward looking for the marker /ios/appstore_metadata/screenshots/ or /android/playstore_metadata/). Otherwise it defaults to ./MobileApp/distribution. Override with --output.

Options

FlagDescriptionDefault
--output <path>Distribution directory rootAuto-detected
--locales <codes...>Target locale codes (space-separated) or allAll 48 locales
--rows <n>Grid rows2
--cols <n>Grid columns4
--resolution <res>AI resolution (1K, 2K, 4K)2K
--poll-interval <seconds>Seconds between status checks10

Requirements

  • falApiKey — see External Services. Prompted on first use if not set.
  • imgbbApiKey — used to upload the source grid for fal.ai to fetch. Prompted on first use if not set.

Supported locales (48 total)

Click to expand locale list
Play StoreApp StorePlay StoreApp Store
arar-SAlt-LT
bg-BGlv-LV
bn-BDmsms
cacanl-NLnl-NL
cs-CZcsno-NOno
da-DKdapl-PLpl
de-DEde-DEpt-BRpt-BR
el-GRelpt-PTpt-PT
en-AUen-AUroro
en-GBen-GBru-RUru
es-ESes-ESsksk
es-419es-MXsl-SI
et-EEsr
fi-FIfisv-SEsv
filsw
fr-FRfr-FRta-IN
fr-CAfr-CAte-IN
he-ILhethth
hi-INhitr-TRtr
hrhrukuk
hu-HUhuvivi
ididzh-CNzh-Hans
it-ITitzh-TWzh-Hant
ja-JPja
ko-KRko

Locales marked with are Android-only (no App Store equivalent).

See also

  • Metadata Localization — the text-side ASO companion. Generate localized name / keywords / description files for the same locales you translate screenshots into.
  • Screenshot Generation — generate the source screenshots from a text prompt before translating them.
  • ASO Guidelines — character limits and ranking rules that apply to your text metadata.