Wie übersetze ich JS-Fehlermeldungen oder Text in Magento 2?


12

Ich habe zwei Ansichten Englisch und Arabisch Standard js Validierungsfehlermeldung muss auf Arabisch übersetzt werden, also wie geht das? Und ich habe auch ein paar benutzerdefinierte Texte dazu.

Ich habe ein i18n für Arabisch erstellt, das funktioniert einwandfrei, wenn ich in PHTML- oder PHP-Dateien echo, genauso wie ich es auch in Magento 2 in js brigg

jemand hilft mir aus

Antworten:


28

Sie können js Fehlermeldung wie folgt übersetzen

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 mage/translate.jszur Übersetzung verwenden


ar_KW.csv in meinem Modul i18n Ordner in diesem übersetzten "Geben Sie Ihre Nachricht hier ein" in meinem ji erstellt hat es nicht funktioniert, aber in phtml, wenn ich meinen übersetzten Text wiedergebe, den ich anzeige
Pradeep Kumar

Haben Sie Ihren Cache geleert und statische Inhalte bereitgestellt? @ PradeepKumar
Keyur Shah

Genau die Antwort, nach der ich gesucht habe! 1
thdoan

Beachten Sie, dass dies nicht funktioniert, wenn Sie es direkt in HTML-Dateien verwenden. Magento analysiert und übersetzt nur aus JS- und HTML-Dateien.
eInyzant

Dies wird funktionieren, ist aber nicht so sauber von einem Code; Sie benötigen Magier / Übersetzen, verwenden es aber nicht. .
Oliver de Cramer

9

Zusätzlicher Hinweis: Wenn Sie eine Variable zur Übersetzung hinzufügen müssen (in js), können Sie Folgendes verwenden :

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


5

Nachdem ich tief gegraben habe, lerne ich das Konzept der Lokalisierung in magento2 kennen

Unten sehen Sie, was Sie befolgen müssen. Auf meiner Website haben wir zwei Ansichten en und ar_kw Arabic

  1. Erstellen Sie das Sprachpaket http://devdocs.magento.com/guides/v2.0/config-guide/cli/config-cli-subcommands-i18n.html#config-cli-subcommands-xlate-example2

  2. Um alle Phrasen zu erhalten, müssen Sie den Befehl ex ausführen

    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

    Es wird mein Testmodul nicht gelesen und ein CSV-Sugarcode \ Test \ i18n \ ar_KW.csv erstellt

es wird alles __('Some Text') and $.mage.__('Some Text')in js bekommen und eine csv vorbereiten

  1. Übersetzen Sie nun die neu generierte Datei ins Arabische, die Sie im Namen des Gebietsschemacodes ar_KW.csv behalten können (möglicherweise in Ihrem Modul oder in Ihrem Sprachmodul).
  2. Entfernen Sie den Ordner var und führen Sie ihn aus bin\magento setup:static-content:deploy en_US ar_KW

  3. Es werden alle JS zusammen mit der Datei js-translation.json in jedem Thema / ex luma / ar_KW erstellt. In js-translation.json werden alle js-seitig übersetzten Daten im JSON-Format angezeigt, wenn die Fehlermeldung angezeigt wird, die in dieser Datei angezeigt wird nur


Hallo, ich habe alle Schritte gemäß Ihrer Antwort ausgeführt, den Code, den ich zum Beispiel hinzugefügt habe: alert ($. Magier .__ ('js test')); kommt korrekt in die Sprachdatei, aber wenn ich die Übersetzung ändere, kommt die js-Nachricht immer noch gleich. Vermisse ich etwas
Sunil Verma

2

Wenn Sie __ verwenden, wird ein Fehler ausgegeben. Befolgen Sie daher den folgenden Code

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


0

Fügen Sie in einer Vorlage .phtml Ihre Fehlermeldung hinzu wie:
<?php echo __('This is a required field.'); ?>
- aktiv online
übersetzen - übersetzen

erledigt


Könnten Sie weitere Details für die Antwort hinzufügen, wie und warum es funktioniert?
tjons
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.