← Усі шаблони · Інструменти розробника
Задеплойте Weblate в один клік
Платформа локалізації: перекладайте застосунки й документацію разом із командою, синхронно з Git
Альтернатива Crowdin, Transifex і Lokalise на вашій машині.
Що таке Weblate?
Weblate — це вебплатформа для локалізації з відкритим кодом. Розробники, професійні перекладачі й волонтери перекладають програми, сайти й документацію в одному місці, а ролі визначають, хто може перекладати, перевіряти й керувати. Проєкт започаткував 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 — з ключем доступу, через 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