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-messagesor 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