En Django, estoy felizmente usando ugettext_lazy
para posponer la traducción de una cadena solo cuando se necesita su representación.Django: mantener la traducción diferida al componer cadenas traducidas
El problema es que cuando concateno una cadena perezosa a una cadena normal o cuando uso sus métodos (por ejemplo, capitalizar()), la cadena se evalúa y pierdo la traducción diferida.
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
Sé que este es el comportamiento normal de Django, pero me pregunto si alguien ha resuelto este problema.
Para django 1.11 y posteriores. https://stackoverflow.com/questions/29252312/how-can-i-join-lazy-translation-in-django/47263039#47263039 – Jay