Question

[MODIFIER]
C'est dépassé.La traduction ne se fait plus comme décrit ci-dessous
[/MODIFIER]
Dans Magento 1, les textes traduisibles nécessaires en javascript ont été ajoutés dans le jstranslate.xml fichier dans le etc dossier d'un module et ils ont été automatiquement ajoutés à l'objet traducteur js.
Comment puis-je ajouter des textes traduisibles à utiliser en javascript dans Magento 2 ?
J'ai trouvé comment utiliser les traductions de texte dans Magento 2 mais je ne sais pas comment en ajouter de nouvelles.

Voici un exemple sur la façon de les utiliser :

alert($.mage.__('Text to translate here'));
Était-ce utile?

La solution

D'ACCORD.J'ai trouvé une solution mais elle me semble moche.
Dans le handle de mise en page de la page dont j'ai besoin, j'ajoute ceci :

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

puis créez le modèle translate.phtml dans [Namespace]/[Module]/view/[frontend|adminhtml]/templates avec ce contenu :

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

J'espère vraiment qu'il existe une autre façon de procéder.

Autres conseils

Le src par défaut pour les traductions dans le frontend semble être/app/code/Magento/Translation/view/base/templates/translate.phtml

pointant vers ce bloc /app/code/Magento/Translation/Block/Js.php

qui a ceci comme fournisseur de données /app/code/Magento/Translation/Model/Js/DataProvider.php

Vous pouvez donc modifier la dépendance en un propre fournisseur de données, ou intercepter celui-ci pour ajouter vos propres traductions, ou ajouter un propre bloc de ce type avec votre propre fournisseur de données.

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top