# How to Bulk-Translate a Locale

> Fill all missing translations in a locale with one click, with progress tracking and cancel support.

Source: https://stringlane.app/docs/bulk-translate-a-locale
Last updated: 2026-08-19

Bulk translation sends all missing (or all) keys in a locale to your AI provider sequentially. It's the fastest way to get a new locale from empty to complete.

## Requirements

Configure an AI provider in **Settings → App → AI Providers** first. See [Set Up AI Translation in 5 Minutes](/docs/set-up-ai-translation).

## Starting a bulk translation

Click **✨ Translate…** in the sidebar footer, next to **+ Key**. The popover has two groups:

- **Missing keys** — one row per locale that still has gaps, with the count (`fr · 2 missing`). Translates only those keys and leaves existing values alone.
- **Re-translate all** — one row per non-base locale, with the total key count. Overwrites every existing value, and says so.

Pick a row to open the bulk translate dialog.

> Tip: prefer the Command Palette's **Translate all missing with AI** when you want to fill gaps across *every* non-base locale in one pass — see [How to Translate All Missing Cells at Once](/docs/translate-all-missing). The Translate… popover is the right tool for a single-locale focused pass.

![Translate… popover open from the sidebar footer: a Missing keys group listing fr, de and ja with counts, above a Re-translate all group warning that it overwrites existing values](/docs-screenshots/translate-popover.webp)

## The bulk translate dialog

The dialog shows:
- The target locale and provider you're using
- The number of keys that will be translated
- A confirmation button to start

Click **Translate** to begin. A progress bar tracks the current key number.

![Bulk translate confirmation dialog showing the target locale, provider, and key count](/docs-screenshots/bulk-translate-confirm-dialog.webp)

## Cancelling

Click **Cancel** at any time. The current in-flight translation finishes (it can't be interrupted), then the run stops. All translations completed before you cancelled are saved.

## Results summary

When the run completes (or is cancelled), a summary shows:
- How many keys were translated successfully
- How many failed (with the key names listed)
- Option to close or retry failed keys individually

Failed keys typically happen due to transient API errors. Retry them individually with ✨ or start another bulk pass. StringLane retries each failed key up to two times before marking it as failed.

![Bulk translate results summary showing translated key count and any failures](/docs-screenshots/bulk-translate-summary-success.webp)

## Tips for best results

- **Add product context first.** Bulk runs use the same prompt as single-key translation. Better context = better results across all keys. See [Configure Guarded Words and Product Context](/docs/configure-guarded-words).
- **Raise reasoning effort for hard targets.** For Ukrainian, Polish or Czech, set **Reasoning effort** to Balanced or High in **Settings → App → AI Providers** before a bulk run — plural agreement is where cheap models fail most often across a whole locale at once.
- **Use Missing keys on the first pass.** Re-translate all is useful for refreshing translations after changing your product context or guarded words, but it will overwrite any manual corrections you have made.
- **Check for Param and ICU badges after the run.** Bulk translation sometimes produces placeholder mismatches on strings with variables. Fix these manually or re-translate individual keys.
