Improving the process of incorporating translations to Django

Hello everyone,

Following the release of Django 5.0, I got familiar with the process of incorporating translations from Transifex into the Django source tree. This process is very involved and cumbersome, requiring the fetching of around 1200 .po files (~110 languages for 12 resources) and their corresponding 1200 .mo files. Then, a manually review for each .po file is required to inspect the changes between the last release and the soon-to-be the new release, with the goal to revert any undesired side-effects such as changes in plural forms, and to ensure that only files with new translations are merged.

This manual process ended up taking more than 10 hours, which not only left me feeling quite drained due to time constraints but also didn’t seem like the most efficient use of a fellow’s time. So I would like to propose two orthogonal things:

  1. Short term: try to add some automation to this process. This would include reducing the scope of the files needing manual inspection by using the Transifex API (to fetch only files that were updated after a given date), and using some sort of po-differ to decide “which files have new translations” (if possible).
  2. Medium to long term: I’ll try to analyze other translations tools. Specifically, there is one open source tool that I’ve used a long time ago and I would like to evaluate whether it would be a good fit for our needs or not.

I wanted to share this with everyone in case there is additional background information about the process that I might be missing. Additionally, I’d like to gather other opinions in case others have already thought about this.

Thank you!


Hi Natalia,

I feel your pain :grimacing: Unfortunately, Transifex doesn’t help us in several ways. I hoped at some time to migrate to Weblate, but the process was stuck, mainly for hosting-related reasons.

In any way I encourage you to make any improvements to that process, it will only be a bonus, I’m sure!

Thanks for your efforts!

Thanks @claudep for your reply and support.

Question about this: is it the main issue blocking the migration to Weblate the fact that they offer a “Gratis Weblate for libre projects” plan which only supports up to 60 target languages?
Or is there something else? Have you reached out to them on behalf on Django (asking so we don’t duplicate efforts)?