Tengo una pregunta sobre el uso de ugettext y ugettext_lazy
para las traducciones. Aprendí que en los modelos debería usar ugettext_lazy
, mientras que en las vistas ugettext. ¿Pero hay otros lugares, donde debería usar ugettext_lazy
también? ¿Qué pasa con las definiciones de formulario? ¿Hay alguna diferencia de rendimiento entre ellos?
Editar:
Y una cosa más. A veces, en lugar de ugettext_lazy
, ugettext_noop
se usa. Como dice la documentación, las ugettext_noop
cadenas solo están marcadas para traducción y traducidas al último momento posible antes de mostrarlas al usuario, pero estoy un poco confundido aquí, ¿no es eso similar a qué ugettext_lazy
hacer? Todavía es difícil para mí decidir qué debo usar en mis modelos y formularios.
fuente
msg = "An error has occurred"; logging.error(msg);return HttpResponse(_(msg))? why need
_noop?
si sin_noop
, django no encuentra que la cadena necesita traducción?_noop
?Un excelente uso de _noop es cuando desea registrar un mensaje en inglés para los desarrolladores, pero presentar la cadena traducida a un visor. Un ejemplo de esto está en http://blog.bessas.me/posts/using-gettext-in-django/
fuente
La versión diferida devuelve un objeto proxy en lugar de una cadena y en alguna situación no funcionaría como se esperaba. Por ejemplo:
fallaría porque la última línea intentaría serializar el objeto lst en JSON y en lugar de una cadena para "cliente" tendría un objeto proxy. El objeto proxy no se puede serializar en json.
fuente