Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 1, 2009 16:12:23

Evg
От:
Зарегистрирован: 2008-12-25
Сообщения: 346
Репутация: +  -1  -
Профиль   Отправить e-mail  

Объясните прикол с i18n

Использую i18n в проекте:


есть такая вьюшка:

    from django import forms
from django.utils.translation import gettext as _

class SetLoginForm(forms.Form):
login = forms.CharField(label=_('Your Login'), max_length=30)
f = SetLoginForm()
r = render_to_response('set_login.html', {'f':f,'request':req,'user':req.user})
return r
при переключении языков: перевод _'Your Login" срабатывает нормално, но стоит мне вынести описание класса формы в отдельный файл например forms.py

forms.py
    from django import forms
from django.utils.translation import gettext as _

class SetLoginForm(forms.Form):
login = forms.CharField(label=_('Your Login'), max_length=30)
и далее во вьюшке:

    from forms import SetLoginForm
f = SetLoginForm()
r = render_to_response('set_login.html', {'f':f,'request':req,'user':req.user})
return r
как сразу перевод перестает переключатся! хотя по сути все одно и тоже, далее еще прикол стоит мне как лиюо изменить файл forms.py - добавить пробел к примеру в конце файла, как сразу же переключение срабатывает один раз и перестает, те как кеширование какоето на изменение файла, подскажите что это за муть такая? и почему так происходит?



Офлайн

#2 Авг. 1, 2009 18:01:21

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Объясните прикол с i18n

Evg
подскажите что это за муть такая? и почему так происходит?
Ну вообще-то ответ есть в документации http://docs.djangoproject.com/en/dev/topics/i18n/#lazy-translation. Функция gettext осуществляет перевод при вызое. Соотвественно для опрделения моделей (и форм) на уровне модуля, которое происходит один раз при первом импорте этого модуля, перевод осущуствляется тоже один раз. Используйте ленивый геттекст, тогда перевод будет браться в самый послдний момент перед использованием этой строки.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version