Saya mengacu pada https://github.com/wikimedia/jquery.i18n#data- api dalam dokumentasi JQuery.i18n:

<li data-i18n="message-key">Fallback text</li>

Dimungkinkan juga untuk memiliki simpul li di atas dengan teks mundur yang sudah ada.

Sayangnya saya tidak mendapatkan pekerjaan ini. Ketika saya tidak memiliki message-key dalam file bahasa maka JQuery.i18n menampilkan alih-alih Fallback text kuncinya: message-key

Pertanyaan saya:

Apa yang saya lakukan salah? Segera saya menambahkan kunci ke file bahasa kemudian diganti, jadi ternyata file bahasa dimuat dengan benar dan juga panggilan fungsi tampaknya berfungsi.

1
Peter VARGA 19 November 2020, 19:18

1 menjawab

Jawaban Terbaik

Tampaknya menjadi bug! Saya sedang memeriksa kode JQuery.i18n dan saya menemukan masalahnya.

Semuanya ada di jquery.i18n.js. Itu dimulai dengan kode ini di baris #169:

if ( message === '' ) {
   message = key;
}

if dijalankan ketika tidak ada teks yang ditentukan untuk kunci dan kemudian pesan menjadi kunci.

Saya mengomentari tugas:

if ( message === '' ) {
   // message = key;
}

Kemudian saya harus mengubah baris #244 kode ini:

} else {
   $this.text( i18n.parse( messageKey ) );
}

Untuk

} else {
   const translatedText = i18n.parse( messageKey );
   if ( '' !== translatedText ) {
      $this.text( translatedText  );
   }
}

Sekarang teks mundur berfungsi. Komentar berikut di nomor baris 165 tampaknya mengonfirmasi bahwa itu adalah bug dan pengembang mengetahuinya tetapi entah bagaimana dia hidup dengannya:

        // FIXME: This changes the state of the I18N object,
        // should probably not change the 'this.parser' but just
        // pass it to the parser.

Jika Anda menerapkan peretasan ini, pertimbangkan juga modifikasi untuk html dan tags beberapa baris di atas.

1
Peter VARGA 19 November 2020, 18:31