django-多语言和模板端语言之间的切换
我正在尝试使用 django-multilingual 并正确设置它。但我发现除了模板使用示例之外,django-multilingual 的一切都很清楚。
我刚开始使用django,我不知道,也许因为这个原因,我不知道如何在模板端切换语言。
您是否可以提供任何示例或任何有关此的“更多”明确来源/文档?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
在 django 中切换语言环境是一个简单的帖子,执行此视图
https://docs.djangoproject.com/en/dev/topics/i18n/translation/#the-set-language-redirect-view
在模板中,您可以使用 request.LANGUAGE_CODE 访问语言值
switching locale in django is a simple post do this view
https://docs.djangoproject.com/en/dev/topics/i18n/translation/#the-set-language-redirect-view
in templates you can access the language value with request.LANGUAGE_CODE
您可能还想尝试 django-localeurl 应用。它使用户能够切换将当前区域设置存储在 URL 中的区域设置。它还提供了几个有用的模板标签,用于切换和显示可用的区域设置。
You might also want to try django-localeurl app. It enables users to switch locales storing current locale in the URL. It also provides several useful template tags for switching and displaying available locales.
您可以按照 i18n 切换器 ="nofollow noreferrer">set_language 重定向视图,但首先,您最好按照 我的答案,你可以看到我的问题和我的回答解释了如何为 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"))
才能根据 文档:然后,将
添加到
templates/index.html
作为如下所示:现在,您可以将英语切换为法语,如下所示:
而且,您可以切换法语为英文,如下所示:
You can create i18n switcher following The set_language redirect view but first, you better set up translation(English and French) following my answer and you can see my question and my answer explaining how to create i18n switcher for Django Admin. *I use Django 4.2.1.
Then, add
path("i18n/", include("django.conf.urls.i18n"))
tourlpatterns
incore/settings.py
as shown below. *You should not includepath("i18n/", include("django.conf.urls.i18n"))
ini18n_patterns()
to work correctly according to the doc:Then, add
<form action="{% url 'set_language' %}" ...>...</form>
totemplates/index.html
as shown below:Now, you can switch English to French as shown below:
And, you can switch French to English as shown below: