Bagaimana cara menerjemahkan pesan atau teks kesalahan JS di Magento 2?


13

Saya memiliki dua tampilan pesan kesalahan validasi js standar bahasa Inggris dan Arab yang perlu diterjemahkan dalam bahasa Arab jadi bagaimana cara melakukannya? Dan juga saya punya beberapa teks khusus tentang cara melakukannya.

Saya membuat i18n untuk bahasa Arab berfungsi dengan baik jika saya melakukan gema dalam file PHTML atau PHP, cara yang sama bagaimana mengubahnya menjadi js juga di Magento 2

ada yang bantu saya

Jawaban:


29

Anda dapat menerjemahkan pesan kesalahan js seperti ini

require([
'jquery', // jquery Library
'jquery/ui', // Jquery UI Library
'mage/translate' // Magento text translate (Validation message translte as per language)
], function($){ 
    $(window).load(function() {
        alert($.mage.__('Enter Your message here'));
    });
});

Magento2 digunakan mage/translate.jsuntuk terjemahan


dibuat ar_KW.csv di folder modul i18n saya yang diterjemahkan "Masukkan pesan Anda di sini" di ji saya mencobanya tidak berfungsi tetapi dalam phtml jika saya melakukan echo teks terjemahan saya yang saya tampilkan
Pradeep Kumar

Apakah Anda menghapus cache dan penyebaran konten statis? @PradeepKumar
Shah

Hanya jawaban yang saya cari! +1
thdoan

Ketahuilah bahwa ini tidak akan berfungsi jika Anda menggunakannya secara langsung dalam file phtml. Magento hanya akan mengurai dan menerjemahkan dari file js dan html.
eInyzant

Ini akan berhasil tetapi bukan yang bersih dari kode; Anda membutuhkan penyihir / menerjemahkan tetapi tidak menggunakannya. .
oliver de Cramer

10

Catatan tambahan: jika Anda perlu memasukkan beberapa variabel ke terjemahan (dalam js), Anda dapat menggunakan ini :

$.mage.__('Hello %1').replace('%1', yourVariable);


5

setelah menggali lebih dalam saya jadi tahu konsep lokalisasi di magento2

di bawah ini adalah hal yang perlu Anda ikuti, di situs web kami kami memiliki dua tampilan en dan ar_kw Arab

  1. Buat paket bahasa http://devdocs.magento.com/guides/v2.0/config-guide/cli/config-cli-subcommands-i18n.html#config-cli-subcommands-xlate-example2

  2. untuk mendapatkan semua frasa Anda perlu menjalankan perintah ex

    php D:\xampp\htdocs\magento2\bin\magento i18n:collect-phrases -o "D:\xampp\htdocs\magento2\app\code\Sugarcode\Test\i18n\ar_KW.csv" D:\xampp\htdocs\magento2\app\code\Sugarcode\Test

    itu sakit membaca modul pengujian saya dan membuat Sugarcode csv \ Test \ i18n \ ar_KW.csv

itu akan mendapatkan semua __('Some Text') and $.mage.__('Some Text')dalam js dan menyiapkan csv

  1. sekarang terjemahkan file yang baru dibuat ke bahasa Arab yang dapat Anda simpan atas nama kode lokal ar_KW.csv (mungkin ada di dalam modul Anda atau mungkin di dalam modul bahasa Anda)
  2. hapus folder var dan jalankan bin\magento setup:static-content:deploy en_US ar_KW

  3. itu akan membuat semua js bersama dengan file js-translation.json di masing-masing tema / ex luma / ar_KW, js-translation.json akan memiliki semua data sisi yang diterjemahkan js dalam format json ketika Anda melihat pesan kesalahan yang ditunjukkan dari file ini hanya


Halo, saya telah melakukan semua langkah sesuai jawaban Anda, kode yang saya tambahkan untuk ex: alert ($. Mage .__ ('js test')); benar datang dalam menghasilkan file bahasa tetapi ketika saya mengubah terjemahan, pesan js masih datang sama. Apakah saya melewatkan sesuatu?
Sunil Verma

2

itu membuang kesalahan jika Anda menggunakan __ jadi ikuti kode di bawah ini

  require([
    'jquery', // jquery Library
    'mage/translate'
   ], function($,$t){ 
        $(window).load(function() {
            alert($t('Enter Your message here'));
        });
    });


0

Tambahkan templat .phtml pesan kesalahan Anda seperti:
<?php echo __('This is a required field.'); ?>
- terjemahan aktif online
- terjemahkan

selesai


Bisakah Anda menambahkan lebih banyak detail untuk jawaban tentang bagaimana dan mengapa itu bekerja?
tjons
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.