ugettext y ugettext_lazy en Django

¿Podría explicar qué diferencia principal de ugettext y ugettext_lazy.

Cuando bash

return HttpResponse(ugettext_lazy("Hello")) 

no he visto nada, pero

 return HttpResponse(ugettext("Hello")) 

está trabajando.

¿Por qué?

Gracias.

ugettext se utiliza para cargar una traducción de una cadena en este momento . ugettext_lazy devuelve un objeto que eventualmente se puede convertir en una cadena. Necesitará eso si la llamada ugettext_lazy se evalúa antes de que se haya establecido la configuración regional correcta.

ugettext_lazy se puede usar cuando usas un objeto Unicode. Vuelva a verificar su salida HTML, podría verse así:

  

y el navegador lo ignora todo como una etiqueta no reconocida.

No necesita una traducción perezosa en este caso, porque está usando la cadena de inmediato. Si realmente quieres continuar con ugettext_lazy por alguna razón, prueba esto:

 return HttpResponse(ugettext_lazy("Hello").encode('utf-8')) 

Consulte la documentación para obtener más información.