Back in late 2015, we announced that Grav's translation workflow was moving to Crowdin. At the time it was a huge step forward. Instead of forking a plugin repo, hand-editing YAML in your editor, and submitting a pull request for every typo, contributors could log into a polished web UI, translate strings in context, and let Crowdin manage the round-trip back to GitHub. For a community that was just starting to grow internationally, it was the right call.
A decade later, the picture has changed. The Admin plugin became Admin2 with its own SvelteKit5 SPA. The plugin ecosystem expanded well past what a single Crowdin project was comfortable indexing. AI translation went from "interesting demo" to "genuinely usable", and our own ecosystem now ships a first-party API plugin and Admin Next that make it trivial to build the kind of integrated tooling that used to require a whole separate platform.

So we built one. Today I'm thrilled to announce the Grav Translations Portal, live at translations.getgrav.org, and the new home for translating Grav plugins and themes going forward.