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