我正在尝试使用django-multilingual并正确设置它。但我发现,除了一个模板使用示例之外,对于django-multilingual来说,一切都很清楚。我刚开始使用django,我不知道,也许是因为这个原因,我不知道如何在模板端切换语言。有没有任何例子,你可以给予或任何'更多'明确的来源/文档有关这一点?
f0brbegy1#
在django中切换语言环境是一个简单的post do this viewhttps://docs.djangoproject.com/en/dev/topics/i18n/translation/#the-set-language-redirect-view在模板中,您可以通过请求访问语言值。LANGUAGE_CODE
h6my8fg22#
你也可以试试django-localeurl。它使用户能够切换区域设置,并将当前区域设置存储在URL中。它还提供了几个有用的模板标记,用于切换和显示可用的区域设置。
svujldwt3#
你可以在The set_language redirect view下面创建i18n切换器,但首先,你最好在我的答案下面设置翻译(英语和法语),你可以看到my question和我的答案解释如何为Django Admin创建i18n切换器。* 我使用的是Django 4.2.1。然后,将path("i18n/", include("django.conf.urls.i18n"))添加到core/settings.py中的urlpatterns,如下所示。* 根据文档,您不应该在i18n_patterns()中包含path("i18n/", include("django.conf.urls.i18n"))才能正常工作:
path("i18n/", include("django.conf.urls.i18n"))
core/settings.py
urlpatterns
i18n_patterns()
# "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")) ]
然后,将<form action="{% url 'set_language' %}" ...>...</form>添加到templates/index.html,如下所示:
<form action="{% url 'set_language' %}" ...>...</form>
templates/index.html
{% "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" %}
现在,您可以将英语切换为法语,如下图所示:
并且,您可以将法语切换为英语,如下图所示:
3条答案
按热度按时间f0brbegy1#
在django中切换语言环境是一个简单的post do this view
https://docs.djangoproject.com/en/dev/topics/i18n/translation/#the-set-language-redirect-view
在模板中,您可以通过请求访问语言值。LANGUAGE_CODE
h6my8fg22#
你也可以试试django-localeurl。它使用户能够切换区域设置,并将当前区域设置存储在URL中。它还提供了几个有用的模板标记,用于切换和显示可用的区域设置。
svujldwt3#
你可以在The set_language redirect view下面创建i18n切换器,但首先,你最好在我的答案下面设置翻译(英语和法语),你可以看到my question和我的答案解释如何为Django Admin创建i18n切换器。* 我使用的是Django 4.2.1。
然后,将
path("i18n/", include("django.conf.urls.i18n"))
添加到core/settings.py
中的urlpatterns
,如下所示。* 根据文档,您不应该在i18n_patterns()
中包含path("i18n/", include("django.conf.urls.i18n"))
才能正常工作:然后,将
<form action="{% url 'set_language' %}" ...>...</form>
添加到templates/index.html
,如下所示:现在,您可以将英语切换为法语,如下图所示:
并且,您可以将法语切换为英语,如下图所示: