我在Heroku上部署了我的Django应用程序,并添加了https://github.com/piotras/heroku-buildpack-gettext.git
这个ugettext buildpack,并且应用程序的某些部分是笔记翻译的。在本地工作,我不知道问题出在哪里。
例如,菜单项类类型未翻译,但其他部分是。
{% 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"
答案 0 :(得分:1)
您可以在构建过程中生成这些文件。
在 bin/post_compile
中添加一个编译后文件(没有像 procfile 这样的扩展名),使用以下行:
python manage.py compilemessages
您可以选择添加特定语言(例如 python manage.py compilemessages -l nl
)
Since Heroku 20,为默认 Python 构建包自动添加 gettext。这仅在构建期间而不是在运行时。因此,该命令应添加在 post_compile
中,而不是在 release:
中的 procfile
下。
旧信息链接到 Heroku 上 gettext
的构建包(例如在上面的问题中)。此配置不再需要这些。
答案 1 :(得分:0)
经过一些研究,我发现将编译好的消息文件( *。mo )提交给Heroku会更好,翻译也能正常运行。