6

Django'da, bir dizenin yalnızca temsilinin gerekli olduğu hallerde çevirisini yapmak için mutlu bir şekilde ugettext_lazy kullanıyorum.Django: çevrilmiş dizeleri oluştururken tembelli çeviri yapmaya devam et

Sorun şu ki, tembel bir dizeyi normal bir dizeyle birleştirdiğimde veya yöntemlerini kullanırken (örn. Capitalize()), dize değerlendirilir ve tembel çeviri kaybederim.

E.g.

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 

Bunun Django'nun normal davranışı olduğunu biliyorum, ancak birilerinin bu sorunu çözüp çözmediğini merak ediyorum. bitiştirmek için

+1

Django 1.11 ve daha fazlası için. https://stackoverflow.com/questions/29252312/how-can-i-join-lazy-translation-in-django/47263039#47263039 – Jay

cevap

6

, sen string_concat Eğer capitalize tembel uygulamak django.utils.functional.lazy dekoratör kullanmak isterseniz tembel nesne

oluşturur (1.11 itibaren)/format_lazy (1.10 kadar) kullanabilirsiniz. Bakınız string_concatimplementation.

İlgili konular