Skip to main content


Translation in authentik is done in two places. Most of the text is defined in the frontend in web/, and a subset of messages is defined in the backend.

The frontend uses @lit/localize, and the backend uses the built-in django translation tools.


Please review the Writing documentation guidelines as they apply to documentation too.

Online translation

To simplify translation you can use, which has no local requirements.

Local translation


  • Node (any recent version should work, we use 16.x to build)
  • Make (again, any recent version should work)
  • Docker

Run npm i in the /web folder to install all dependencies.

Ensure the language code is in the lit-localize.json file in web/:

    // [...]
"targetLocales": [
// [...]
// [...]

Afterwards, run make web-i18n-extract to generate a base .xlf file.

The .xlf files can be edited by any text editor, or using a tool such as POEdit.

To see the change, run make web-watch in the root directory of the repository.