> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/on-premises/fr/configuration/overleaf-toolkit/localization.md).

# Localisation

### Configuration i18 d’Overleaf

{% hint style="info" %}
Ce document décrit comment configurer l’internationalisation (i18n) pour une instance auto-hébergée **Overleaf** instance.
{% endhint %}

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

* Exécuter 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 d’une seule langue

La langue du site est configurée à l’aide de 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`:

{% code title="config/variables.env" %}

```bash
OVERLEAF_SITE_LANGUAGE=zh-CN
```

{% endcode %}

Appliquez ensuite la configuration :

```bash
bin/up
```

Après le redémarrage des services, la langue de l’interface dans les 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 en fonction des noms de domaine.

Cette section suppose :

* Votre domaine principal est `overleaftest.com`
* Vous disposez d’un **certificat TLS générique** (par ex. `*.overleaftest.com`)
* Vous n’utilisez **pas `localhost`** (car il ne peut pas prendre en charge le routage des langues basé sur les sous-domaines)

Pour les tests locaux, vous pouvez utiliser un domaine tel que `dev-overleaf.com`.

{% stepper %}
{% step %}

### Configuration du proxy TLS (Nginx)

Votre proxy inverse TLS doit transmettre l’en-tête `Host` d’origine afin qu’Overleaf بتوانe déterminer quel domaine linguistique l’utilisateur a visité.

Assurez-vous que l’instruction suivante est présente :&#x20;

```nginx
proxy_set_header Host $host;
```

Voici un exemple de configuration Nginx :&#x20;

<pre class="language-nginx"><code class="lang-nginx">server {
    listen 443 ssl;
    server_name    _; # Attrape-tout, voir 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;
    # utilise les chiffrements Cloudflare 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;

    # configuration pour activer HSTS (HTTP Strict Transport Security) https://developer.mozilla.org/en-US/docs/Security/HTTP_Strict_Transport_Security
    # pour éviter le 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; # à remplacer par l’hôte/le port sur lequel le conteneur Docker écoute.
        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;
        
        # ajoutez ceci à votre configuration nginx
<strong>        proxy_set_header Host $host;
</strong>    }
}
</code></pre>

{% endstep %}

{% step %}

### Configurer le domaine des cookies

Pour empêcher que les utilisateurs soient déconnectés lorsqu’ils changent de langue, les cookies doivent être partagés entre les sous-domaines linguistiques.

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

{% code title="config/variables.env" %}

```env
# Notez le point initial
COOKIE_DOMAIN=.overleaftest.com
```

{% endcode %}

Cela garantit que les cookies d’authentification sont valides pour tous les sous-domaines sous `overleaftest.com`.
{% endstep %}

{% step %}

### Correspondance langue–domaine

Ensuite, définissez comment les codes de langue sont mappés vers les sous-domaines à l’aide de\
`OVERLEAF_LANG_DOMAIN_MAPPING`.

#### Exemple de configuration

{% code title="config/variables.env" overflow="wrap" %}

```dotenv
OVERLEAF_LANG_DOMAIN_MAPPING='{"www": {"lngCode": "en","url": "https:\/\/www.overleaftest.com"},"cn": {"lngCode": "zh-CN","url": "https:\/\/cn.overleaftest.com"}}'
```

{% endcode %}

Avec cette configuration :

* `https://www.overleaftest.com` → Interface anglaise
* `https://cn.overleaftest.com` → Interface en chinois simplifié

Vous pouvez étendre cette correspondance avec des langues et des sous-domaines supplémentaires selon les besoins.
{% endstep %}

{% step %}

### Rediriger le domaine racine

Enfin, redirigez le domaine racine (`overleaftest.com`) vers le domaine de langue par défaut (`www.overleaftest.com`).

<pre class="language-nginx"><code class="lang-nginx">server{
    listen 80;
    server_name overleaftest.com;
<strong>    return 301 https://www.overleaftest.com$request_uri;
</strong>}

server {
    listen 443 ssl http2;
    server_name overleaftest.com;
    ssl_certificate     /<a data-footnote-ref href="#user-content-fn-1">p</a>ath/to/fullchain.cer;
    ssl_certificate_key /path/to/overleaftest.com.key;
<strong>    return 301 https://www.overleaftest.com$request_uri;
</strong>}
</code></pre>

{% endstep %}
{% endstepper %}

[^1]:


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/on-premises/fr/configuration/overleaf-toolkit/localization.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
