Mam pytanie dotyczące używania ugettext i ugettext_lazy
tłumaczeń. Dowiedziałem się, że w modelach powinienem używać ugettext_lazy
, podczas gdy w widokach ugettext. Ale czy są jakieś inne miejsca, z których ja też powinienem skorzystać ugettext_lazy
? A co z definicjami formularzy? Czy są między nimi różnice w wydajności?
Edycja:
I jeszcze jedna rzecz. Czasami, zamiast ugettext_lazy
, ugettext_noop
jest używany. Jak mówi dokumentacja, ugettext_noop
ciągi znaków są zaznaczane tylko do tłumaczenia i tłumaczone najpóźniej przed wyświetleniem ich użytkownikowi, ale jestem trochę zdezorientowany, czy nie jest to podobne do tego ugettext_lazy
, co zrobić? Nadal ciężko mi zdecydować, które powinienem zastosować w moich modelach i formach.
źródło
msg = "An error has occurred"; logging.error(msg);return HttpResponse(_(msg))? why need
_noop,?
jeśli bez_noop
, django nie znajdzie napisu wymagającego tłumaczenia?_noop
?Znakomitym zastosowaniem _noop jest, gdy chcesz zarejestrować wiadomość w języku angielskim dla programistów, ale zaprezentować przetłumaczony ciąg widzowi. Przykład tego znajduje się pod adresem http://blog.bessas.me/posts/using-gettext-in-django/
źródło
Wersja leniwa zwraca obiekt proxy zamiast ciągu znaków iw niektórych sytuacjach nie będzie działać zgodnie z oczekiwaniami. Na przykład:
nie powiedzie się, ponieważ ostatnia linia będzie próbowała serializować obiekt lst do formatu JSON i zamiast ciągu znaków dla „klienta” miałby obiekt proxy. Obiekt proxy nie jest możliwy do serializacji do json.
źródło