栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

尝试从Django模板更改语言的问题

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

尝试从Django模板更改语言的问题

首先,让我解释一下问题:

i18_patterns
在你
urls.py
的语言代码中添加前缀时,如果你调用
URL set_language
更改语言而未指定next,则默认为当前语言,但使用的是旧的语言代码!因此,该语言恢复了原来的语言!并且,如果你明确指定next,则必须确保一开始就不要包含语言代码。

如果你使用

{{ request.path }}
或将该页面
{{ request.get_full_path }}
指定next为当前页面,则此操作将无效,因为它也会返回语言代码。

因此,我们如何删除不希望使用的语言代码,以使用时更改的语言重新加载当前页面

i18n_patterns
?容易,我们只需要切片3个第一个字符(斜杠和两个字符的语言代码)!

这里有两个例子。第一个以选择的形式(使用语言作为选择),另一个以按钮的形式(每种语言)。

我真的希望这对其他人有帮助。你可以复制并粘贴代码,它应该可以工作。但是,如果使用“按钮形式”,则只需将语言设置为所需的语言即可!

从列表中更改语言:

<form action="{% url 'set_language' %}" method="post">  {% csrf_token %}  <input name="next" type="hidden" value="{{ request.get_full_path|slice:'3:' }}" />  <select name="language">    {% get_language_info_list for LANGUAGES as languages %}      {% for language in languages %}        <option value="{{ language.pre }}"{% if language.pre == LANGUAGE_CODE %} selected="selected"{% endif %}>          {{ language.name_local }} ({{ language.pre }})        </option>      {% endfor %}  </select>  <input type="submit" value="Change" /></form>

将语言更改为按钮:

<form action="{% url 'set_language' %}" method="post">  {% csrf_token %}  <input name="next" type="hidden" value="{{ request.get_full_path|slice:'3:' }}" />  <input name="language" type="hidden" value="es" />  <input type="submit" value="ES" /></form>


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/407840.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号