This repository contains localization files for Mozilla Accounts (FxA) CMS content. It automatically generates FTL (Fluent Translation List) files from Strapi CMS changes and delivers localized content to users through Pontoon integration.
- Stores FTL files generated from Strapi CMS content
- Bridges content management and localization workflows
- Supports automated localization through webhooks
- Delivers cached localized content at runtime
- Strapi CMS: Content management for relying party configurations
- GitHub: FTL file storage and version control
- Pontoon: Mozilla's localization platform
- fxa-auth-server: Webhook processing and API delivery
- Runtime: Multi-level caching with fallback strategies
- Content Creation → Strapi CMS updates
- Webhook Trigger → Automated FTL generation
- GitHub PR → Human review and approval
- Pontoon Integration → Community translation
- Runtime Delivery → Cached localization with fallbacks
locales/
├── en/cms.ftl # Base English (source of truth)
├── es/cms.ftl # Spanish translations
├── fr/cms.ftl # French translations
└── [other-locales]/ # Additional languages
- Access Pontoon
- Find FxA project and select language
- Translate strings in CMS localization files
- Monitor automated PRs from Strapi webhooks
- Review generated FTL files before merging
- Test localization with commands below
FXA_L10N_REPO=mozilla/fxa-cms-l10n
FXA_L10N_BRANCH=mainftlUrl: "https://raw.githubusercontent.com/mozilla/fxa-cms-l10n/{branch}/locales/{locale}/cms.ftl"# Test localization
curl "http://localhost:9000/v1/cms/config?clientId={id}&entrypoint={point}" \
-H "Accept-Language: es-MX"
# Run tests
NODE_ENV=test yarn test test/local/routes/utils/cms/localization.js- Empty Config: Check FTL file availability and cache status
- Webhook Failures: Verify secret and Strapi connectivity
- PR Errors: Confirm GitHub token permissions
- Cache Issues: Clear caches and verify TTL settings
- Localization: Mozilla l10n team
- Technical: FxA repository issues
- Content: FxA product team