django.contrib.message翻译

时间:2019-05-27 05:41:26

标签: python django localization

需要将Django contrib消息翻译成不同的语言。

这是我尝试的代码:

在Views.py

from django.utils.translation import gettext as _

messages.success(self.request, _("Sample text"))

在模板中:

{% for message in messages %}
   <div class="alert alert-{{ message.tags }}">
      <a class="close" data-dismiss="alert">×</a>
      {{ message }}
   </div>
{% endfor %}

但是文本没有得到翻译。有什么特殊的翻译方法吗?我正在使用python3和Django 1.11

1 个答案:

答案 0 :(得分:1)

settings.py

MIDDLEWARE = [
    ...
    'django.middleware.locale.LocaleMiddleware',
    ...
]
LANGUAGE_CODE = 'en'
LANGUAGES = (
    ('en', 'English'),
    ('fr', 'French')
)
LOCALE_PATHS = (
    os.path.join(BASE_DIR, 'locale'),
)
TIME_ZONE = 'UTC'

USE_I18N = True

USE_L10N = True

然后:

python manage.py makemessages -l fr

在locale文件夹中翻译法语的邮件

然后是python manage.py compilemessages -l fr