Найти в Дзене
Павлин Шарит

Переводы Django с помощью ИИ

Переводы Django с помощью ИИ Многие знают про встроенную систему переводов в Django через gettext: from django.utils.translation import gettext as _ Классический подход - переводить вручную или через сторонние сервисы. Можно использовать LLM, но тут возникают проблемы: большие файлы упираются в лимиты контекста, приходится ждать ответа, нужно вручную искать непереведенные строки Логичное решение - найти пустые msgstr и переводить по одному значению. Но зачем изобретать велосипед, когда уже есть готовый инструмент Встречайте yesglot - django-приложение для автоматического заполнения .po файлов через LLM Что умеет: - Работает со 100+ моделями через LiteLLM (OpenAI, Anthropic, Gemini и другие) - Автоматически разбивает работу на батчи, чтобы не упереться в лимиты токенов - Показывает стоимость перевода для каждого файла и в целом - Интегрируется через одну команду: python manage.py translatemessages Типичный workflow выглядит так: # Извлекаем сообщения python manage.py makemessages -

Переводы Django с помощью ИИ

Многие знают про встроенную систему переводов в Django через gettext:

from django.utils.translation import gettext as _

Классический подход - переводить вручную или через сторонние сервисы. Можно использовать LLM, но тут возникают проблемы: большие файлы упираются в лимиты контекста, приходится ждать ответа, нужно вручную искать непереведенные строки

Логичное решение - найти пустые msgstr и переводить по одному значению. Но зачем изобретать велосипед, когда уже есть готовый инструмент

Встречайте yesglot - django-приложение для автоматического заполнения .po файлов через LLM

Что умеет:

- Работает со 100+ моделями через LiteLLM (OpenAI, Anthropic, Gemini и другие)

- Автоматически разбивает работу на батчи, чтобы не упереться в лимиты токенов

- Показывает стоимость перевода для каждого файла и в целом

- Интегрируется через одну команду: python manage.py translatemessages

Типичный workflow выглядит так:

# Извлекаем сообщения

python manage.py makemessages -all

# Автоматически переводим

python manage.py translatemessages

# Компилируем

python manage.py compilemessages

Настройка тривиальная - добавляете в INSTALLED_APPS, указываете модель и API ключ:

INSTALLED_APPS = [

# ...

"yesglot",

]

YESGLOT_LLM_MODEL = "openai/gpt-4o-mini"

YESGLOT_API_KEY = "sk-..."

Инструмент особенно удобен при работе с большими проектами - не нужно вручную искать непереведенные строки или запускать LLM для всего файла целиком. Библиотека сама найдет пустые переводы и обработает их батчами с учетом лимитов

Исходники на GitHub

P.S. подробнее про другие фишки интернализации писал в своей книге

Поддержать на Boosty

Посмотреть на Youtube