Теги шаблона успешно переведены, но ugettext_lazy() в утилитах не переводится
Мне успешно удалось получить trans и blocktrans для перевода текста.
Тем не мение...
У меня есть функция, определенная в utils.py, которая возвращает словарь, содержащий строки, некоторые из которых мне нужно преобразовать в текущий язык. РЕДАКТИРОВАТЬ: * Это - utils.py, который я создал в своем каталоге проекта, который вызывается представлениями для выполнения определенных вспомогательных функций в отношении dict, а затем возвращает обновленный dict
Я сделал что-то вроде этого:
try:
path = default_storage.save(customercode + '/' + file.name, ContentFile(file.read()))
results['status'] = 'success'
results['message'] = _(u'Your file has been successfully uploaded')
except Exception as e:
results['status'] = 'error'
results['message'] = _(u'There was an error uploading your file: ') + str(e)
return results
Я также добавил from django.utils.translation import ugettext_lazy as _ to the top of this utils.py file..
И этот словарь "результатов" используется в одном из моих представлений, где весь словарь после некоторой дальнейшей обработки передается в качестве переменной контекста в шаблон.
Я правильно установил перевод в.po файле. Все остальные теги шаблона переведены отлично. Только вышеперечисленные строки не переводятся.
Любая помощь будет принята с благодарностью.
ОБНОВЛЕНИЕ: я попробовал тот же самый процесс в метке, заполненной формой, и она переведена просто отлично. Это только вышеупомянутые области, где это не будет переводиться!
PS: это мой первый вопрос по stackru. Я заранее извиняюсь, если допустил ошибки, задавая этот вопрос.
1 ответ
Как я и ожидал,
Я делал очень глупую ошибку. Я получил доступ к неверной переменной в шаблоне, пытаясь напечатать переведенное значение! >_<
Но я думаю, что одна вещь, которую я узнал, это держаться подальше от проблемы, а затем возвращаться к ней после долгого времени, которое помогает. Вы должны изучить проблему снова, и это иногда помогает вам находить глупые ошибки, подобные этим!