Интернационализация django 1.3 ... переключение языка требует перезагрузки сервера? - PullRequest
4 голосов
/ 15 мая 2011

Я использовал django 1.2 раньше и у меня не было проблем с переключением языка ... В моем шаблоне у меня есть это ...

<form action="/i18n/setlang/" method="post" class="forms">
{% csrf_token %}
<input name="next" type="hidden" value="/next/page/" />
<select name="language" id="select_langauge" class="m_show hide">
{% for lang in LANGUAGES %}
    {% if lang.0 != '' %}
        <option value="{{lang.0}}">{{lang.1}}</option>
    {% endif %}
{% endfor %}
</select>

Это прекрасно работало с django1.2.Но после обновления до Django 1.3 это не работает.Я вижу, что LANGUAGE_CODE изменяется, но фактический вывод языка не соответствует ожиданиям.

Однако, когда я перезагружаю сервер django, он показывает правильный язык.Чего мне не хватает ???

У меня это есть в settings.py

LANGUAGE_CODE = 'en-us'
SITE_ID = 1

USE_I18N = True

gettext = lambda s: s

LANGUAGES = (
    ('', gettext('Please select')),
    ('en', gettext('English')),
    ('ko', gettext('Korean')),
)

USE_L10N = True


MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.middleware.locale.LocaleMiddleware',
)

1 Ответ

1 голос
/ 04 октября 2011

Я разобрался.

Для динамического изменения языка с помощью ugettext_lazy () была решена проблема. (Прежде чем я использовал ugettext).

Ссылка: https://docs.djangoproject.com/en/1.3/topics/i18n/internationalization/#lazy-translation

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...