Domanda

[MODIFICARE]
Questo è obsoleto.La traduzione non viene più eseguita come descritto di seguito
[/MODIFICARE]
In Magento 1 i testi traducibili necessari in javascript sono stati aggiunti nel jstranslate.xml file nel etc cartella di un modulo e sono stati aggiunti automaticamente all'oggetto js traduttore.
Come posso aggiungere testi traducibili da utilizzare in javascript in Magento 2?
Ho trovato come usare le traduzioni di testo in Magento 2 ma non so come aggiungerne di nuove.

Ecco un esempio su come usarli:

alert($.mage.__('Text to translate here'));
È stato utile?

Soluzione

OK.Ho trovato una soluzione ma mi sembra brutta.
Nell'handle di layout della pagina ho bisogno di aggiungere questo:

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

quindi creare il modello translate.phtml in [Namespace]/[Module]/view/[frontend|adminhtml]/templates con questo contenuto:

<?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>

Spero davvero che ci sia un altro modo per farlo.

Altri suggerimenti

L'src predefinito per le traduzioni nel frontend sembra essere / app / code / Magento / Translation/view/base/templates / translate.phtml

indicando questo blocco /app/codice / Magento / Traduzione / Blocco / Js.PHP

che ha questo come dataprovider / app / codice / Magento / Traduzione / Modello / Js / DataProvider.PHP

Quindi è possibile modificare la dipendenza in un proprio dataprovider, o intercettare questo per aggiungere le proprie traduzioni, o aggiungere un proprio blocco di questo tipo con il proprio dataprovider.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top