django-multilingual是一个Django插件,它允许您在模板中轻松切换多种语言。通过使用这个插件,您可以方便地为您的网站创建多语言版本,并且能够在模板中动态地切换不同的语言。这使得您的网站更加适应全球用户,并提供了更好的用户体验。无论您的网站是用于商业目的还是个人使用,django-multilingual都是一个非常有用的工具,可以帮助您实现多语言支持。

8
我正在尝试使用django-multilingual并正确设置它。但我发现除了模板使用示例之外,django-multilingual的一切都很清楚。
我刚开始使用django,可能因为这个原因,我无法弄清楚如何在模板中切换语言。
你能给出任何示例或更清晰的来源/文档吗?
3个回答

6

4

你也可以尝试使用django-localeurl应用程序。它可以让用户在URL中存储当前的语言环境并进行切换,同时提供了一些有用的模板标签,可方便地切换和显示可用的语言环境。


0
您可以按照设置语言重定向视图创建i18n切换器,但首先,建议您按照我的答案设置翻译(英文法文),然后您可以查看我的问题我的答案,了解如何为Django Admin创建i18n切换器。*我使用的是Django 4.2.1版本。
然后,在core/settings.py中的urlpatterns中添加path("i18n/", include("django.conf.urls.i18n")),如下所示。*根据文档,您不应该在i18n_patterns()中包含path("i18n/", include("django.conf.urls.i18n"))以使其正常工作。
# "core/settings.py"

from django.contrib import admin
from django.urls import path, include
from django.conf.urls.i18n import i18n_patterns

urlpatterns = i18n_patterns(
    path('admin/', admin.site.urls),
    path("my_app1/", include('my_app1.urls')),
)

# ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ Here ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
urlpatterns += [
    path("i18n/", include("django.conf.urls.i18n"))
]

然后,在templates/index.html中添加以下代码:<form action="{% url 'set_language' %}" ...>...</form>
{% "templates/index.html" %}

{% load i18n %}

{% ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ Here ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ %}
<form action="{% url 'set_language' %}" method="post">{% csrf_token %}
    <input name="next" type="hidden" value="{{ redirect_to }}">
    <select name="language">
        {% get_current_language as LANGUAGE_CODE %}
        {% get_available_languages as LANGUAGES %}
        {% get_language_info_list for LANGUAGES as languages %}
        {% for language in languages %}
            <option value="{{ language.code }}"{% if language.code == LANGUAGE_CODE %} selected{% endif %}>
                {{ language.name_local }} ({{ language.code }})
            </option>
        {% endfor %}
    </select>
    <input type="submit" value="Go">
</form>
{% ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ Here ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ %}

{% translate "Hello" %} {% trans "World" %}

现在,您可以按照下面的步骤将语言从英语切换为法语

enter image description here

而且,你可以按照下面的方式切换法语英语

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接