Implementé mi aplicación Django en Heroku y agregué https://github.com/piotras/heroku-buildpack-gettext.git este paquete de compilación ugettext y algunas partes de la aplicación están traducidas. Localmente está funcionando, no sé de dónde viene el problema.
Por ejemplo, el elemento de menú Classes Types no está traducido, pero otras partes sí.
{% trans "Class Types" %}
{% load i18n %} .... <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">{% trans "Class Types" %}<span class="caret"></span></a> <ul class="dropdown-menu"> <li> <a href="{% url 'class_type-list' %}"> <span class="glyphicon glyphicon-list" aria-hidden="true"></span> {% trans "All" %}</a> </li> <li> <a href="{% url 'class_type-new' %}"> <span class="glyphicon glyphicon-plus" aria-hidden="true"></span> {% trans "New" %}</a> </li> </ul> </li> .... #: templates/back_office/class_type_list.html:4 #: templates/back_office/menu.html:37 msgid "Class Types" msgstr "انواع الحلقات" #: templates/back_office/class_type_list.html:4 #: templates/back_office/menu.html:37 msgid "Class Types" msgstr "Class Types"Después de investigar un poco, descubrí que es mejor enviar los archivos de mensajes compilados ( *.mo ) a Heroku, y la traducción funcionará correctamente.
Puede generar esos archivos durante la compilación.
Agregue un archivo de compilación posterior en bin/post_compile (sin extensión como procfile) con la siguiente línea:
python manage.py compilemessages Opcionalmente, puede agregar el idioma específico (por ejemplo python manage.py compilemessages -l nl )
Desde Heroku 20 , gettext se agrega automáticamente para el paquete de compilación predeterminado de Python. Esto es solo durante la compilación y no en tiempo de ejecución. Por lo tanto, el comando debe agregarse en post_compile y no en release: en procfile .
Enlaces de información más antiguos a paquetes de compilación para obtener texto en gettext (por ejemplo, en la pregunta anterior). Esos ya no son necesarios con esta configuración.