我使用django为网站制作2种语言
无论用什么语言,网址都是http://127.0.0.1:8000/
。
如何制作这样的网址:
http://127.0.0.1:8000/en/
英文网站
http://127.0.0.1:8000/zh_tw/
中文网站
请指导我!非常感谢你。
index / index2.html:
<script type="text/javascript">
function selectdo(obj) {
str="/i18n/setlang/";
myform = document.getElementById('testform');
myform.method = "POST";
myform.action = str;
myform.submit();
}
</script>
<form name="testform" id="testform" method='post'>
{% csrf_token %}
<select id="language" name="language" onchange="selectdo(this)">
<option value="1" >{% trans "Languages" %}</option>
{% for langname in LANGUAGES %}
<option value="{{ langname.0 }}" > {{ langname.1 }}</option>
{% endfor %}
</select>
</form>
views.py
def index(request):
responseContext = {'lang':request.LANGUAGE_CODE,}
return render(request, 'index/index2.html',responseContext)
更新:
感谢sajadkk帮助我
设置i18n_patterns
后
我编辑我的表单(添加隐藏的输入)和成功!!
希望这会有助于其他人。
<form name="testform" id="testform" method='post'>
{% csrf_token %}
<input name="next" type="hidden" value="/" />
<select id="language" name="language" onchange="selectdo(this)">
<option value="1" >{% trans "Languages" %}</option>
{% for langname in LANGUAGES %}
<option value="{{ langname.0 }}" > {{ langname.1 }}</option>
{% endfor %}
</select>
</form>
答案 0 :(得分:0)
您可以使用i18n_patterns,
from django.conf.urls.i18n import i18n_patterns
urlpatterns += i18n_patterns('',
url(r'^admin/', include(admin.site.urls)),
#your urls
)
确保添加 django.middleware.locale.LocaleMiddleware