2013-05-10 3 views
2

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

Например:

remarks_sample = forms.CharField(
label = _('Remarks'), 
widget = forms.Textarea(attrs = { 
     'placeholder': _("Remarks"), 
    }) 
) 

Я успешно провел django-admin.py makemessages и переводил фразы в Rosetta администратора. Я пытаюсь понять, почему переведенные фразы не появляются на моих страницах.

ответ

4

Были ли файлы, на самом деле написанные django-rosetta? Если Rosetta не может записать содержимое обратно в файлы .po (например, потому что они не могут быть перезаписаны процессом веб-сервера), он просто сохранит их в памяти (вы можете загрузить ваши переводы и заменить файлы.)

Кроме того, вы можете запустить django-admin.py compilemessages, чтобы явно скомпилировать обновленные файлы .po в файлы .mo, которые читаются Django, перед перезапуском веб-сервера.

Кроме того, является _ с пометкой на ugettext или ugettext_lazy? Вероятно, это должно быть последнее.

+0

Он работал с ugettext_lazy. Спасибо: =). – ObviousCat

0

Если вы используете сервер разработки, вам придется перезапустить его, так как он не будет обнаруживать обновленные переводы самостоятельно.

Если вы находитесь на производственном сервере, вы, вероятно, захотите сообщить о необходимости перезагрузки rosetta (см.: Rosetta Configuration).

+0

Мой системный администратор подтверждает, что сервер был перезапущен. Интересно, что тот же перевод появляется в ярлыке форм, но не в placeholder. – ObviousCat

+0

Попытайтесь найти, где проблема, то есть: скомпилированы переводы, после этого сервер перезагружен. – bmihelac

Смежные вопросы