Traducciones KnockoutJS en Magento 2

Magento 2

  Javascript, Magento 2

Knockout es una biblioteca javascript que se usa en la interfaz de Magento 2. Implementa el patrón de diseño Modelo-Vista-Vista-ModeloMVVM ). Podemos encontrar Knockout en Magento 2 en casi todas las páginas sobre todo en la página de Checkout que suele ser la más compleja.

Uno de los grandes beneficios de Knockout es la actualización automática de contenido cuando cambia el View-Model. A parte de esto nosotros vamos a hacer referencia a una funcionalidad mucho más simple pero igualmente importante. KO nos da la posibilidad de realizar las traducciones de los literales que utiliza. Podemos encontrar estos literales de dos formas:


<!-- ko i18n: 'Store credit available' --><!-- /ko -->

o


<!-- ko text: $t('Enter coupon code here') --><!-- /ko -->

Cuando estemos realizando las traducciones de nuestro tema Magento 2 notaremos que hay ciertas cadenas de texto a las que no se le aplican las traducciones. Este problema es más evidente cuando hacemos los despliegues en nuestro entorno de producción. El problema parece estar en que no se borran ciertos archivos al generar nuestro contenido estático. Para que se apliquen las traducciones correctamente tenemos que borrarlos a mano antes. Para ello borraremos todos los archivos js-translation.json de pub/static. Este sería el proceso completo:


find pub/static -name js-translation.json -exec rm -rf {} \;
php bin/magento setup:static-content:deploy <xx_XX>
php bin/magento cache:clean
php bin/magento cache:flush

Feliz traducción.