2021-04-18 16:31:15 +01:00
---
title: Translation
---
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 [lingui ](https://lingui.js.org/ ), and the backend uses the built-in django translation tools.
2021-08-10 20:41:36 +01:00
## Online translation
2021-04-18 16:31:15 +01:00
2021-08-10 20:41:36 +01:00
To simplify translation you can use https://www.transifex.com/beryjuorg/authentik/, which has no local requirements.
## Local translation
### Prerequisites
- Node (any recent version should work, we use 16.x to build)
- Make (again, any recent version should work)
- Docker
In the root of the cloned repository, run `make gen-web` to generate the API Client used by the webinterface.
Afterwards, run `npm i` in the `/web` folder to install all dependencies.
Ensure the language code is in the `package.json` file in `web/` :
2021-04-18 16:31:15 +01:00
```json
// [...]
"lingui": {
// [...]
"locales": [
"en",
"pseudo-LOCALE",
"a-new-locale"
],
// [...]
```
Afterwards, run `npx lingui extract` to generate a base .po file.
The .po files can be edited by any text editor, or using a tool such as [POEdit ](https://poedit.net/ ).
To see the change, run `npm run watch` in the `web/` directory.