2016-04-20 82 views
0

我的國際化語言環境測試無法正常工作,該目錄是這樣的:國際化不能正常工作時,變化的語言前綴

enter image description here mysite.urls.py

from django.contrib import admin 
from django.conf.urls import patterns, include, url 
from django.conf.urls.i18n import i18n_patterns 

urlpatterns = patterns('', 
    url(r'^i18n/', include('django.conf.urls.i18n')), 
) 


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

    # url(r'^$', 'localedemo.views.home', name='home'), 
    # url(r'^i18n/', include('django.conf.urls.i18n')), 
) 

localedemo /網址。 py

from django.conf.urls import url 

from . import views 

urlpatterns = [ 
    url(r'^$', views.index, name="index"), 
    # url(r'^set-language/', views.set_language, name='set-language'), 
] 

localede MO/views.py

from django.shortcuts import render 
from django.http import HttpResponse 
from django.utils.translation import ugettext_lazy as _ 
from django.utils import translation 
def index(request): 
    translation.activate('zh_CN') 
    language = translation.get_language_from_request(request) 
    print("language:" + language) 
    #Translators: This message appears on the home page only 
    output = _("Welcome to my site.") 
    str = {'mystr': output} 
    return render(request, 'localedemo/index.html',str) 

運行服務器時,其結果是:

result image

當我改變語言前綴

,但沒有奏效: the result not work

Django的。 po每種語言的子碼是

msgid "Welcome to my site." 
msgstr "this is english website" 

msgid "Welcome to my site." 
msgstr "中文網站" 

msgid "Welcome to my site." 
msgstr "中文繁體網站" 

和localedemo /模板/ index.html的


 

 
    {% load i18n %} 
 
    <html !DOCTYPE=html> 
 
    <head><title>hi</title></head> 
 
    <body> 
 
    <div> 
 
    \t <h1>Hello, world!</h1>. 
 

 
    \t <h1>{% trans mystr %}</h1> 
 
    \t <h1>{{ mystr }}</h1> 
 
    </div> 
 

 
    <div> 
 

 
    <form action="/i18n/setlang/" method="post"> 
 
    {% csrf_token %} 
 
     <input name="next" type="hidden" value="/" /> 
 

 
     <select name="language"> 
 

 
      {% for lang in LANGUAGES %} 
 

 
        <option value="{{ lang.0 }}" {% if lang.0 == SELECTEDLANG %}selected{% endif %}>{% if lang.1 == 'Spanish' %}Español{% else %}{{ lang.1 }}{% endif %}</option> 
 

 
      {% endfor %} 
 

 
     </select> 
 

 
     <input type="submit" value="Go" /> 
 

 
    </form> 
 

 
    </div> 
 

 
    <div> 
 

 
     {% get_current_language as LANGUAGE_CODE %} 
 
    <!-- Current language: {{ LANGUAGE_CODE }} --> 
 
    <p>{% trans "Welcome to my site." %}</p> 
 

 
    {% language 'en' %} 
 
     {% get_current_language as LANGUAGE_CODE %} 
 
     <!-- Current language: {{ LANGUAGE_CODE }} --> 
 
     <p>{% trans "Welcome to my site." %}</p> 
 
    {% endlanguage %} 
 
    </div> 
 
    </body> 
 
    </html>

,當我選擇在列表框中的語言: enter image description here

我錯過了什麼或任何地方,我沒有錯誤?任何人都可以幫助我?在此先感謝

回答

0

檢查您的mysite/urls.py。索引網址與localedemo

url(r'^localedemo/$', include('localedemo.urls')) 

開始,你逝去的next/。 因此,請將其更改爲localedemo/或將索引網址移至mysite/urls.py