Я создаю многоязычные парты. Я хочу перевести контент в соответствии с выбранным мной языком. i этот код Django i18n setlang view gives Error 404 Когда я выбираю язык, метод почты - это вызов i18n/setlang & снова появляется на той же странице, но контент не изменяется. Может ли кто-нибудь помочь мне решить эту проблему?Перевод текста в Django с использованием i18n
Благодарности
настройки
gettext = lambda s: s
LANGUAGES = (
('en', gettext('English'),),
('no', gettext('Norwegian'),),
)
TEMPLATE_CONTEXT_PROCESSORS = (
'django.contrib.auth.context_processors.auth',
'django.core.context_processors.i18n',
'multilingual.context_processors.multilingual',
'django.core.context_processors.media',
)
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
)
шаблон
{% load i18n %}
<form action="/i18n/setlang/" method="post">
{% csrf_token %}
<input name="next" type="hidden" value="{{ redirect_to }}" />
<select name="language">
{% get_language_info_list for LANGUAGES as languages %}
{% for language in languages %}
<option value="{{ language.code }}">{{ language.name }} ({{ language.code }})</option>
{% endfor %}
</select>
<input type="submit" value="Go" />
</form>
**view.py**
def index(request):
return render_to_response('flatpages/index.html', locals(), context_instance=RequestContext(request))
**index.html**
{% block content %}
{% load i18n %}
<h1>{{ flatpage.title }}</h1>
Language Code:{{ LANGUAGE_CODE}}<br>
{% trans "Hello" %}<br>
{% trans "Home" %}<br>
{{ flatpage.content }}
{% endblock content %}
В коде выше я использую
URL (г '^ i18n /', включают в себя ("Джанго .conf.urls.i18n ')),
Это означает, что при отправке формы он вызывает метод set_language из файла i18n.py django.
Я проверяю этот метод, в этом методе «check_for_language (lang_code) возвращает false»
, почему переменная сеанса не установлена.
Может кто-нибудь, пожалуйста, скажите, почему это не установлено?
В настройках будут внесены изменения, чтобы задать путь к языку.
Я создал папку локали в моей папке проекта.
следовали ли вы в Джанго документации и установку соответствующего Locale промежуточного слоя? Другими словами, разместите свои соответствующие настройки, форму и посмотрите пожалуйста –
Спасибо за ответ. Я добавляю код, который я использую для перевода языка. Не могли бы вы рассказать и сказать мне, что я должен делать неправильно? – Meenakshi
Добавьте вид, пожалуйста. –