> 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/pt/configuracao/overleaf-toolkit/localization.md).

# Localização

### Configuração i18n do Overleaf

{% hint style="info" %}
Este documento descreve como configurar a internacionalização (i18n) para uma instância auto-hospedada **Overleaf** instância.
{% endhint %}

O Overleaf foi traduzido para vários idiomas. Com a configuração adequada, você pode:

* Executar a sua instância do Overleaf em **um único idioma fixo**, ou
* Ativar **vários idiomas**, permitindo que os usuários alternem entre idiomas dinamicamente, semelhante a `www.overleaf.com`.

***

#### Configuração de Idioma Único

O idioma do site é configurado usando a variável de ambiente `OVERLEAF_SITE_LANGUAGE`(ou `SHARELATEX_SITE_LANGUAGE` para as versões do Overleaf **4.x e anteriores**).

Os códigos de idioma suportados incluem:

* `en` - Inglês (padrão)
* `es` - Espanhol
* `pt` - Português
* `de` - Alemão
* `fr` - Francês
* `cs` - Tcheco
* `nl` - Holandês
* `sv` - Sueco
* `it` - Italiano
* `tr` - Turco
* `zh-CN` - Chinês (simplificado)
* `no` - Norueguês
* `da` - Dinamarquês
* `ru` - Russo
* `ko` - Coreano
* `ja` - Japonês
* `pl` - Polonês
* `fi` - Finlandês

O inglês é o idioma padrão. Para alterar o idioma da interface (por exemplo, para chinês simplificado), adicione a seguinte linha a `config/variables.env`:

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

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

{% endcode %}

Em seguida, aplique a configuração:

```bash
bin/up
```

Após os serviços reiniciarem, o idioma da interface nos menus da UI web deverá refletir a nova configuração.

#### Configuração de Vários Idiomas

Para permitir que os usuários **alternem entre idiomas sem sair**, sua instância do Overleaf deve ser configurada para servir diferentes idiomas com base em nomes de domínio.

Esta seção pressupõe:

* Seu domínio principal é `overleaftest.com`
* Você tem um **certificado TLS curinga** (por exemplo, `*.overleaftest.com`)
* Você está **não usando `localhost`** (já que ele não suporta roteamento de idioma baseado em subdomínios)

Para testes locais, você pode usar um domínio como `dev-overleaf.com`.

{% stepper %}
{% step %}

### Configuração do Proxy TLS (Nginx)

Seu proxy reverso TLS deve encaminhar o cabeçalho original `Host` para que o Overleaf possa determinar em qual domínio de idioma o usuário acessou.

Certifique-se de que a seguinte diretiva esteja presente:&#x20;

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

Aqui está um exemplo de configuração do Nginx:&#x20;

<pre class="language-nginx"><code class="lang-nginx">server {
    listen 443 ssl;
    server_name    _; # captura geral, veja 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;
    # usa os conjuntos de cifras do 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;

    # configuração para ativar HSTS (HTTP Strict Transport Security) https://developer.mozilla.org/en-US/docs/Security/HTTP_Strict_Transport_Security
    # para evitar o 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; # altere para o host/porta em que o contêiner Docker está escutando.
        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;
        
        # adicione isto à sua configuração do nginx
<strong>        proxy_set_header Host $host;
</strong>    }
}
</code></pre>

{% endstep %}

{% step %}

### Configurar domínio do cookie

Para evitar que os usuários sejam desconectados ao alternar entre idiomas, os cookies devem ser compartilhados entre os subdomínios de idioma.

Adicione a seguinte linha a `config/variables.env`:

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

```env
# Observe o ponto inicial
COOKIE_DOMAIN=.overleaftest.com
```

{% endcode %}

Isso garante que os cookies de autenticação sejam válidos para todos os subdomínios em `overleaftest.com`.
{% endstep %}

{% step %}

### Mapeamento de idioma–domínio

Em seguida, defina como os códigos de idioma são mapeados para subdomínios usando\
`OVERLEAF_LANG_DOMAIN_MAPPING`.

#### Exemplo de configuração

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

Com esta configuração:

* `https://www.overleaftest.com` → interface em inglês
* `https://cn.overleaftest.com` → interface em chinês simplificado

Você pode estender esse mapeamento com idiomas e subdomínios adicionais conforme necessário.
{% endstep %}

{% step %}

### Redirecione o domínio raiz

Por fim, redirecione o domínio raiz (`overleaftest.com`) para o domínio de idioma padrão (`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/pt/configuracao/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.
