Es posible que estés desarrollando un módulo que contiene varias cadenas de texto, que necesites traducirlas a varios idiomas y no sepas como hacerlo manualmente sin el apartado de traducciones del Back Office de tu PrestaShop. En esta entrada te traemos la solución de cómo generar traducciones manualmente en PrestaShop para tus módulos mediante los ficheros PHP de traducción.

Como seguramente ya habrás visto, muchos módulos contienen la carpeta “translations” en su interior. Esta carpeta contiene ficheros PHP con el nombre “es.php”, “en.php”, “it.php”… Estos ficheros contienen las traducciones de tu módulo y son los que permiten visualizarlo en cualquier idioma.

Si abres un fichero, verás que su contenido tiene la siguiente estructura:

$_MODULE['<{psaddonsconnect}prestashop>psaddonsconnect_59c29985e3ebd042bef35631307d47a2'] = 'Modulo de Actualizaciones y consejos';
$_MODULE['<{psaddonsconnect}prestashop>psaddonsconnect_475068f091f2d33ff771152fcc008714'] = '';
$_MODULE['<{psaddonsconnect}prestashop>psaddonsconnect_bb8956c67b82c7444a80c6b2433dd8b4'] = '¿Estás seguro de que quieres desinstalar este módulo?';

Para que quede claro la estructura que tienes que seguir para crear traducciones, te lo detallamos a continuación:

$_MODULE[‘<{nombre_modulo}prestashop>nombre-clase-tpl-o-controlador_codigomd5’] = ‘Cadena de texto traducida’;

Como se puede observar, tenemos 5 apartados:

  • nombre_modulo -> tienes que introducir el nombre de tu módulo (el definido en la variable «$this->name» del fichero principal de tu módulo).
  • prestashop -> nombre estático que tienes que dejarlo igual.
  • nombre-clase-tpl-o-controlador -> tienes que introducir el nombre del fichero TPL, de la clase, del controlador o del fichero PHP del que quieras hacer la traducción.
  • codigomd5 -> tienes que introducir el código md5 de la frase original.
  • ‘Cadena de texto traducida’ -> equivale a la traducción de la frase original.

El código md5 lo puedes generar online en varias webs, aunque la que nosotros acostumbramos a utilizar es la siguiente:

http://www.md5.cz/

Ejemplo generar traducciones manualmente en PrestaShop de un fichero TPL

Si tu fichero TPL tiene el nombre “mifichero.tpl” el proceso sería:

  • Ponemos cualquier traducción:

{l s=’Mi cadena de texto’ mod=’my_module_name’}

(El contenido de “my_module_name” equivale al nombre de tu módulo)

  • Abrimos la web indicada anteriormente, ponemos el valor “Mi cadena de texto” y obtenemos el valor md5 (523de5616f1830fda9e288fc3e38203f).
  • Abrimos el fichero de traducción que queramos. Por ejemplo, si queremos hacer la traducción en inglés, abriríamos el fichero “en.php”.
  • Generamos la correspondiente entrada:

$_MODULE[‘<{my_module_name }prestashop>mifichero_ 523de5616f1830fda9e288fc3e38203f’] = ‘Translated text string’;

Ejemplo generar traducciones manualmente en PrestaShop de un fichero PHP

Si queremos realizar la traducción de una clase que tiene el nombre “miclase.php”, el proceso sería:

  • Ponemos cualquier traducción:

$this->l(‘Mi cadena de texto’);

  • Abrimos la web indicada anteriormente, ponemos el valor “Mi cadena de texto” y obtenemos el valor md5 (523de5616f1830fda9e288fc3e38203f).
  • Abrimos el fichero de traducción que queramos, por ejemplo, si queremos hacer la traducción en inglés, abriríamos el fichero “en.php”.
  • Generamos la correspondiente entrada:

$_MODULE[‘<{my_module_name }prestashop>miclase_ 523de5616f1830fda9e288fc3e38203f’] = ‘Translated text string’;

Y hasta aquí llega nuestra explicación sobre cómo generar traducciones manualmente en PrestaShop en tus módulos con los ficheros PHP de traducción. Esperamos que te haya servido de ayuda y por cualquier pregunta solo tienes que dejarnos tu comentario ;).