Перевести шаблоны в Django

У меня есть проект в Django 1.8. Я хочу иметь сайт с 3 языками, но когда я выбираю язык, ничего не происходит:

Код в моем шаблоне:

    {% load i18n %}

    ...

<form action="{% url 'set_language' %}" method="post">
    {% csrf_token %}
    {% get_available_languages as LANGUAGES %}
    {% get_language_info_list for LANGUAGES as languages %}
    {% for language in languages %}
    <a href="{% url 'set_language' %}">{{ language.code }}</a>
    {% endfor %}
    <span class="glyphicon glyphicon-globe"></span>
</form>

Мои URL:

urlpatterns = patterns('',
    # Examples:
    # url(r'^$', 'website.views.home', name='home'),
    # url(r'^blog/', include('blog.urls')),
    url(r'^i18n/', include('django.conf.urls.i18n')),
    url(r'', include("www.urls", namespace="www")),
    url(r'^blog/', include("blog.urls", namespace="blog")),
    url(r'^admin/', include(admin.site.urls)),
    url(r'^ckeditor/', include('ckeditor.urls')),
)

Мои настройки (локаль) - я использую здесь django-rosetta:

LANGUAGE_CODE = 'en-us'

LANGUAGES = (
    ('pl', u'Poland'),
    ('en', u'US'),
    ('ru', u'Russia'),
)

LOCALE_PATHS = [
    os.path.join(BASE_DIR, 'locale'),
]

1 ответ

Вы написали код, который ничего не делает.

Встроенное представление django set_language принимает запросы POST с language код в качестве участника Нажав на a тег даже в представлении формы делает запрос GET.

Измените свой шаблон на следующий

<form action="{% url 'set_language' %}" method="post">{% csrf_token %}
    <select name="language">
        {% get_current_language as LANGUAGE_CODE %}
        {% get_available_languages as LANGUAGES %}
        {% get_language_info_list for LANGUAGES as languages %}
        {% for language in languages %}
            <option value="{{ language.code }}"{% if language.code == LANGUAGE_CODE %} selected="selected"{% endif %}>
                {{ language.name_local }} ({{ language.code }})
            </option>
        {% endfor %}
    </select>
    <input type="submit" value="Go" />
</form>

https://docs.djangoproject.com/en/1.8/topics/i18n/translation/

Другие вопросы по тегам