で言語を変更することはできません。このメソッドは、言語コードと言語を設定する必要がありますはジャンゴ
def set_language(request):
if request.method == 'POST':
response = HttpResponseRedirect(reverse('root'))
lang_code = request.POST.get('language', None)
if lang_code and check_for_language(lang_code):
if hasattr(request, 'session'):
request.session['django_language'] = lang_code
else:
response.set_cookie(settings.LANGUAGE_COOKIE_NAME, lang_code)
return response
return render(request, 'profile/change_language.html')
次の形式をHTML change_language.html settings.pyで
<form action="{% url 'profile:language' %}" method="post">
{% get_current_language as LANGUAGE_CODE %}
<label for="new_lang">{% trans "Choose your language:" %}</label>
<fieldset>
<input type="radio" id="de" name="language" value="de" {% if LANGUAGE_CODE == 'de' %} checked {% endif %} >
<label for="de">German</label>
<input type="radio" id="uk" name="language" value="en" {% if LANGUAGE_CODE == 'en' %} checked {% endif %} >
<label for="en">English</label>
</fieldset>
{{ form.newlang }}
<input type="submit" value="Change language">
{% csrf_token %}
</form>
であります
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.security.SecurityMiddleware',
)
LANGUAGE_CODE = 'en'
TIME_ZONE = 'CET'
USE_I18N = True
USE_L10N = True
USE_TZ = True
# Languages available
LANGUAGES = (
('de', 'German'),
('en', 'English'),
)
私はウェブサイトを起動すると、私の言語はドイツ語である(私はゲルマで午前:私は、次の関連する設定がありますny)。私がchange_languageページに行き、ドイツ語から英語に言語を設定しようとすると、何も変わりません。おそらく忘れてしまったことはありますか?
使用しないのはなぜ[ビルトインビュー](https://docs.djangoproject.com/en/1.9/topics/i18n/translation/#the-set-language-redirect -view)? – knbk