← 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
- 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.
- Novo projeto abre em Weblate. Você preenche o que ele pede e clica em Criar projeto: E-mail, Senha do administrador.
- 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á.
- 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.
- 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.
- É 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
- GiteaHospedagem de Git com pull requests e issues
- code-serverO VS Code no navegador
- KrokiDiagramas a partir de texto: PlantUML, Mermaid, Graphviz e mais
- CoderAmbientes de desenvolvimento remotos a partir de templates do Terraform, abertos no VS Code, JetBrains, no navegador ou por SSH
- HasuraAPIs GraphQL e REST instantâneas sobre um banco Postgres, com permissões, eventos e um console web
- InsForgeUm backend para apps que agentes de código constroem: Postgres, autenticação, armazenamento e edge functions