Translate your locales/**/*.json files on every merge — no manual workflow.
Lokali watches your i18next namespaces and opens a PR with every locale covered.
What Lokali detects in i18next repos
i18next supports many project layouts. Lokali covers all of them — from backend Node apps using locales/ at root to React SPAs using public/locales/.
Namespace-aware translation
i18next splits strings into namespaces (common, auth, dashboard…). Lokali preserves the namespace structure and file paths — translated files land in the exact same hierarchy.
{
"button": {
"submit": "Submit",
"cancel": "Cancel",
"retry": "Try again"
},
"error": {
"generic": "Something went wrong"
}
}
{
"button": {
"submit": "Envoyer",
"cancel": "Annuler",
"retry": "Réessayer"
},
"error": {
"generic": "Une erreur est survenue"
}
}
↑ All configured target locales in the same PR. Nested structure preserved exactly.
See it in action
A real PR from Lokali on a demo project — opened automatically after the first push. No setup beyond installing the GitHub App.
Install in 30 seconds. Translation PRs arrive on your next push.