For a web app, I’d look at a translation management system (TMS) rather than trying to manage all translations directly in Git.
Good options
My practical recommendation
If you're building a typical React/Next.js/Vue/etc. SaaS, I'd shortlist Lokalise, Crowdin, and Phrase.
I'd choose based on workflow:
- Small/medium engineering team: Lokalise or Crowdin.
- Lots of translators/community contributors: Crowdin.
- Enterprise localization with complex governance: Phrase.
- Already using i18next and want translations delivered dynamically: Locize.
A nice architecture is:
Your app
↓
i18n library (e.g. i18next / next-intl)
↓
JSON translation files
↕
Translation platform
↓
Translators / AI translation / review
The important part is keeping translation keys in code and letting the TMS manage the values. For example:
{
"checkout.title": "Complete your purchase",
"checkout.pay": "Pay now"
}
rather than scattering literal English strings throughout your components.
If you tell me your stack (e.g. Next.js + TypeScript), number of languages, and whether you need human translators, I can narrow this down to 1–2 options and show how I'd integrate it.