46 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
---
 | 
						|
title: Translations
 | 
						|
---
 | 
						|
 | 
						|
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.
 | 
						|
 | 
						|
:::info
 | 
						|
Please review the [Writing documentation](./docs/writing-documentation) guidelines as they apply to documentation too.
 | 
						|
:::
 | 
						|
 | 
						|
## Online translation
 | 
						|
 | 
						|
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
 | 
						|
 | 
						|
Run `npm i` in the `/web` folder to install all dependencies.
 | 
						|
 | 
						|
Ensure the language code is in the `package.json` file in `web/`:
 | 
						|
 | 
						|
```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.
 |