Javascript pelokalan Magento2

16

Pertanyaan serupa sudah diajukan di sini: Terjemahan teks javascript Magento 2 , tetapi Magento memperbarui teknik terjemahan ini dalam versi beta.

Bagaimana saya bisa menambah atau memperbarui terjemahan yang digunakan oleh Javascript?

Saya menemukan bahwa Magento membuat file bernama 'js-translation.json' di folder statis. Jika saya mengedit file ini secara langsung, saya melihat bahwa terjemahan saya diperbarui. Tetapi di mana file ini dibuat, dan bagaimana saya bisa menambahkan terjemahan sehingga Magento akan secara otomatis menambahkan ini ke js-translation.json ketika itu dihasilkan?

Memperbarui

Jawaban yang benar untuk pertanyaan ini masih belum diberikan, meskipun Mage2.PRO menunjuk saya ke arah yang benar, itu bukan jawaban lengkap. Js-translation.json saya masih kosong saat dibuat.

Misalnya, saya suka menerjemahkan tombol Tambahkan Ke Troli. Tombol ini memiliki tiga status, Tambah Ke Troli, Menambahkan ... dan Menambahkan ... Bagaimana saya bisa menerjemahkan kata-kata ini? Contoh lain, 'Anda tidak memiliki barang di keranjang belanja Anda.' teks dalam minicart. Saya pikir semua frasa ini harus diterjemahkan dari js-translation.json, tetapi di mana menambahkannya sehingga file ini diisi dengan terjemahan ini?

Yg tinggal di hutan
sumber
Saya tidak 100% yakin tentang ini, tetapi saya pikir jawaban yang diberikan oleh mage2.pro adalah yang benar. Jika Anda memiliki contoh ini di salah satu file js $.mage.__('Add To Cart')itu akan secara otomatis diambil oleh setup:static-content:deployperintah. Satu-satunya tangkapan adalah bahwa Anda harus memiliki terjemahan lokal untuk file yang berbeda untuk teks. Teks-teks yang memiliki terjemahan teks yang sama tidak ditambahkan ke file json agar tidak menambah ukuran tanpa alasan.
Marius

Jawaban:

10

Tidak yakin apakah Anda sudah mengetahuinya, tapi saya pikir saya akan tetap menjawabnya ..

Saya kira jawaban lain menuju ke arah yang benar.

Asumsikan Anda sudah menginstal terjemahan, jika tidak harap:

bin/magento i18n:pack -m replace -d source_nl_NL.csv . nl_NL

Jadi, pertama-tama, harap bersihkan cache (seperti yang disarankan orang lain juga):

rm -rf var/cache var/generation var/page_cache var/view_preprocessed

Kedua, harap hapus folder pub / statis Anda:

rm -rf pub/static/*/

Kemudian kami membuat ulang konten statis: (Saya melewatkan kode bahasa di jawaban lain ..)

bin/magento setup:static-content:deploy nl_NL - Pastikan Anda menambahkan kode bahasa

Sekarang periksa apakah ada js-translation.json dibuat:

find pub/static/ -name "js-translation.json"

Kemungkinan besar Anda akan mendapatkan daftar js-translation.jsonfile. Silakan periksa file-file ini dan menghapusnya jika itu kosong atau mengandung sesuatu seperti [].

Timon de Groot
sumber
1
Terima kasih Timon, ini memang jalan yang harus dilalui! Saya menemukan jawabannya sendiri beberapa waktu lalu, tetapi belum memposting jawabannya di sini. Ini merupakan tambahan yang bagus untuk pertanyaan itu.
Silvan
@ Silvan Dalam instalasi saya file js-translation.json sudah memiliki beberapa frasa yang diterjemahkan di lokal saya tetapi masih ada frasa yang tidak diterjemahkan, haruskah saya menambahkannya secara manual ke file ini?
Luis Garcia
Saya tidak akan merekomendasikan ini, karena file js-translation akan ditimpa saat berikutnya Anda menggunakan file statis. Dalam hal ini Anda harus menambahkan frasa secara manual setiap kali Anda melakukan penyebaran. Apakah frasa ini ada dalam paket bahasa?
Silvan
1

Cobalah menambahkan terjemahan ke file .csv, lalu pastikan bahwa langkah selanjutnya dijalankan:

  1. Penyimpanan Cache harus dihapus (pada dasarnya folder var / cache dan var / view_preprocessed harus dihapus)
  2. File statis harus digunakan kembali (hapus semua folder di dalam pub / static dan jalankan setup bin / magento: static-content: deploy)
Arkadii Chyzhov
sumber
0

Hapus semua cache dan delele pub / konten folder statis.

Pergi ke direktori root Anda dan jalankan perintah di bawah ini: -

setup php bin / magento: static-content: deploy

Semoga masalah Anda akan teratasi.

Rakesh Verma
sumber
ArkadiyCh juga mengatakan kepada saya untuk menghapus cache dan memindahkan file statis, sayangnya ini tidak memperbaiki masalah saya.
Silvan
0

Saya memiliki masalah yang sama seperti "Tidak dapat menerjemahkan frasa dalam $ .mage .__ ('XXX')" ketika frasa dalam phtml bekerja dengan sempurna. Jadi, solusinya sederhana.

$ t (...) dan $ .mage hanya menganalisis file * .js

Akibatnya tidak jatuh ke dalam kamus js-translation.

Jadi saat membuat skrip bagian dalam file phtml, Anda harus langsung memasukkan frasa yang sudah diterjemahkan dengan pembungkus __('Translated phrase').

Galina
sumber