简体   繁体   中英

django i18n url setting

I use django to make 2 languages for a website
The url is http://127.0.0.1:8000/ no matter what language it is.

How can I do to make url like this : http://127.0.0.1:8000/en/ for english website http://127.0.0.1:8000/zh_tw/ for Chinese website

Please guide me! Thank you very much.

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)

update :

Thanks sajadkk for helping me
After setting the i18n_patterns
I edit my form (add a input hidden ) and success !!
Hope this will help other people.

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

You can use i18n_patterns for that,

from django.conf.urls.i18n import i18n_patterns

urlpatterns += i18n_patterns('',
   url(r'^admin/', include(admin.site.urls)),
   #your urls
)

make sure to add django.middleware.locale.LocaleMiddleware

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM