← Все шаблоны · Инструменты разработчика
Задеплойте Weblate в один клик
Платформа локализации: переводите приложения и документацию вместе с командой, синхронно с Git
Альтернатива Crowdin, Transifex и Lokalise на вашей машине.
Что такое Weblate?
Weblate — это open source веб-платформа для локализации. Разработчики, профессиональные переводчики и волонтеры переводят программы, сайты и документацию в одном месте, а роли задают, кто может переводить, рецензировать и управлять. Проект начал Michal Čihař в 2012 году; это свободное ПО под копилефт-лицензией GNU GPL, а его разработчики также запускают его для других как сервис Hosted Weblate.
Weblate создан для непрерывной локализации. Он держит клон вашего Git-репозитория, забирает новые строки после каждого пуша и коммитит переводы обратно с указанием авторства каждого переводчика, чтобы запушить их в вашу ветку или открыть pull request. Он читает и пишет те файлы, которые уже есть в вашем проекте: GNU gettext, XLIFF, JSON для i18next, Vue I18n или go-i18n, строки Android и Apple, properties-файлы Java, YAML, Markdown и еще десятки форматов. У переводчиков есть контекст, снимки экрана, словарь, память переводов и проверки качества; машинный перевод и LLM — по желанию, в виде предложений или черновиков, которые проверяют люди.
Этот шаблон запускает официальный образ Weblate линейки 2026.10 с базами данных Postgres 18 и Valkey 9, которые «Новый проект» создает рядом и подключает до первого запуска Weblate; вместо новой базы Postgres можно выбрать одну из ваших. При этом запуске создается администратор с почтой и паролем, которые вы укажете, еще до того, как Weblate кому-либо ответит, а регистрация остается закрытой. Celery, на котором работают фоновые задачи Weblate, запущен в одном процессе: так документация Weblate советует экономить память. Письма с приглашениями, уведомлениями и сбросом пароля Weblate отправляет через Resend, SendGrid или Amazon SES — какой сервис вы выберете в окне «Новый проект», а пока сервис не выбран, не отправляет вовсе.
Хостинг Weblate на Pethost
- Вы входите в Pethost — с passkey, через GitHub или Google. Машины еще нет? Вы выбираете тариф, и ссылка ждет, пока машина не будет готова.
- Окно «Новый проект» открывается на приложении Weblate. Вы заполняете то, что оно просит, и нажимаете «Создать проект»: Электронная почта, Пароль администратора.
- Отправка почты необязательна: чтобы приложение Weblate отправляло письма, вы выбираете в окне «Новый проект» Resend, SendGrid или Amazon SES и вставляете то, что выдает провайдер.
- Окно «Новый проект» также создает для приложения Weblate новые базы данных и подключает их до первого запуска приложения: Postgres (512 MB) и Valkey (256 MB). Или вы выбираете одну из своих баз Postgres: приложение Weblate получает в ней отдельного пользователя и отдельную базу данных, которые другие приложения там не могут прочитать, а все приложения этой базы попадают в один бэкап и восстанавливаются вместе.
- Через минуту-две Weblate работает по своему адресу с HTTPS. Секреты создаются случайно, а данные попадают в ночной бэкап.
- Это проект как любой другой: вы или ваш агент можете его изменить, откатить или восстановить.
Вопросы про Weblate
Weblate бесплатный и с открытым кодом?
Да. Weblate — свободное ПО под лицензией GNU GPL версии 3 или более поздней, так что запускать, изучать, менять и хостить его у себя можно бесплатно. Hosted Weblate — платный сервис его разработчиков с пробным периодом на 14 дней, а публичные свободные проекты могут бесплатно запросить его тариф Libre.
Как Weblate работает с Git?
Weblate держит клон каждого репозитория, который вы добавите. Он забирает новые строки, когда хостинг кода сообщает ему о пуше, и коммитит переводы обратно с указанием авторства каждого переводчика, а затем пушит их или открывает pull request. Для приватного репозитория добавьте в него публичный ключ из раздела «Управление» → «SSH-ключи» или подключите GitHub, GitLab и другие хостинги кода в разделе «Управление» → «Подключения к хостингу кода».
Какие форматы файлов поддерживает Weblate?
Десятки: GNU gettext PO, XLIFF, JSON (i18next, Vue I18n, go-i18n, Format.JS и обычный), строковые ресурсы Android, .strings и .stringsdict от Apple, ARB, properties-файлы Java и GWT, .NET RESX, Qt Linguist, YAML, TOML, строки PHP и Laravel, CSV, Markdown, HTML, субтитры и другие. В документации Weblate перечислены варианты и ограничения каждого формата.
Может ли Weblate использовать машинный перевод или ИИ?
Да, если вы этого хотите. Weblate может запрашивать предложения у DeepL, Google Cloud Translation, Azure AI Translator, Amazon Translate, LibreTranslate, OpenAI, Anthropic, Ollama и других сервисов; каждый настраивается в разделе «Автоматические предложения». Собственной памяти переводов Weblate внешний сервис не нужен, а сгенерированный текст может оставаться предложением, пока его не примет человек.
Сколько памяти нужно Weblate?
Документация Weblate называет минимумом для Weblate, его базы данных и веб-сервера на одном хосте 3 GB памяти и 2 ядра CPU, а для сотен компонентов — 4 GB. Этот шаблон выполняет фоновые задачи Weblate в одном процессе, как советует документация, чтобы сэкономить память: на нашей тестовой машине Weblate занимал около 1 GB в простое и до 1,5 GB при импорте проекта, а Postgres и Valkey рядом с ним — около 70 MB и 12 MB.
Сколько памяти и диска нужно Weblate?
Weblate: умеренные требования — около 1 GB памяти в простое и до 1,5 GB при импорте проекта, рядом с его базами Postgres на 512 MB и Valkey на 256 MB; диск хранит клон каждого репозитория, который переводят в Weblate. Окно «Новый проект» дает каждой базе данных приложения столько памяти, сколько рекомендует шаблон, если вы это не измените: Postgres (512 MB) и Valkey (256 MB). На Pethost ему хватит тарифа Starter, и рядом останется место для других приложений.
Weblate: файл Docker Compose
Шаблон — это этот compose.yaml и переменные, которые пишутся в .env проекта при его создании. Pethost запускает файл так, как он написан. Машина пишет туда, как приложение входит в свои базы данных, когда подключает их. Окно «Новый проект» пишет туда выбранные в нем настройки почты или оставляет их пустыми, если приложение не отправляет писем.
Контейнеры: weblate (weblate/weblate:2026.10).
Базы данных, каждая — отдельный проект: Postgres (512 MB), Valkey (256 MB).
Тома, в ночном бэкапе: 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:
Еще в категории «Инструменты разработчика»
- GiteaGit-хостинг с пул-реквестами и задачами
- code-serverVS Code в браузере
- KrokiДиаграммы из текста: PlantUML, Mermaid, Graphviz и другие
- CoderУдалённые среды разработки из шаблонов Terraform, которые открываются в VS Code, JetBrains, браузере или по SSH
- HasuraГотовые GraphQL- и REST-API поверх базы Postgres, с правами доступа, событиями и веб-консолью
- InsForgeБэкенд для приложений, которые пишут AI-агенты: Postgres, авторизация, файлы и edge functions