Português
Começar

← Todos os templates · Ferramentas de desenvolvimento

Faça deploy de Weblate em um clique

Uma plataforma de localização sincronizada com o Git: traduza apps e documentação com a sua equipe

Uma alternativa auto-hospedada para Crowdin, Transifex e Lokalise.

O que é Weblate?

O Weblate é uma plataforma web de localização de código aberto. Desenvolvedores, tradutores profissionais e voluntários traduzem software, sites e documentação em um só lugar, com papéis que definem quem pode traduzir, revisar e gerenciar. Michal Čihař o criou em 2012; é software livre com copyleft, sob a GNU GPL, e os desenvolvedores dele também o rodam para outras pessoas como Hosted Weblate.

O Weblate é feito para a localização contínua. Ele mantém um clone do seu repositório Git, recebe as strings novas quando você faz push e devolve as traduções em commits que dão crédito a cada tradutor, para fazer o push na sua branch ou abrir um pull request. Ele lê e escreve os arquivos que o seu projeto já tem: GNU gettext, XLIFF, JSON para i18next, Vue I18n ou go-i18n, strings do Android e da Apple, properties do Java, YAML, Markdown e dezenas de outros. Os tradutores contam com contexto, capturas de tela, glossário, memória de tradução e verificações de qualidade; a tradução automática e os LLMs são opcionais, como sugestões ou rascunhos que uma pessoa revisa.

Este template roda a imagem oficial do Weblate, a série 2026.10, com um banco de dados Postgres 18 e um Valkey 9 que o Novo projeto cria ao lado dele, conectados antes do primeiro início do Weblate; no lugar do Postgres novo, você pode escolher um dos seus. Esse início cria o administrador com o e-mail e a senha que você informa, antes de o Weblate responder a qualquer pessoa, e o cadastro continua fechado. O Celery, que cuida do trabalho em segundo plano do Weblate, roda em um só processo, o jeito documentado pelo Weblate de economizar memória. Os e-mails dele, para convites, notificações e redefinição de senha, saem pelo Resend, SendGrid ou Amazon SES, o que você escolher no Novo projeto, e nenhum sai até você escolher um.

Hospedagem de Weblate no Pethost

  1. Você entra no Pethost com uma passkey, GitHub ou Google. Ainda não tem máquina? Você escolhe um plano, e o link espera até ela ficar pronta.
  2. Novo projeto abre em Weblate. Você preenche o que ele pede e clica em Criar projeto: E-mail, Senha do administrador.
  3. O e-mail é opcional: para o app Weblate enviar e-mails, você escolhe Resend, SendGrid ou Amazon SES no Novo projeto e cola o que o provedor te dá.
  4. Novo projeto também cria bancos de dados novos para Weblate e conecta todos antes de o app iniciar pela primeira vez: Postgres (512 MB) e Valkey (256 MB). Ou você escolhe um dos seus bancos Postgres: o app Weblate ganha nele um usuário e um banco de dados próprios, que os outros apps de lá não conseguem ler, e todos os apps desse banco entram no mesmo backup e são restaurados juntos.
  5. Em um ou dois minutos Weblate está no ar no próprio endereço com HTTPS. Os segredos são gerados ao acaso, e os dados vão para o backup noturno.
  6. É um projeto como qualquer outro: você ou seu agente podem alterá-lo, fazer rollback ou restaurá-lo.

Perguntas sobre Weblate

O Weblate é gratuito e de código aberto?

Sim. O Weblate é software livre sob a GNU GPL, versão 3 ou posterior, então você pode rodá-lo, estudá-lo, alterá-lo e auto-hospedá-lo de graça. O Hosted Weblate é o serviço pago dos desenvolvedores dele, com um teste grátis de 14 dias, e projetos livres e públicos podem pedir o plano Libre dele sem pagar nada.

Como o Weblate funciona com o Git?

O Weblate mantém um clone de cada repositório que você adiciona. Ele busca as strings novas quando o serviço que hospeda o seu código avisa de um push, e devolve as traduções em commits que dão crédito a cada tradutor; depois faz o push ou abre um pull request. Para um repositório privado, adicione a ele a chave pública que aparece em Gerenciar → Chaves SSH, ou conecte o GitHub, o GitLab e outros serviços em Gerenciar → Code-hosting connections.

Quais formatos de arquivo o Weblate suporta?

Dezenas: GNU gettext PO, XLIFF, JSON (i18next, Vue I18n, go-i18n, Format.JS e JSON puro), recursos de string do Android, .strings e .stringsdict da Apple, ARB, properties do Java e do GWT, RESX do .NET, Qt Linguist, YAML, TOML, strings de PHP e Laravel, CSV, Markdown, HTML, legendas e outros. A documentação do Weblate lista as variantes e os limites de cada formato.

O Weblate pode usar tradução automática ou IA?

Sim, se você quiser. O Weblate pode pedir sugestões ao DeepL, Google Cloud Translation, Azure AI Translator, Amazon Translate, LibreTranslate, OpenAI, Anthropic, Ollama e outros serviços, cada um configurado em Sugestões automáticas. A memória de tradução do próprio Weblate não precisa de nenhum serviço externo, e o texto gerado pode ficar como sugestão até uma pessoa aceitá-lo.

De quanta memória o Weblate precisa?

