Hey everyone!
No more forgotten translations. Run python manage.py translatemessages and let yesglot fill your .po files: https://github.com/efe/yesglot
I built a Django package called yesglot that uses LLMs to translate your .po files automatically. I’ll be talking about Django translations and this package at PyCon Greece 2025, but wanted to share it here first and get your thoughts.
What it does
You know how when you run makemessages, you get all those empty msgstr entries that you have to fill in? Yesglot fills them in for you using any LLM model like ChatGPT or Claude Sonnet.
Why I made this
I got tired of uploading .po files to translation portals and downloading them back - the developer experience was just awful and recent LLMs are actually pretty talented at translations.
How it works
Same Django workflow, but with one extra step:
# 1. Extract messages (normal Django)
python manage.py makemessages -all
# 2. Fill missing translations with LLM (new with yesglot)
python manage.py translatemessages
# 3. Compile messages (normal Django)
python manage.py compilemessages
When you run translatemessages, you’ll see something like:
▶ Translation run started.
Using translation model: openai/gpt-4o-mini
• Language: French [fr]
- Scanning: locale/fr/LC_MESSAGES/django.po
Missing entries: 12. Translating…
Filled 12 entries in 3.21s • Cost: $0.0123
============================================================
Done in 3.76s • Files: 1 • Missing found: 12 • Filled: 12 • Total cost: $0.0123
- Works with 100+ AI models (OpenAI, Claude, Gemini, local models, etc.)
- Handles large projects by splitting them into batches
- Shows you exactly how much each translation costs
What’s next
I’m still working on it and would love feedback. Planning to talk more about Django i18n workflows and this tool at PyCon Greece 2025.
Questions for you:
-
How do you handle translations in your Django projects?
-
Would something like this be useful for your workflow?
-
Any features you’d want to see?
Try it out and let me know what you think!