> ## 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.

# Lokalisierung

### i18n-Konfiguration von Overleaf

<Info>
  Dieses Dokument beschreibt, wie Sie die Internationalisierung (i18n) für eine selbst gehostete **Overleaf**-Instanz konfigurieren.
</Info>

Overleaf wurde in mehrere Sprachen übersetzt. Mit der passenden Konfiguration können Sie:

* Ihre Overleaf-Instanz in **einer einzigen festen Sprache** betreiben oder
* **mehrere Sprachen** aktivieren, sodass Benutzer die Sprache dynamisch wechseln können – ähnlich wie bei `www.overleaf.com`.

***

#### Konfiguration für eine einzelne Sprache

Die Sprache der Website wird über die Umgebungsvariable `OVERLEAF_SITE_LANGUAGE` (bzw. `SHARELATEX_SITE_LANGUAGE` für Overleaf-Versionen **4.x und älter**) konfiguriert.

Unterstützte Sprachcodes sind unter anderem:

* `en` - Englisch (Standard)
* `es` - Spanisch
* `pt` - Portugiesisch
* `de` - Deutsch
* `fr` - Französisch
* `cs` - Tschechisch
* `nl` - Niederländisch
* `sv` - Schwedisch
* `it` - Italienisch
* `tr` - Türkisch
* `zh-CN` - Chinesisch (vereinfacht)
* `no` - Norwegisch
* `da` - Dänisch
* `ru` - Russisch
* `ko` - Koreanisch
* `ja` - Japanisch
* `pl` - Polnisch
* `fi` - Finnisch

Englisch ist die Standardsprache. Um die Sprache der Benutzeroberfläche zu ändern (zum Beispiel auf vereinfachtes Chinesisch), fügen Sie die folgende Zeile zu `config/variables.env` hinzu:

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

Wenden Sie dann die Konfiguration an:

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

Nach dem Neustart der Dienste sollten die Menüs der Weboberfläche in der neuen Sprache angezeigt werden.

#### Konfiguration für mehrere Sprachen

Damit Benutzer **die Sprache wechseln können, ohne sich abzumelden**, muss Ihre Overleaf-Instanz so konfiguriert sein, dass sie je nach Domainname unterschiedliche Sprachen ausliefert.

Dieser Abschnitt setzt Folgendes voraus:

* Ihre primäre Domain ist `overleaftest.com`
* Sie verfügen über ein **Wildcard-TLS-Zertifikat** (z. B. `*.overleaftest.com`)
* Sie verwenden **nicht `localhost`** (da damit kein subdomainbasiertes Sprach-Routing möglich ist)

Für lokale Tests können Sie eine Domain wie `dev-overleaf.com` verwenden.

<Steps>
  <Step title="TLS-Proxy-Konfiguration (Nginx)">
    Ihr TLS-Reverse-Proxy muss den ursprünglichen `Host`-Header weiterleiten, damit Overleaf erkennen kann, über welche Sprachdomain der Benutzer zugegriffen hat.

    Stellen Sie sicher, dass die folgende Direktive vorhanden ist:

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

    Hier ist eine Beispielkonfiguration für 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="Cookie-Domain konfigurieren">
    Damit Benutzer beim Sprachwechsel nicht abgemeldet werden, müssen Cookies über alle Sprach-Subdomains hinweg geteilt werden.

    Fügen Sie die folgende Zeile zu `config/variables.env` hinzu:

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

    Dadurch sind Authentifizierungs-Cookies für alle Subdomains unter `overleaftest.com` gültig.
  </Step>

  <Step title="Zuordnung von Sprache zu Domain">
    Legen Sie als Nächstes mit\
    `OVERLEAF_LANG_DOMAIN_MAPPING` fest, wie Sprachcodes den Subdomains zugeordnet werden.

    #### Beispielkonfiguration

    ```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"}}'
    ```

    Mit dieser Konfiguration gilt:

    * `https://www.overleaftest.com` → englische Oberfläche
    * `https://cn.overleaftest.com` → Oberfläche in vereinfachtem Chinesisch

    Sie können diese Zuordnung bei Bedarf um weitere Sprachen und Subdomains erweitern.
  </Step>

  <Step title="Apex-Domain umleiten">
    Leiten Sie abschließend die Apex-Domain (`overleaftest.com`) auf die Domain der Standardsprache (`www.overleaftest.com`) um.

    ```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.