A documentação do Weblate indica no mínimo 3 GB de memória e 2 núcleos de CPU para o Weblate, o banco de dados dele e um servidor web numa só máquina, e 4 GB para centenas de componentes. Este template roda as tarefas em segundo plano do Weblate em um só processo, o jeito documentado pelo Weblate de economizar memória: na nossa máquina de teste, o Weblate ocupou cerca de 1 GB em repouso e até 1,5 GB enquanto importava um projeto, ao lado de cerca de 70 MB do Postgres e 12 MB do Valkey.

De quanta memória e disco Weblate precisa?

O Weblate é moderado: cerca de 1 GB de memória em repouso e até 1,5 GB enquanto importa um projeto, ao lado do seu Postgres de 512 MB e do seu Valkey de 256 MB; o disco dele guarda um clone de cada repositório que ele traduz. Novo projeto dá a cada banco de dados do app a memória que o template recomenda, a menos que você a mude: Postgres (512 MB) e Valkey (256 MB). No Pethost, o plano Starter basta, com espaço para outros apps ao lado.

Arquivo Docker Compose de Weblate

O template é este compose.yaml e as variáveis gravadas no .env do projeto quando ele é criado. O Pethost roda o arquivo exatamente como está escrito. A máquina grava ali como o app entra nos seus bancos de dados, ao conectá-los. Novo projeto grava ali as configurações de e-mail escolhidas nele, ou as deixa vazias quando o app não envia e-mail.

Containers: weblate (weblate/weblate:2026.10).

Bancos de dados, cada um como projeto próprio: Postgres (512 MB), Valkey (256 MB).

Volumes, no backup noturno: data, cache.

services:
  weblate:
    image: weblate/weblate:2026.10
    restart: unless-stopped
    environment:
      WEBLATE_SITE_DOMAIN: ${HOST}
      # The admin account, made at the first start before Weblate answers anyone. Weblate sets
      # its email and password again from these at every start.
      WEBLATE_ADMIN_EMAIL: ${ADMIN_EMAIL}
      WEBLATE_ADMIN_PASSWORD: ${ADMIN_PASSWORD}
      WEBLATE_REGISTRATION_OPEN: "0"
      # TLS ends at the machine's proxy, which says so in X-Forwarded-Proto and gives the
      # visitor's address in X-Forwarded-For. It reaches the project from the machine's networks,
      # 10.192.0.0/10, the one source Weblate's nginx takes that header from.
      WEBLATE_ENABLE_HTTPS: "1"
      WEBLATE_SECURE_PROXY_SSL_HEADER: HTTP_X_FORWARDED_PROTO,https
      WEBLATE_IP_PROXY_HEADER: HTTP_X_FORWARDED_FOR
      WEBLATE_TRUSTED_PROXY_ADDRESSES: 10.192.0.0/10
      # Celery's queues in one process: Weblate's documented way to save memory on a small
      # machine.
      CELERY_WORKER_MODE: single
      # Its translations, users and history, in the Postgres database linked to the project.
      POSTGRES_HOST: ${DATABASE_HOST:?reload New project to link a Postgres database, or send link_databases with env_prefix DATABASE}
      POSTGRES_PORT: ${DATABASE_PORT:?reload New project to link a Postgres database, or send link_databases with env_prefix DATABASE}
      POSTGRES_DB: ${DATABASE_NAME:?reload New project to link a Postgres database, or send link_databases with env_prefix DATABASE}
      POSTGRES_USER: ${DATABASE_USER:?reload New project to link a Postgres database, or send link_databases with env_prefix DATABASE}
      POSTGRES_PASSWORD: ${DATABASE_PASSWORD:?reload New project to link a Postgres database, or send link_databases with env_prefix DATABASE}
      # Its task queue and cache, in the Valkey database linked to the project.
      REDIS_HOST: ${REDIS_HOST:?reload New project to link a Valkey database, or send link_databases with env_prefix REDIS}
      REDIS_PORT: ${REDIS_PORT:?reload New project to link a Valkey database, or send link_databases with env_prefix REDIS}
      REDIS_PASSWORD: ${REDIS_PASSWORD:?reload New project to link a Valkey database, or send link_databases with env_prefix REDIS}
      REDIS_DB: "0"
      # The mail provider picked in New project, by STARTTLS on its port. With none, Weblate's
      # mail goes nowhere, and its host stays set, which Weblate requires.
      WEBLATE_EMAIL_BACKEND: ${SMTP_BACKEND:-django.core.mail.backends.dummy.EmailBackend}
      WEBLATE_EMAIL_HOST: ${SMTP_HOST:-localhost}
      WEBLATE_EMAIL_PORT: ${SMTP_PORT:-25}
      WEBLATE_EMAIL_HOST_USER: ${SMTP_USER}
      WEBLATE_EMAIL_HOST_PASSWORD: ${SMTP_PASSWORD}
      WEBLATE_EMAIL_USE_TLS: "1"
      WEBLATE_EMAIL_USE_SSL: "0"
      WEBLATE_SERVER_EMAIL: ${SMTP_FROM}
      WEBLATE_DEFAULT_FROM_EMAIL: ${SMTP_FROM_HEADER}
    volumes:
      # The repositories Weblate translates, its settings and media.
      - data:/app/data
      - cache:/app/cache
    tmpfs:
      - /run
      - /tmp

volumes:
  data:
  cache:

Mais em Ferramentas de desenvolvimento