gpt4 book ai didi

django - 在 django 中更改语言及其 url

转载 作者:行者123 更新时间:2023-12-03 21:40:46 25 4
gpt4 key购买 nike

我在 Django 中有一个两种语言的网站,以及一个用于更改网站语言的选择表单。它工作正常,直到我开始在 url 中使用 i18n_patterns。所以现在,我网站的每个网址都以:foo.com/en/foo.com/es/ 开头。

问题是,当我使用表单更改语言时,url 设置会覆盖表单的选择,因此语言不会被更改。实现这一目标的唯一方法是从 url 手动完成。

但是,我不想将所有语言更改都链接到初始页面。网址可能类似于 foo.com/en/post/foo-post/ 我希望能够将其更改为 foo.com/es/post/foo-post/。我做错了什么?

我的表格是:

<form action="{% url 'set_language' %}" method="post">
{% csrf_token %}
<input name="next" type="hidden" value="{{ redirect_to }}" />
<select name="language" onchange="this.form.submit()">
<option value="es" {% if LANGUAGE_CODE == "es" %} selected="selected"{% endif %}>Español</option>
<option value="eu" {% if LANGUAGE_CODE == "en" %} selected="selected"{% endif %}>English</option>
</select>
</form>

非常感谢

最佳答案

我有一个多语言选择的网页,这是我的 base.html 模板中的一个示例。我希望你觉得它有用。

{% load i18n %}
{% get_current_language as CURRENT_LANGUAGE %}
{% get_static_prefix as STATIC_PREFIX %}
<head>
...
<script>
jQuery(window).load(function() {
$('#language').change(function() {
window.location.replace("/" + $('#language').val() + "/index");
});
});
</script>
...
</head>

<body>
....
<select id="language" name="language">
{% if CURRENT_LANGUAGE == 'es' %}
<option value="es" selected="yes">{% trans "Espaniol" %}</option>
{% else %}
<option value="es">{% trans "Espaniol" %}</option>
{% endif %}
{% if CURRENT_LANGUAGE == 'en' %}
<option value="en" selected="yes">{% trans "Ingles" %}</option>
{% else %}
<option value="en">{% trans "Ingles" %}</option>
{% endif %}
</select>
...
</body>

关于django - 在 django 中更改语言及其 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25548926/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com