2014-12-10 2 views
1

django를 사용하여 웹 사이트에 2 개 언어를 사용합니다.
URL은 어떤 언어인지에 관계없이 http://127.0.0.1:8000/입니다. 중국어 웹 사이트에 대한 영어 웹 사이트 http://127.0.0.1:8000/zh_tw/에 대한 http://127.0.0.1:8000/en/django i18n url 설정

나를 인도 해주십시오 :

어떻게 이런 URL을 만들기 위해 할 수 있습니다! 고맙습니다.

인덱스/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) 

갱신 :

감사가 i18n_patterns
내 양식을 편집을 설정 한 후 나에게
을 도와 sajadkk (숨겨진 입력 추가) 및 성공 !!
다른 사람들에게 도움이되기를 바랍니다.

<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

당신은 그것에 대해 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을 추가해야합니다

은`HTTP```에 갈 수
+0

: //127.0 .0.1 : 8000/ko /''''그러나'''''zh_tw''''로 변경하고 싶을 때는 아무 일도 일어나지 않습니다. 내 템플릿이 잘못 되었나요? – user2492364

+0

감사합니다. @sajadkk. 나는 성공 – user2492364

+0

만약 당신이 도움이 답변을 수락하시기 바랍니다 :) – sajadkk