I18N-002 recommended Multi-Language Support

String extraction automated

Automated extraction ensures all translatable strings are captured. Manual copy-paste to translation files is error-prone.

Question to ask

"How often do translation keys drift from the actual UI?"

Verification guide

Severity: Recommended

Manual string extraction is error-prone. Automated extraction ensures all translatable strings are captured.

Check automatically:

# Check for extraction tools in dependencies
grep -E "i18next-scanner|@formatjs/cli|babel-plugin-formatjs|i18next-parser|gettext-extractor" package.json

# Check for extraction scripts in package.json
grep -E "extract|i18n|messages" package.json | grep -E "script"

# Look for extraction config files
find . -maxdepth 3 -type f \( -name "i18next-scanner*" -o -name "formatjs*" -o -name "babel-plugin-react-intl*" \) 2>/dev/null

# Check CI for extraction steps
grep -riE "extract.*message|i18n.*extract|formatjs extract" .github/workflows/ 2>/dev/null

Pass criteria:

  • Extraction tool configured
  • Script exists to run extraction (npm run extract-messages or similar)
  • Ideally: runs in CI to catch missing translations

Fail criteria:

  • No extraction tooling (manual copy-paste to translation files)
  • Tool installed but no script/workflow

Evidence to capture:

  • Extraction tool in use
  • Script command
  • CI integration status

Section

42. Internationalization (i18n)

Team & Development