Prestashop – Traducciones imposibles

Básicamente todo Prestashop se puede traducir desde Localización > Traducciones (la mayoría en el Front Office y en los módulos instalados, ya sean del tema o los generales que tenemos instalados y estemos usando). Pero hay traducciones imposibles en prestashop.

Prestashop

Pero aún con esto siempre están los típicos textos que no se dejan traducir fácilmente y tenemos que buscar recursivamente por nuestro Prestashop. Una vez encontrados, la mayoría los encontramos en archivos .tpl y no estan integrados en la traducción general.

Ahora podemos hacer diferentes cosas para traducir estos .tpl (smarty archives):

1.- Generar una traducción manual

Necesitamos encriptar el texto a traducir, por ejemplo desde: http://www.md5.net/md5-generator/.

Encriptamos por ejemplo la cadena de texto: «página no encontrada» , lo pegamos en el campo y nos genera el siguiento código: 6cfd0b6b00e5a1e915244c98f28091c0

Ahora ya lo podemos añadir al archivo general de traducciones de la plantilla con el formato:

$_LANG[‘404_6cfd0b6b00e5a1e915244c98f28091c0’] = ‘página no encontrada‘;

Para hacer la llamada desde nuestro .tpl, se hará así:

{l s=’página no encontrada‘}

2.- Esta manera es simple, pero no válida para más de un idioma en nuestro Prestashop, y se trata de editar el archivo .tpl que necesitemos, podemos cambiar directamente la cadena:

{l s=’página no encontrada‘}    –>    {l s=’page not found‘}

El problema que surge aquí es que si no lo hemos definido como he explicado en el punto anterior (1), solo tendremos una traducción y si queremos usar múltiples idiomas, en todos se verá igual, es decir, aun cambiando el idioma siempre aparecerá lo que hemos puesto en el .tpl ( en nuestro caso «page not found» aún estando en iso/es).

3.- La manera más fácil,  editando el archivo .tpl que necesitemos, cambiando la cadena y asignándola al módulo:

{l s=’página no encontrada‘ mod=’nombre_del_modulo’}   

 De esta manera ya lo tendremos en el módulo para poderlo traducir desde Localización > Traducciones > Módulos instalados

4.- La manera más rápida (aunque un poco más desorganizada):

{if $lang_iso ==’ca’}Pàgina no trobada{elseif $lang_iso ==’es’}Página no encontrada{else}Page not found{/if}

De esta manera ponemos las traducciones directamente con los códigos iso pertinentes y ya tenemos todo traducido a nuestro gusto.

NOTA!!! – Seguramente si con esto aún tenéis algo que no se deja traducir, ya quedan muy pocas posibilidades: o es la edición básica en el back end y  nos la hemos saltado, o viene directamente de la configuración del localismo, por ejemplo:

{$post.created|date_format:»%A, %B %e, %Y»}  –> dónde el día y el més se importaran dependiendo del localismo configurado en el equipo (navegador), y nos puede salir un idioma que no nos interesa.

Es un tema complicado y en muchas ocasiones las traducciones en prestashop son casi imposibles. Pero espero que este artículo os pueda dar una solución.


Más información