My i18n locale test not work as expected,the directory is like this:
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/urls.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'),
]
localedemo/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)
when run server ,the result is:
when i change the language prefix , it not worked:
the django.po in each language subforder is
msgid "Welcome to my site."
msgstr "this is english website"
msgid "Welcome to my site."
msgstr "中文网站"
msgid "Welcome to my site."
msgstr "中文繁体网站"
and the localedemo/templates/index.html
{% load i18n %}
<html !DOCTYPE=html>
<head><title>hi</title></head>
<body>
<div>
<h1>Hello, world!</h1>.
<h1>{% trans mystr %}</h1>
<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>
and when i selected the language in the listbox:
did i miss something or anywhere i did wrong? anyone can help me ? thanks in advance