我想要多语言网页。 当我手动输入语言缩写时,它工作正常。例如,www.my_page.com/en,但在使用链接添加 HMTL 时会抛出错误。无法弄清楚是什么问题。这是代码。
在我的应用程序中查看功能
def store(request):
return render(request, "store/store.html")
def set_language(request, language):
for lang, _ in settings.LANGUAGES:
translation.activate(lang)
try:
view = resolve(urlparse(request.META.get("HTTP_REFERER")).path)
except Resolver404:
view = None
if view:
break
if view:
translation.activate(language)
next_url = reverse(view.url_name, args=view.args, kwargs=view.kwargs)
response = HttpResponseRedirect(next_url)
response.set_cookie(settings.LANGUAGE_COOKIE_NAME, language)
else:
response = HttpResponseRedirect("/")
return response
应用程序网址.py
urlpatterns = [
path("", views.store, name="store"),
path("set_language/<str:language>/", views.set_language, name="set-language"),
]
项目地址.py
urlpatterns = [
path('admin/', admin.site.urls),
path("", include("store.urls")),
]
urlpatterns = [
*i18n_patterns(*urlpatterns, prefix_default_language=False),
]
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
我的模板 html 文件
<!-- Topbar Start -->
<div class="container-fluid bg-dark text-light px-0 py-2">
<div class="row gx-0 d-none d-lg-flex">
<div class="col-lg-5 px-5 text-end">
<i class="fa fa-globe"></i>
<span>Language:</span>
<a href="{% url 'set-language' 'tm' %}">TKM</a>
<a href="{% url 'set-language' 'ru' %}">RU</a>
<a href="{% url 'set-language' 'en' %}">ENG</a>
<a href="{% url 'set-language' 'tr' %}">TR</a>
</div>
</div>
</div>
<!-- Topbar End -->
我在根级别尝试了多语言功能。它工作正常但应用程序是这样的
NoReverseMatch at /set_language/en/ Reverse for 'None' not found. 'None' is not a valid view function or pattern name.