> ## Documentation Index
> Fetch the complete documentation index at: https://ayakaleaf-pro.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Localisation

### Configuration i18n d'Overleaf

<Info>
  Ce document explique comment configurer l'internationalisation (i18n) d'une instance **Overleaf** auto-hébergée.
</Info>

Overleaf a été traduit dans plusieurs langues. Avec la configuration appropriée, vous pouvez :

* Faire fonctionner votre instance Overleaf dans **une seule langue fixe**, ou
* Activer **plusieurs langues**, permettant aux utilisateurs de changer de langue dynamiquement, comme sur `www.overleaf.com`.

***

#### Configuration à langue unique

La langue du site se configure via la variable d'environnement `OVERLEAF_SITE_LANGUAGE` (ou `SHARELATEX_SITE_LANGUAGE` pour les versions d'Overleaf **4.x et antérieures**).

Les codes de langue pris en charge incluent :

* `en` - Anglais (par défaut)
* `es` - Espagnol
* `pt` - Portugais
* `de` - Allemand
* `fr` - Français
* `cs` - Tchèque
* `nl` - Néerlandais
* `sv` - Suédois
* `it` - Italien
* `tr` - Turc
* `zh-CN` - Chinois (simplifié)
* `no` - Norvégien
* `da` - Danois
* `ru` - Russe
* `ko` - Coréen
* `ja` - Japonais
* `pl` - Polonais
* `fi` - Finnois

L'anglais est la langue par défaut. Pour changer la langue de l'interface (par exemple en chinois simplifié), ajoutez la ligne suivante à `config/variables.env` :

```bash title="config/variables.env" theme={null}
OVERLEAF_SITE_LANGUAGE=zh-CN
```

Appliquez ensuite la configuration :

```bash theme={null}
bin/up
```

Après le redémarrage des services, la langue des menus de l'interface web devrait refléter le nouveau paramètre.

#### Configuration multilingue

Pour permettre aux utilisateurs de **changer de langue sans se déconnecter**, votre instance Overleaf doit être configurée pour servir différentes langues selon le nom de domaine.

Cette section suppose que :

* Votre domaine principal est `overleaftest.com`
* Vous disposez d'un **certificat TLS wildcard** (par ex. `*.overleaftest.com`)
* Vous **n'utilisez pas `localhost`** (qui ne permet pas le routage des langues par sous-domaine)

Pour des tests en local, vous pouvez utiliser un domaine tel que `dev-overleaf.com`.

<Steps>
  <Step title="Configuration du proxy TLS (Nginx)">
    Votre reverse proxy TLS doit transmettre l'en-tête `Host` d'origine afin qu'Overleaf puisse déterminer à quel domaine de langue l'utilisateur a accédé.

    Assurez-vous que la directive suivante est présente :

    ```nginx theme={null}
    proxy_set_header Host $host;
    ```

    Voici un exemple de configuration Nginx :

    ```nginx theme={null}
    server {
        listen 443 ssl;
        server_name    _; # Catch all, see http://nginx.org/en/docs/http/server_names.html
        server_name *.overleaftest.com;
        ssl_certificate /etc/nginx/ssl/nginx.crt;
        ssl_certificate_key /etc/nginx/ssl/nginx.key;
        ssl_protocols               TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers   on;
        # used cloudflares ciphers https://github.com/cloudflare/sslconfig/blob/master/conf
        ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;

        # config to enable HSTS(HTTP Strict Transport Security) https://developer.mozilla.org/en-US/docs/Security/HTTP_Strict_Transport_Security
        # to avoid ssl stripping https://en.wikipedia.org/wiki/SSL_stripping#SSL_stripping	
        add_header Strict-Transport-Security "max-age=31536000; includeSubdomains;";
        server_tokens off;
        add_header X-Frame-Options SAMEORIGIN;
        add_header X-Content-Type-Options nosniff;
        client_max_body_size 50M;

        location / {
            proxy_pass http://localhost:5000; # change to whatever host/port the docker container is listening on.
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_read_timeout 3m;
            proxy_send_timeout 3m;
            
            # add this to your nginx conf
            proxy_set_header Host $host;
        }
    }
    ```
  </Step>

  <Step title="Configurer le domaine des cookies">
    Pour éviter que les utilisateurs soient déconnectés lorsqu'ils changent de langue, les cookies doivent être partagés entre les sous-domaines de langue.

    Ajoutez la ligne suivante à `config/variables.env` :

    ```env title="config/variables.env" theme={null}
    # Note the leading dot
    COOKIE_DOMAIN=.overleaftest.com
    ```

    Cela garantit que les cookies d'authentification sont valides pour tous les sous-domaines de `overleaftest.com`.
  </Step>

  <Step title="Correspondance langue–domaine">
    Définissez ensuite la correspondance entre codes de langue et sous-domaines à l'aide de\
    `OVERLEAF_LANG_DOMAIN_MAPPING`.

    #### Exemple de configuration

    ```dotenv title="config/variables.env" wrap theme={null}
    OVERLEAF_LANG_DOMAIN_MAPPING='{"www": {"lngCode": "en","url": "https:\/\/www.overleaftest.com"},"cn": {"lngCode": "zh-CN","url": "https:\/\/cn.overleaftest.com"}}'
    ```

    Avec cette configuration :

    * `https://www.overleaftest.com` → interface en anglais
    * `https://cn.overleaftest.com` → interface en chinois simplifié

    Vous pouvez étendre cette correspondance avec d'autres langues et sous-domaines selon vos besoins.
  </Step>

  <Step title="Rediriger le domaine apex">
    Enfin, redirigez le domaine apex (`overleaftest.com`) vers le domaine de la langue par défaut (`www.overleaftest.com`).

    ```nginx theme={null}
    server{
        listen 80;
        server_name overleaftest.com;
        return 301 https://www.overleaftest.com$request_uri;
    }

    server {
        listen 443 ssl http2;
        server_name overleaftest.com;
        ssl_certificate     /path/to/fullchain.cer;
        ssl_certificate_key /path/to/overleaftest.com.key;
        return 301 https://www.overleaftest.com$request_uri;
    }
    ```
  </Step>
</Steps>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.