> 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/el/rythmisi/overleaf-toolkit/localization.md).

# Τοπικοποίηση

### Ρύθμιση i18 του Overleaf

{% hint style="info" %}
Αυτό το έγγραφο περιγράφει πώς να ρυθμίσετε τη διεθνοποίηση (i18n) για ένα αυτοφιλοξενούμενο **Overleaf** παράδειγμα.
{% endhint %}

Το Overleaf έχει μεταφραστεί σε πολλές γλώσσες. Με την κατάλληλη ρύθμιση, μπορείτε να:

* Εκτελέσετε το παράδειγμα Overleaf σας σε **μία σταθερή γλώσσα**, ή
* Ενεργοποιήσετε **πολλαπλές γλώσσες**, επιτρέποντας στους χρήστες να αλλάζουν γλώσσα δυναμικά, παρόμοια με το `www.overleaf.com`.

***

#### Ρύθμιση μίας Γλώσσας

Η γλώσσα του ιστότοπου ρυθμίζεται χρησιμοποιώντας τη μεταβλητή περιβάλλοντος `OVERLEAF_SITE_LANGUAGE`(ή `SHARELATEX_SITE_LANGUAGE` για εκδόσεις του Overleaf **4.x και παλαιότερες**).

Οι υποστηριζόμενοι κωδικοί γλώσσας περιλαμβάνουν:

* `en` - Αγγλικά (προεπιλογή)
* `es` - Ισπανικά
* `pt` - Πορτογαλικά
* `de` - Γερμανικά
* `fr` - Γαλλικά
* `cs` - Τσεχικά
* `nl` - Ολλανδικά
* `sv` - Σουηδικά
* `it` - Ιταλικά
* `tr` - Τουρκικά
* `zh-CN` - Κινεζικά (απλοποιημένα)
* `no` - Νορβηγικά
* `da` - Δανικά
* `ru` - Ρωσικά
* `ko` - Κορεατικά
* `ja` - Ιαπωνικά
* `pl` - Πολωνικά
* `fi` - Φινλανδικά

Τα Αγγλικά είναι η προεπιλεγμένη γλώσσα. Για να αλλάξετε τη γλώσσα της διεπαφής (για παράδειγμα, σε Απλοποιημένα Κινέζικα), προσθέστε την ακόλουθη γραμμή στο `config/variables.env`:

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

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

{% endcode %}

Στη συνέχεια εφαρμόστε τη ρύθμιση:

```bash
bin/up
```

Μετά την επανεκκίνηση των υπηρεσιών, η γλώσσα της διεπαφής στα μενού του web UI θα πρέπει να αντικατοπτρίζει τη νέα ρύθμιση.

#### Ρύθμιση Πολλαπλών Γλωσσών

Για να επιτρέψετε στους χρήστες να **αλλάζουν γλώσσα χωρίς αποσύνδεση**, το παράδειγμα Overleaf σας πρέπει να ρυθμιστεί ώστε να εξυπηρετεί διαφορετικές γλώσσες με βάση τα ονόματα τομέα.

Αυτή η ενότητα προϋποθέτει:

* Ο κύριος τομέας σας είναι `overleaftest.com`
* Έχετε ένα **TLS πιστοποιητικό wildcard** (π.χ. `*.overleaftest.com`)
* Χρησιμοποιείτε **όχι `localhost`** (καθώς δεν μπορεί να υποστηρίξει δρομολόγηση γλώσσας βάσει υποτομέα)

Για τοπική δοκιμή, μπορείτε να χρησιμοποιήσετε έναν τομέα όπως `dev-overleaf.com`.

{% stepper %}
{% step %}

### Ρύθμιση TLS Proxy (Nginx)

Το TLS reverse proxy σας πρέπει να προωθεί την αρχική `Host` κεφαλίδα, ώστε το Overleaf να μπορεί να προσδιορίσει σε ποιον τομέα γλώσσας προσέγγισε ο χρήστης.

Βεβαιωθείτε ότι υπάρχει η ακόλουθη οδηγία:&#x20;

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

Ακολουθεί ένα παράδειγμα ρύθμισης Nginx:&#x20;

<pre class="language-nginx"><code class="lang-nginx">server {
    listen 443 ssl;
    server_name    _; # Σύλληψη όλων, δείτε 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;
    # χρησιμοποιήθηκαν οι κρυπτογραφικές σουίτες της 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;

    # ρύθμιση για ενεργοποίηση του HSTS (HTTP Strict Transport Security) https://developer.mozilla.org/en-US/docs/Security/HTTP_Strict_Transport_Security
    # για αποφυγή 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; # αλλάξτε το σε όποιον host/port ακούει το κοντέινερ docker.
        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;
        
        # προσθέστε αυτό στο nginx conf σας
<strong>        proxy_set_header Host $host;
</strong>    }
}
</code></pre>

{% endstep %}

{% step %}

### Ρύθμιση Τομέα Cookie

Για να αποτρέψετε την αποσύνδεση των χρηστών όταν αλλάζουν γλώσσα, τα cookies πρέπει να είναι κοινά μεταξύ των υποτομέων γλώσσας.

Προσθέστε την ακόλουθη γραμμή στο `config/variables.env`:

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

```env
# Προσέξτε την αρχική τελεία
COOKIE_DOMAIN=.overleaftest.com
```

{% endcode %}

Αυτό διασφαλίζει ότι τα cookies πιστοποίησης ταυτότητας είναι έγκυρα για όλους τους υποτομείς κάτω από το `overleaftest.com`.
{% endstep %}

{% step %}

### Χαρτογράφηση Γλώσσας–Τομέα

Στη συνέχεια, ορίστε πώς οι κωδικοί γλώσσας αντιστοιχούν σε υποτομείς χρησιμοποιώντας\
`OVERLEAF_LANG_DOMAIN_MAPPING`.

#### Παράδειγμα Ρύθμισης

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

Με αυτή τη ρύθμιση:

* `https://www.overleaftest.com` → Διεπαφή στα Αγγλικά
* `https://cn.overleaftest.com` → Διεπαφή στα Απλοποιημένα Κινέζικα

Μπορείτε να επεκτείνετε αυτήν την αντιστοίχιση με πρόσθετες γλώσσες και υποτομείς, όπως απαιτείται.
{% endstep %}

{% step %}

### Ανακατεύθυνση του Apex Domain

Τέλος, ανακατευθύνετε το apex domain (`overleaftest.com`) στο domain προεπιλεγμένης γλώσσας (`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/el/rythmisi/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.
