Come tradurre il messaggio di errore o il testo JS in Magento 2?


13

Ho due visualizzazioni. Il messaggio di errore di convalida js di default inglese e arabo deve essere tradotto in arabo, quindi come si fa? E ho anche alcuni testi personalizzati su come farlo.

Ho creato un i18n per l'arabo che funziona benissimo se faccio eco in file PHTML o PHP, allo stesso modo come collegarlo in js anche in Magento 2

qualcuno mi aiuti

Risposte:


29

Puoi tradurre il messaggio di errore js in questo modo

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 usa mage/translate.jsper la traduzione


creato ar_KW.csv nella mia cartella i18n del modulo in quella tradotta "Inserisci qui il tuo messaggio" nel mio ji provato a non funzionare ma in phtml se faccio eco al mio testo tradotto che visualizzo
Pradeep Kumar

Hai cancellato la cache e la distribuzione del contenuto statico? @PradeepKumar
Keyur Shah,

Solo la risposta che stavo cercando! +1
dal

Tieni presente che questo non funzionerà se lo usi direttamente nei file phtml. Magento analizzerà e tradurrà solo da file js e html.
eInyzant,

Funzionerà ma non è quello pulito da un codice; hai bisogno di mage / translate ma non lo stai usando. .
Oliver de Cramer,

10

Nota aggiuntiva: se è necessario includere alcune variabili nella traduzione (in js), è possibile utilizzare questo :

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


5

dopo aver scavato in profondità, arrivo a conoscere il concetto di localizzazione in magento2

di seguito sono le cose che devi seguire, nel mio sito web abbiamo due visualizzazioni en e ar_kw in arabo

  1. Crea pacchetto lingua http://devdocs.magento.com/guides/v2.0/config-guide/cli/config-cli-subcommands-i18n.html#config-cli-subcommands-xlate-example2

  2. per ottenere tutte le frasi necessarie per eseguire il comando es

    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

    leggere il mio modulo di test e creare un csv Sugarcode \ Test \ i18n \ ar_KW.csv

otterrà tutto __('Some Text') and $.mage.__('Some Text')in js e preparerà un csv

  1. ora traduci il file appena generato in arabo che puoi conservare in nome del codice locale ar_KW.csv (potrebbe essere all'interno del tuo modulo o potrebbe essere all'interno del tuo modulo di lingua)
  2. rimuovere la cartella var ed eseguire bin\magento setup:static-content:deploy en_US ar_KW

  3. creerà tutti i file js insieme al file js-translation.json in ogni tema / ex luma / ar_KW, js-translation.json avrà tutti i dati tradotti sul lato js in formato json ogni volta che vedi l'errore msg che viene mostrato da questo file solo


Ciao, ho fatto tutti i passaggi secondo la tua risposta, il codice che ho aggiunto per esempio: alert ($. Mage .__ ('js test')); sta arrivando correttamente nella generazione del file di lingua ma quando cambio la traslazione il messaggio js arriva sempre lo stesso. Mi sto perdendo qualcosa ?
Sunil Verma,

2

genera errore se si utilizza __ quindi seguire il codice seguente

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


0

Aggiungi in un modello .phtml il tuo messaggio di errore come:
<?php echo __('This is a required field.'); ?>
- attiva la traduzione online
- traduci

fatto


Potresti aggiungere altri dettagli per la risposta su come e perché funziona?
giovedì
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.