Magento 2 javascript traducciones de texto
-
12-12-2019 - |
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'));
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.