Saya punya pertanyaan tentang penggunaan ugettext dan ugettext_lazy
terjemahan. Saya belajar bahwa dalam model saya harus menggunakan ugettext_lazy
, sementara dalam pandangan ugettext. Tetapi apakah ada tempat lain, di mana saya harus menggunakan ugettext_lazy
juga? Bagaimana dengan definisi formulir? Apakah ada perbedaan kinerja di antara mereka?
Sunting:
Dan satu hal lagi. Terkadang, alih-alih ugettext_lazy
, ugettext_noop
digunakan. Seperti yang dikatakan oleh dokumentasi, ugettext_noop
string hanya ditandai untuk terjemahan dan diterjemahkan sesegera mungkin sebelum menampilkannya kepada pengguna, tapi saya sedikit bingung di sini, bukankah itu mirip dengan apa yang ugettext_lazy
dilakukan? Masih sulit bagi saya untuk memutuskan, mana yang harus saya gunakan dalam model dan formulir saya.
sumber
msg = "An error has occurred"; logging.error(msg);return HttpResponse(_(msg))? why need
_noop?
jika tanpa_noop
, Django tidak akan menemukan string butuh terjemahan?_noop
?Penggunaan _noop yang sangat baik adalah ketika Anda ingin mencatat pesan dalam bahasa Inggris untuk pengembang, tetapi menyajikan string yang diterjemahkan kepada pemirsa. Contohnya ada di http://blog.bessas.me/posts/using-gettext-in-django/
sumber
Versi lazy mengembalikan objek proxy bukan string dan dalam beberapa situasi itu tidak akan berfungsi seperti yang diharapkan. Sebagai contoh:
akan gagal karena baris terakhir yang akan mencoba cerita bersambung lst objek ke JSON dan bukannya string untuk "klien" itu akan memiliki objek proxy. Objek proxy tidak bisa serial ke json.
sumber