Frage

[BEARBEITEN]
Das ist veraltet.Die Übersetzung erfolgt nicht mehr wie unten beschrieben
[/BEARBEITEN]
In Magento 1 wurden die in Javascript benötigten übersetzbaren Texte hinzugefügt jstranslate.xml Datei in der etc Ordner eines Moduls und sie wurden automatisch zum Übersetzer-JS-Objekt hinzugefügt.
Wie kann ich übersetzbare Texte zur Verwendung in Javascript in Magento 2 hinzufügen?
Ich habe herausgefunden, wie man Textübersetzungen in Magento 2 verwendet, weiß aber nicht, wie man neue hinzufügt.

Hier ist ein Beispiel für deren Verwendung:

alert($.mage.__('Text to translate here'));
War es hilfreich?

Lösung

OK.Ich habe eine Lösung gefunden, aber sie kommt mir hässlich vor.
Im Layout-Handle der Seite, die ich benötige, füge ich Folgendes hinzu:

<referenceContainer name="after.body.start">
    <block class="Magento\Framework\View\Element\Template" name="some-name-here" template="[Namespace]_[Module]::translate.phtml"/>
</referenceContainer>

Erstellen Sie dann die Vorlage translate.phtml In [Namespace]/[Module]/view/[frontend|adminhtml]/templates mit diesem Inhalt:

<?php
$_data = array(
    'Text one to translate' => __('Text one to translate'),
    'Text two to translate' => __('Text two to translate'),
);
?>
<script type="text/javascript">
    require(["jquery","mage/translate"], function($){
        $.mage.translate.add(<?php echo Zend_Json::encode($_data) ?>)
    });
</script>

Ich hoffe wirklich, dass es einen anderen Weg gibt, dies zu tun.

Andere Tipps

Der Standard-Quelle für die Übersetzungen im Frontend scheint zu sein/app/code/Magento/Translation/view/base/templates/translate.phtml

zeigt auf diesen Block /app/code/Magento/Translation/Block/Js.php

der dies als Datenprovider hat /app/code/Magento/Translation/Model/Js/DataProvider.php

Sie könnten also die Abhängigkeit zu einem eigenen Datenprovider ändern oder diesen abfangen, um eigene Übersetzungen hinzuzufügen, oder einen eigenen Block dieses Typs mit eigenem Datenprovider hinzufügen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top