django i18n网址设置

时间:2014-12-10 06:42:19

标签: python django

我使用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>

1 个答案:

答案 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

相关问题