6

Djangoでは、ugettext_lazyを使用して、その表現が必要なときだけ文字列の翻訳を行うことをうれしく思います。Django:翻訳された文字列を作成するときに怠惰な翻訳を続ける

問題は、遅延文字列を通常の文字列に連結するときや、そのメソッド(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 

私は、これはジャンゴの正常な動作であることを知っている誰かがこの問題を解決したのだろうか。連結のために

+1

django 1.11以降の場合。 https://stackoverflow.com/questions/29252312/how-can-i-join-lazy-translation-in-django/47263039#47263039 – Jay

答えて

6

、あなたはstring_concatあなたは、capitalize怠惰な実装django.utils.functional.lazyデコレータを使用したい場合は怠惰なオブジェクトに

を作成します(1.11から)/ format_lazy(1.10まで)を使用することができます。 string_concatimplementationを参照してください。

関連する問題