> 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/da/konfiguration/overleaf-toolkit/localization.md).

# Lokalisering

### Overleaf i18-konfiguration

{% hint style="info" %}
Denne dokumentation beskriver, hvordan man konfigurerer internationalisering (i18n) for en selvhostet **Overleaf** instans.
{% endhint %}

Overleaf er blevet oversat til flere sprog. Med den rette konfiguration kan du:

* Køre din Overleaf-instans på **et enkelt fast sprog**, eller
* Aktivere **flere sprog**, så brugerne kan skifte sprog dynamisk, ligesom på `www.overleaf.com`.

***

#### Konfiguration af enkelt sprog

Webstedets sprog konfigureres ved hjælp af miljøvariablen `OVERLEAF_SITE_LANGUAGE`(eller `SHARELATEX_SITE_LANGUAGE` for Overleaf-versioner **4.x og tidligere**).

Understøttede sprogkoder omfatter:

* `en` - Engelsk (standard)
* `es` - Spansk
* `pt` - Portugisisk
* `de` - Tysk
* `fr` - Fransk
* `cs` - Tjekkisk
* `nl` - Hollandsk
* `sv` - Svensk
* `it` - Italiensk
* `tr` - Tyrkisk
* `zh-CN` - Kinesisk (forenklet)
* `no` - Norsk
* `da` - Dansk
* `ru` - Russisk
* `ko` - Koreansk
* `ja` - Japansk
* `pl` - Polsk
* `fi` - Finsk

Engelsk er standardsproget. For at ændre grænsefladesproget (for eksempel til forenklet kinesisk), skal du tilføje følgende linje til `config/variables.env`:

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

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

{% endcode %}

Anvend derefter konfigurationen:

```bash
bin/up
```

Når tjenesterne er genstartet, bør grænsefladesproget i web-UI-menuerne afspejle den nye indstilling.

#### Konfiguration af flere sprog

For at give brugerne mulighed for **at skifte sprog uden at logge ud**, skal din Overleaf-instans konfigureres til at levere forskellige sprog baseret på domænenavne.

Dette afsnit antager:

* Dit primære domæne er `overleaftest.com`
* Du har et **wildcard-TLS-certifikat** (f.eks. `*.overleaftest.com`)
* Du bruger **ikke `localhost`** (da det ikke kan understøtte sprogrouting baseret på underdomæner)

Til lokal test kan du bruge et domæne såsom `dev-overleaf.com`.

{% stepper %}
{% step %}

### TLS-proxykonfiguration (Nginx)

Din TLS-reverse proxy skal videresende den oprindelige `Host` header, så Overleaf kan afgøre, hvilket sprogdomæne brugeren besøgte.

Sørg for, at følgende direktiv er til stede:&#x20;

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

Her er et eksempel på en Nginx-konfiguration:&#x20;

<pre class="language-nginx"><code class="lang-nginx">server {
    listen 443 ssl;
    server_name    _; # catch-all, se 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;
    # bruger 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;

    # konfiguration til at aktivere HSTS (HTTP Strict Transport Security) https://developer.mozilla.org/en-US/docs/Security/HTTP_Strict_Transport_Security
    # for at undgå 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; # ændres til den host/port, som Docker-containeren lytter på.
        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;
        
        # tilføj dette til din nginx-konfiguration
<strong>        proxy_set_header Host $host;
</strong>    }
}
</code></pre>

{% endstep %}

{% step %}

### Konfigurer cookie-domæne

For at forhindre, at brugere logges ud, når de skifter sprog, skal cookies deles på tværs af sprog-underdomæner.

Tilføj følgende linje til `config/variables.env`:

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

```env
# Bemærk det indledende punktum
COOKIE_DOMAIN=.overleaftest.com
```

{% endcode %}

Dette sikrer, at godkendelsescookies er gyldige for alle underdomæner under `overleaftest.com`.
{% endstep %}

{% step %}

### Sprog–domænemapping

Definér derefter, hvordan sprogkoder mappes til underdomæner ved hjælp af\
`OVERLEAF_LANG_DOMAIN_MAPPING`.

#### Eksempelkonfiguration

{% 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 %}

Med denne konfiguration:

* `https://www.overleaftest.com` → Engelsk grænseflade
* `https://cn.overleaftest.com` → Forenklet kinesisk grænseflade

Du kan udvide denne mapping med yderligere sprog og underdomæner efter behov.
{% endstep %}

{% step %}

### Omdiriger apex-domænet

Til sidst skal du omdirigere apex-domænet (`overleaftest.com`) til standardsprogdomænet (`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/da/konfiguration/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.
