Django视图中的多语言支持

2023-04-11 00:00:00 视图 支持 多语言

Django视图中的多语言支持可以让我们在不同语言环境中提供不同的内容和翻译,通过Django的国际化功能,我们可以轻松地在不同语言间切换,并且方便地提供多语言版本。

首先,在settings.py文件中,配置语言和时区:

LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'

LANGUAGES = (
    ('en', _('English')),
    ('zh-hans', _('Simplified Chinese')),
    ('zh-hant', _('Traditional Chinese')),
)

其中LANGUAGE_CODE表示默认语言,LANGUAGES定义可选语言列表。

接着,在视图函数中,我们需要引用Django自带的翻译函数,它的别名为_。在字符串中插入变量可以用%s代替:

from django.utils.translation import gettext as _

def index(request):
    context = {
        'title': _('Welcome to pidancode.com'),
        'content': _('Hello, %s! This is a demo for language support.') % request.user.username
    }
    return render(request, 'index.html', context)

接着,在模板文件中,我们需要在每个需要被翻译的文本前添加{% trans %}和{% endtrans %}标签,以便Django识别它们并进行翻译:

{% extends 'base.html' %}

{% block content %}
  <h1>{% trans 'Welcome to pidancode.com' %}</h1>
  <p>{% trans 'Hello, %(username)s! This is a demo for language support.' % {'username': user.username} %}</p>
{% endblock %}

最后,我们需要在项目根目录下执行以下命令,生成翻译文件:

python manage.py makemessages -l zh_hans
python manage.py compilemessages

其中-l参数表示生成的翻译文件语言为简体中文,请根据需要设置。

通过以上步骤,我们就可以实现Django视图中的多语言支持了。

相关文章