我试图在用户单击 Django 中的按钮时更改网站的语言。
我有一个基础项目,网址是:
urlpatterns += i18n_patterns(
# Ecommerce is the app where I want to change the language
url(r'^', include("ecommerce.urls")),
)
Ecommerce.urls 中的 url 是:
urlpatterns = [
url(r'^testing/$', views.test, name='url_testing'),
... other urls
]
当我访问上面的 url 时,我首先转到:http://localhost/en/testing/
.
我要设置链接<a href="{% url 'url_testing' %}">Change Language</a>
这样当用户点击它时,它会将语言更改为 http://localhost/zh-hans/testing/
.如何在我的模板中执行此操作?
编辑
我现在可以使用以下代码更改语言,但问题是它只能工作一次:
<form id="languageForm" action="/i18n/setlang/" method="post">
{% csrf_token %}
<input name="next" type="hidden" value="{% url 'url_testing' %}" />
<input id="newLanguageInput" type="hidden" name="language"/>
</form>
我的链接是:
<li><a onclick="changeLanguage('zh-hans')">简体</a></li>
<li><a onclick="changeLanguage('zh-hant')">繁體</a></li>
函数 changeLanguage 的定义如下:
function changeLanguage(newLanguage) {
$('input[name="newLanguageInput"]').val(newLanguage);
$('#languageForm').submit();
}
当我第一次点击 2 个链接中的任何一个时,代码有效,我将被重定向到 url http://localhost/zh-hans/testing/
或 http://localhost/zh-hant/testing/
.问题是我改了一次语言之后,就不再改了。我的提交有问题吗?
最佳答案
其实这不会是一个简单的<a>
链接但是一个<form>
.
阅读 how to set_language
redirect view .此表格将负责更改语言。这很容易。
确保你设置了一些 LANGUAGES
首先。
关于python - Django url更改语言代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42745198/