Выбор языка Django на местном и родном языках

У меня есть веб-сайт django, на который я добавляю переводы с помощью селектора языка, в котором перечислены доступные языки на языке пользователя. Я хотел бы, чтобы раскрывающийся список также включал родное написание.

В настоящее время это выглядит так:
Английский
Голландский
Упрощенный китайский

Когда я переключаюсь на китайский, это выглядит как:
英语
荷兰语
简体中文

Я пытаюсь сделать это похожим на:
английский/английский
Голландский/Нидерланды
Упрощенный китайский/简体中文

settings.py включает:

ugettext = lambda s: s  
LANGUAGES = (
    ('en', ugettext('English')),
    ('nl', ugettext('Dutch')),
    ('zh-cn', ugettext('Simplified Chinese')),
)

base.html:

    {% load i18n %}
    {% get_available_languages as LANGUAGES %}
    <form action="/i18n/setlang/" method="post">{% csrf_token %}
      <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>

Я подумал добавить еще один элемент в LANGUAGES, который является родным языком, например:

LANGUAGES = (
    ('en', ugettext('English'), 'English'),
    ('nl', ugettext('Dutch'), 'Nederlands'),
    ('zh-ch', ugettext('Simplified Chinese'), '简体中文'),)

Но Джанго, похоже, ожидает кортеж из двух элементов для LANGUAGES. Любые другие идеи?

РЕДАКТИРОВАТЬ в соответствии с комментарием Александра: Я думал, что это может быть более простым решением, но после изменения кода:

        <form action="/i18n/setlang/" method="post">{% csrf_token %}
        <input name="next" type="hidden" value="/" />
        <select name="language">
            <option value="en">English</option>
            <option value="nl">Dutch\Nederlands</option>
            <option value="ru">Russian\Русский</option>
            <option value="zh-cn">Simplified Chinese-简体中文</option>
        </select>
        <input type="submit" value="Go" />
    </form>  

Русский и китайский шрифты отображаются как знаки вопроса -Русский\???????, Китайский -????

У меня <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> в html, другой русский и китайский текст (вне этой формы )отображается нормально.

5
задан Steve 18 July 2012 в 22:06
поделиться