Django中是否有类似request.LANGUAGE_的区域性代码?
Django中是否有类似request.LANGUAGE_的区域性代码?,django,Django,request.LANGUAGE\u code告诉我用户选择了什么语言。例如英语为en,德语为de 但是我如何获得文化代码呢?比如英国英语的GB,美国英语的us 非常感谢,Django i18n上下文处理器(“Django.core.context\u processors.i18n”)将您的语言设置添加到上下文中。这让你可以做一些事情,比如: <form action="{% url 'set_language' %}" method="post"> {% csrf_token %
request.LANGUAGE\u code
告诉我用户选择了什么语言。例如英语为en
,德语为de
但是我如何获得文化代码呢?比如英国英语的GB
,美国英语的us
非常感谢,Django i18n上下文处理器(“Django.core.context\u processors.i18n”)将您的语言设置添加到上下文中。这让你可以做一些事情,比如:
<form action="{% url 'set_language' %}" method="post">
{% csrf_token %}
<input name="next" type="hidden" value="{{ redirect_to }}" />
<select name="language">
{% get_language_info_list for LANGUAGES as languages %}
{% for language in languages %}
<option value="{{ language.code }}">{{ language.name_local }} ({{ language.code }})</option>
{% endfor %}
</select>
<input type="submit" value="Go" />
</form>
{%csrf_令牌%}
{%get_language_info_list for LANGUAGES as LANGUAGES%}
{%用于语言中的语言%}
{{language.name_local}}({{language.code}})
{%endfor%}
添加方言也是有效的,例如,看看这篇文章:
有
请求.META['HTTP\u ACCEPT\u LANGUAGE']
。但是,这是由客户端(通常是web浏览器)设置的,因此在某些情况下可能无法正确设置。唯一简单的方法是让用户选择他们喜欢的语言,然后使用该设置。但是,如果站点是否使用正确的语言并不重要,并且您希望它在没有干预的情况下为用户“工作”,那么使用HTTP_ACCEPT_语言头就可以了。您甚至可以将这两种方法结合起来,这样,如果用户喜欢与检测到的语言不同的语言,他们就可以切换 谢谢你。最初,我尝试根据浏览器HTTP_接受的语言设置应用语言和区域性设置。但这似乎有点离谱。也许我应该允许用户将他们最喜欢的语言保存在数据库中,并且每次都从数据库中获取。让我先来个剧本……:)