i18n-as-a-service for i18next

i18n that keeps up with your code

Keys appear in Sprachrohr the moment a developer writes them. Translators fill what is missing in minutes. Production tells you what is actually used.

Terminal
yarn add @sprachrohr/i18next i18next i18next-http-backend
i18n.ts
import i18next from 'i18next'
import { sprachrohr } from '@sprachrohr/i18next'

i18next.use(sprachrohr({ slug: 'my-app', apiKey: process.env.SPRACHROHR_KEY! })).init({ lng: 'de_DE' })

That is the whole integration. Translations load over HTTP, missing keys are reported back.

Built around the way teams actually ship

No exports, no pull requests full of JSON, no guessing which strings are still alive.

Keys appear as you code

With saveMissing enabled, every key your code renders for the first time is created in Sprachrohr automatically. Nobody maintains locale files by hand, nobody forgets a string.

Fill what is missing in minutes

A keyboard-driven translate queue walks translators through every missing string with a DeepL suggestion already filled in. Bulk AI translation drafts whole languages, reviewers approve.

Know what is actually used

Production reports which keys are rendered. Keys that never show up are marked, and a one-click cleanup removes them together with their translations.

Push from CI

The import API takes your locale files in one request and creates missing keys and translations in a background job. It uses a separate import key that you can rotate independently.

Self-host in one Helm release

The chart ships Postgres, the ingress and the migration job. Bring Google sign-in credentials and a DeepL key, and you are running on your own cluster.

How it works

  1. 1

    Create an application

    Give it a name and a slug, pick the source language and the languages you want to ship. You get a public API key.

  2. 2

    Paste three lines

    Add the plugin to your i18next setup. The Connect screen shows the first request from your app the moment it arrives, so you know it works.

  3. 3

    Translate

    Keys arrive while you build. Translators work through the queue, and your app picks up the new strings on the next load.

Your next missing key could be your last

Sign in with your Google account, create an application and paste three lines. The first request shows up live.