Over at Fenerum we are currently translating our software into multiple new languages, and while it worked fine for a while editing .po files by hand, it is now becoming a roadblock to getting things done.

We quickly decided to go with Transifex because we all knew it from earlier, but unfortunately it seems to have developed into a much more expensive and complicated solution than before.

In any case, I really don't like Transifex's approach of using their custom library to mark strings for translations inside our Django project. We want a solution that is not locked to a specific vendor, but rather relies on the built-in Django translation framework and .po files. On top of that, we also have some JSON files used by our frontend that needed translations.

I tried searching for a template to work with a standard Django project, but couldn't find one, so here's what I came up with:

filters:
  - filter_type: file
    file_format: KEYVALUEJSON
    source_language: en
    source_file: interface/web/src/locales/en/translation.json
    translation_files_expression: 'interface/web/src/locales/<lang>/translation.json'
  - filter_type: file
    file_format: PO
    source_file: project/locale/en/LC_MESSAGES/django.po
    source_language: en
    translation_files_expression: 'project/locale/<lang>/LC_MESSAGES/django.po'

If you don't have frontend translations with JSON, you can just remove the first part of the configuration.

I hope this helps someone else facing similar translation management challenges with their Django web application.