> 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/on-premises-no/konfigurasjon/overleaf-toolkit/localization.md).

# Lokalisering

### Overleaf i18-konfigurasjon

{% hint style="info" %}
Dette dokumentet beskriver hvordan du konfigurerer internasjonalisering (i18n) for en selvhostet **Overleaf** instans.
{% endhint %}

Overleaf er oversatt til flere språk. Med riktig konfigurasjon kan du:

* Kjøre Overleaf-instansen din på **ett fast språk**, eller
* Aktivere **flere språk**, slik at brukerne kan bytte språk dynamisk, på samme måte som `www.overleaf.com`.

***

#### Konfigurasjon for ett språk

Nettstedets språk konfigureres ved hjelp av miljøvariabelen `OVERLEAF_SITE_LANGUAGE`(eller `SHARELATEX_SITE_LANGUAGE` for Overleaf-versjoner **4.x og tidligere**).

Støttede språkkoder inkluderer:

* `en` - Engelsk (standard)
* `es` - Spansk
* `pt` - Portugisisk
* `de` - Tysk
* `fr` - Fransk
* `cs` - Tsjekkisk
* `nl` - Nederlandsk
* `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 standardspråket. For å endre grensesnittspråket (for eksempel til forenklet kinesisk), legg til følgende linje i `config/variables.env`:

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

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

{% endcode %}

Bruk deretter konfigurasjonen:

```bash
bin/up
```

Etter at tjenestene er startet på nytt, bør grensesnittspråket i menyene i nettgrensesnittet gjenspeile den nye innstillingen.

#### Konfigurasjon for flere språk

For å la brukere **bytte språk uten å logge ut**, må Overleaf-instansen din konfigureres til å levere ulike språk basert på domenenavn.

Denne delen forutsetter:

* Hoveddomenet ditt er `overleaftest.com`
* Du har et **wildcard-TLS-sertifikat** (f.eks. `*.overleaftest.com`)
* Du bruker **ikke `localhost`** (siden det ikke kan støtte språkruting basert på underdomener)

For lokal testing kan du bruke et domene som `dev-overleaf.com`.

{% stepper %}
{% step %}

### TLS-proxykonfigurasjon (Nginx)

TLS-reversproxyen din må videresende den opprinnelige `Host` overskriften slik at Overleaf kan avgjøre hvilket språkdomene brukeren besøkte.

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

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

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

<pre class="language-nginx"><code class="lang-nginx">server {
    listen 443 ssl;
    server_name    _; # Fanger alt, 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;
    # bruker Cloudflares chiffer 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;

    # konfigurasjon for å aktivere HSTS (HTTP Strict Transport Security) https://developer.mozilla.org/en-US/docs/Security/HTTP_Strict_Transport_Security
    # for å unngå 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; # endre til hvilken som helst vert/port 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;
        
        # legg dette til i nginx-konfigurasjonen din
<strong>        proxy_set_header Host $host;
</strong>    }
}
</code></pre>

{% endstep %}

{% step %}

### Konfigurer cookiedomene

For å forhindre at brukere logges ut når de bytter språk, må informasjonskapsler deles på tvers av språkunderdomener.

Legg til følgende linje i `config/variables.env`:

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

```env
# Merk den innledende prikken
COOKIE_DOMAIN=.overleaftest.com
```

{% endcode %}

Dette sikrer at autentiseringsinformasjonskapsler er gyldige for alle underdomener under `overleaftest.com`.
{% endstep %}

{% step %}

### Språk–domenetilknytning

Deretter definerer du hvordan språkkoder tilordnes underdomener ved hjelp av\
`OVERLEAF_LANG_DOMAIN_MAPPING`.

#### Eksempel på konfigurasjon

{% 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 konfigurasjonen:

* `https://www.overleaftest.com` → Engelsk grensesnitt
* `https://cn.overleaftest.com` → Grensesnitt på forenklet kinesisk

Du kan utvide denne tilordningen med flere språk og underdomener etter behov.
{% endstep %}

{% step %}

### Omdiriger toppdomenet

Til slutt omdiriger toppdomenet (`overleaftest.com`) til standard språdomene (`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/on-premises-no/konfigurasjon/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.
