Pregunta

[EDITAR]
Este es obsoleta.La traducción no se hace como se describe a continuación
[/EDIT]
En Magento 1 traducible textos necesarios en javascript que se añadieron en la jstranslate.xml en el archivo de etc carpeta de un módulo y que se agrega automáticamente al traductor js objeto.
¿Cómo puedo agregar la traducción de los textos para ser utilizados en javascript en Magento 2?
He encontrado cómo utilizar traducciones de texto en Magento 2, pero no sé cómo agregar nuevos.

Aquí está un ejemplo de cómo hacer uso de ellos:

alert($.mage.__('Text to translate here'));
¿Fue útil?

Solución

OK.He encontrado una solución, sino que las costuras feo para mí.
En el diseño de la manija de la página me tengo que añadir esto:

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

luego de crear la plantilla translate.phtml en [Namespace]/[Module]/view/[frontend|adminhtml]/templates con este contenido:

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

Realmente espero que hay otra forma de hacerlo.

Otros consejos

El valor predeterminado src para las traducciones en frontend parece ser /app/code/Magento/Traducción/vista/base/templates/traducir.phtml

apuntando a este bloque /app/code/Magento/Translation/Block/Js.php

que tiene esto como dataprovider /app/code/Magento/Translation/Model/Js/DataProvider.php

Por lo que podría cambiar la dependencia a un dataprovider, o interceptar esta uno para agregar propias traducciones, o agregar un bloque de este tipo con la propia dataprovider.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top