Django: сохраняйте ленивый перевод при составлении переведенных строк

В Django я с радостью использую ugettext_lazy , чтобы отложить перевод строки только тогда, когда требуется ее представление.

Проблема в том, что когда я объединяю ленивую строку с нормальной строкой или когда я использую ее методы (например, capitalize ()), строка оценивается, и я теряю ленивый перевод.

Например.

label = ugettext_lazy('my label')   #This is lazy
label_concat = label + ' some other string'   #'label_concat' contains transalted 'label'
label_cap = label.capitalize()  #'label_cap' contains transalted 'label'

#Set language
...

print label    #Translated
print label_cap  #Not translated

Я знаю, что это нормальное поведение Django, но мне интересно, решил ли кто-нибудь эту проблему.

6
задан Don 9 November 2011 в 16:41
поделиться