と に切り替えることはできますがru
、en
に切り替えようhy
としても何も起こりません。
設定.py
...
LANGUAGE_CODE = 'en'
LANGUAGES = [
('en',_('English')),
('ru', _(u'Russian')),
('hy', _(u'Armenian')),
]
sidebar.html
...
<div id="sidebar-item-news">
<form action="/i18n/setlang/" method="post" id="language-select">
<input name="next" type="hidden" value="/" />
{% csrf_token %}
<select name="language">
{% for lang in LANGUAGES %}
<option value="{{ lang.0 }}">{{ lang.1 }}</option>
{% endfor %}
</select>
<input type="submit" value="Go" />
</form>
</div>
urls.py
# Internationalization
(r'^i18n/', include('django.conf.urls.i18n')),
いくつかのデバッグの後、 request.session['django_language'] がru
andのみに変更されることがわかりましたen
:
Current language is ru
[19/May/2012 22:51:55] "GET / HTTP/1.1" 200 13357
[19/May/2012 22:51:56] "POST /i18n/setlang/ HTTP/1.1" 302 0
Current language is ru
[19/May/2012 22:51:56] "GET / HTTP/1.1" 200 13357
すべての翻訳ファイルを/locale/hy
およびでコンパイルしました/locale/ru
ホームビューtranslation.activate('hy')
に配置すると完全に機能しますが、APIでこれを実行しようとすると
def api(request, type):
if request.method == 'POST':
if type == 'daytime':
request.session['daytime'] = request.POST['daytime']
return HttpResponse(request.session['daytime'])
if type == 'language':
request.session['custom_language'] = True
request.session['django_language'] = request.POST['language']
translation.activate(request.session['django_language'] )
return HttpResponse(request.session['django_language'])
raise Http404
else:
raise Http404
フォームとして失敗しますi18n/setlang
。
これを修正する方法は?
UPD Django はアルメニア語をサポートしていないようです。(/django/conf/locale/ に 'hy' はありません) この言語をどのように扱うべきですか?