Magento 2 javascript traduzioni di testo
-
12-12-2019 - |
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'));
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.