# Internationalization (i18n)

The backend and the frontend of the application are internationalized.
This means that the application can be translated into different languages. 
The application is currently available in English and French.

## Local setup

To be able to upload/retrieve translation files to/from Crowdin you need to
setup your local environment with the following environment variables:

```bash
cp ./env.d/development/crowdin.dist ./env.d/development/crowdin
```

Then fill "CROWDIN_API_TOKEN" with your token and "CROWDIN_PROJECT_ID" with the project id
in the `./env.d/development/crowdin` file.

NB: If you don't have a personal Crowdin API token, go to Crowdin interface to generate it: 
Settings -> API -> Personal Access Tokens -> New token

This configuration file will be loaded by the crowdin docker instance.


## How to update the translations

### First way (safe way)

1/ Generate the translation files for both frontend and backend
  ```bash
  make i18n-generate
  ```
  Check locally everything is ok before uploading the files to the translation platform.

2/ Upload the files to the translation platform (crowdin):
  ```bash
  make crowdin-upload
  ```

3/ Fill the missing translations on the translation platform:

  => [https://crowdin.com/project/lasuite-people](https://crowdin.com/project/lasuite-people)  

4/ Download the translated files from the translation platform and compile them:
  ```bash
  make i18n-download-and-compile
  ```

### Second way (faster way)

1/ Generate the translation files for both frontend and backend and upload them to the translation platform (crowdin):
  ```bash
  make i18n-generate-and-upload
  ```

2/ Fill the missing translations on the translation platform:
  
  => [https://crowdin.com/project/lasuite-people](https://crowdin.com/project/lasuite-people)  

3/ Download the translated files from the translation platform and compile them:
  ```bash
  make i18n-download-and-compile
  ```
