Saya memiliki pakan dasar yang saya coba render dalam proyek Django saya. Saya telah membuat file feed.html sebagai template dasar untuk sedikit variasi dari jenis umpan yang sama. Di antara variasi itu, adalah header dari pakan. Yang penting, saya ingin header itu diterjemahkan ke dalam berbagai bahasa.

Saya telah menerapkan ide "variasi" ini menggunakan {% include "feed.html" with variation=variation %}. Namun, saya mengalami masalah menerjemahkan variasi tersebut.

Saya mencoba yang berikut di feed.html :

{% translate header %}

Kemudian di salah satu template di mana saya ingin variasi feed.html saya punya:

{% include "feed.html" with header="Header" %}

Masalahnya adalah, string "header" tidak membuatnya menjadi file .po saya dan karenanya tetap tidak dapat diterjemahkan.

Apa yang saya lakukan salah? Haruskah saya menggunakan sintaks yang berbeda?

0
fredperk 10 सितंबर 2020, 10:32

1 उत्तर

सबसे बढ़िया उत्तर

Masalahnya adalah, string "header" tidak membuatnya menjadi file .po saya dan karenanya tetap tidak diterjemahkan.

Jika itu berarti perintah makemessages tidak mengekstrak string, lalu ya, itu tidak akan, karena tidak ada string. Hanya variabel. Variabel itu dapat mengambil nilai apa pun sama sekali, makemessages tidak mungkin melacaknya kembali ke semua lokasi yang mungkin di mana Anda mungkin menetapkan nilai untuk header. makemessages Hanya dapat mengekstrak apa yang Anda dimasukkan ke dalam tag {% translate %} atau _() panggilan langsung.

Peringatan dengan menggunakan variabel atau nilai-nilai yang dihitung, seperti pada dua contoh sebelumnya, adalah bahwa utilitas detecting terjemahan-string Django, django-admin makemessages, tidak akan dapat menemukan string ini.

Https: //docs.django proyek.com/ en /3.1/topics/i18 Anda / terjemahan / # terjemahan standar

Anda akan ingin menerjemahkan nilai header sebelum meneruskannya:

{% include "feed.html" with header=_("Header") %}
1
deceze 10 सितंबर 2020, 07:43