← Workflows

阅读中文版本

i18n Localization Release Workflow

Extract strings, hand off to translators with context, validate the imported translations for placeholders and length, and test the localized build.

intermediate~120 mini18nreleasefrontend

Objective

Release a localized build without untranslated strings, broken placeholders, or layout overflow.

Environment

  • An i18n framework with string catalogs
  • A translation handoff process

Steps

1. Extract strings with keys, context,

Extract strings with keys, context, and screenshots for translators.

Expected state: Translators work without guessing.

2. Import translations and validate placeholders

Import translations and validate placeholders and ICU syntax.

Expected state: No broken interpolation.

3. Check for missing strings and untranslated

Check for missing strings and untranslated fallbacks.

Expected state: No English leaks into localized pages.

4. Test the localized build for layout

Test the localized build for layout overflow and locale formatting.

Expected state: The UI holds in the target language.

Decision points

Machine translate then review or human first?

  • Human for user-facing
  • Machine translate directly

Human review for user-facing strings; machine output without review produces embarrassing errors.

Ship with missing strings?

  • Fall back with a report
  • Block the release

Fall back to the default language but report; blocking on a single missing string delays everything.

Expected outcome

A localized build with complete translations, valid placeholders, no English leakage, and layouts that hold.

Verification

Confirm the missing-key report is empty for enabled locales and that placeholders and plural rules are validated in CI.

Cleanup

Tag the translation version and notify translators of the release.

Overview

Release a localized build without untranslated strings, broken placeholders, or layout overflow. Confirm the missing-key report is empty for enabled locales and that placeholders and plural rules are validated in CI.

Steps

  1. Extract strings with keys, context, and screenshots for translators. Expected state: Translators work without guessing.
  2. Import translations and validate placeholders and ICU syntax. Expected state: No broken interpolation.
  3. Check for missing strings and untranslated fallbacks. Expected state: No English leaks into localized pages.
  4. Test the localized build for layout overflow and locale formatting. Expected state: The UI holds in the target language.
t('checkout.total', { count }) // ICU plural
// validate: no missing keys, placeholders match the source

Verification

  • A localized build with complete translations, valid placeholders, no English leakage, and layouts that hold.

Decision points

  • Machine translate then review or human first? Options: Human for user-facing; Machine translate directly. Recommended: Human review for user-facing strings; machine output without review produces embarrassing errors.
  • Ship with missing strings? Options: Fall back with a report; Block the release. Recommended: Fall back to the default language but report; blocking on a single missing string delays everything.