Translate FertilityOS
Our interface strings live in public JSON files in the repository. Professional translators can propose updates; we enable a locale in production only after review.
Where the files are
Folder: website/messages/ — one file per locale (e.g. en.json, es.json, ar.json). English is the base; other files are merged on top so partial translations are fine.
Suggested workflow
- Fork the repository (or receive a translator branch from your team).
- Edit or add messages/{locale}.json following the same JSON structure as en.json.
- Open a pull request with a short note (language, scope, reviewer).
- Maintainers review for accuracy and clinical tone, then set NEXT_PUBLIC_APPROVED_LOCALES to include the new code when ready to ship.
Deploy gate
Even if a language file exists, it is not shown to users until its code is listed in NEXT_PUBLIC_APPROVED_LOCALES (see website/.env.example). This lets you accept translator PRs early and turn languages on when quality is approved.
See messages/README.md in the repo for contributor details.