Jump to content

Conflicto de traduciones con modulos de plantilla


minimalcms

Recommended Posts

Buenas comunidad!

 

Escribo aqui a ver si me podeis echar un cable porque estoy empezando a perder la cabeza, jeje.

 

Veamos primero la puesta en escena:

Estoy usando prestashop 1.5.6.2 (la última versión estable disponible actualmente)

Estoy usando el theme Season : http://themeforest.net/item/season-premium-responsive-prestashop-theme/6761206

 

Ahora vamos con el problema que tengo:

He traducido la web, tanto el apartado de: Localización separator_breadcrumb.png Traducción de mensajes > traducciones del front office, como el apartado de: Localización separator_breadcrumb.png Traducción de mensajes  > traducciones de los modulos.

 

Y la web se traducce correctamente... almenos la parte de front office y la de los modulos que se usan por defecto en prestashop, pero hay algunos modulos que no estan siendo traducidos y aparecen en inglés las palabras.

 

Despues de rebuscar bastante por las tripas me percate de una cosa y la expongo con un ejemplo que se entiende mejor:

La plantilla que estoy utilizando tiene sus propias modificaciones de los modulos básico, para este ejemplo usare el modulo de "blockcategories".

 

La plantilla en su carpeta de modulos, trae dos modulos: "blockcategories" y "wdblockcategories" y por lo que pude comprobar, prestashop esta intentado cargar las traducciones del modulo por defecto en el modulo modificado de la plantilla.

 

Es decir, en el apartado de traducciones de los modulos, debo traducir y referenciar blockcategories para que aparezcan las traducciones en wdblockcategories.

 

Lo logico en este punto es pensar. No se esta llamando correctamente a las traducciones en los tpl, pero tras revisar esto me encuentro las llamadas asi "{l s='Categories' mod='wdblockcategories'}" por lo que EN TEORIA debería cargar la palabra Categories del grupo de traducción de wdblockcategories. Pero como digo no ocurre esto.

 

Con esta pequeña "trapala" y jodiendo las traducciones de la administración puedo traducir algunos de estos modulos... siempre y cuando el nombre coincida y exista. En el caso de "blockcategories_footer" no dispongo de un "wdblockcategories_footer" por lo que se me hace imposible traducir esta palabra en el pie u otra completa imposibilidad con la que me encontre es modificar los enlaces del HOOK_TOP ( Your Account |  My Wishlist |  Compare |  Checkout | Log out )

 

He buscado y rebuscado hasta la saciedad, llevo ya con hoy 3 días investigando documentación de la plantilla, documentacion de prestashop, y los archivos tpl para intentar resolver este problema. Y por todo lo que he leido en los foros de problemas, por todo como esta desarrollado y configurado, y en general por todo lo que tengo, EN TEORIA, debería funcionar sin problemas (de hecho se crean hasta los archivos "es.php" en las carpetas "translations" de los modulos correspondientes con la traducción que creo desde el back office) pero por alguna razon que se me escapa, prestashop sigue queriendo coger los modulos básicos en lugar del que se indica en la llamada a la traducción.

 

Cabe tambien destacar, pues es importante, que los modulos básicos (sigo usando el ejemplo, pero esto es aplicable a todo lo modiifcado por la plantilla) como "blockcategories" estan desactivados de la administración. Por lo que EN TEORIA tampoco debería crear conflicto.

 

Si necesitais alguna información más o algún log para poder concretar más el problema, pedirmelo por favor. Soy programador web nativo, no tengo problema ni miedo en tocar tripas de archivos / ftp / bbdd o lo que sea necesario. Pero si estoy bastante verde en el uso de prestashop, por lo que si se os ocurre alguna tonteria clasica como "activar algun debug" o similar (no se si existe, creo que vi algo para la generacion de logs de error para los casos de "pantalla en blanco") no dudeis en comentarla, pues es perfectamente posible que lo este obviando por mi falta de experiencia en esta genial plataforma.

 

De antemanos muchas gracias por la posible ayuda que podais brindarme y por haber dedicado tiempo a leer mi problema.

 

Un saludo.

 

Link to comment
Share on other sites

Hola... también puedes traducir los módulos desde el mismo sitio que has traducido el resto.

 

Localización > Traducción de mensajes

 

En la sección 'Modificar traducciones' busca 'Instaladas las traducciones de módulos', luego el tema y finalmente haces clic en la bandera del idioma que quieres modificar.

 

Así he traducido yo los módulos de la ultima tienda que he montado.

Edited by JavierSLM (see edit history)
Link to comment
Share on other sites

Hola... también puedes traducir los módulos desde el mismo sitio que has traducido el resto.

 

Localización > Traducción de mensajes

 

En la sección 'Modificar traducciones' busca 'Instaladas las traducciones de módulos', luego el tema y finalmente haces clic en la bandera del idioma que quieres modificar.

 

Así he traducido yo los módulos de la ultima tienda que he montado.

 

Es la mejor opción la que dice JavierSLM, ves a cambiar las traducciones del tema activo.

 

Si te fijas para traducir el frontoffice tienes que ir a tu tema activo, pero para los módulos tienes además el "core" y luego puedes escoger el tema (entre los que están instalados en la tienda) que usas que sobrescribe las traducciones del core (modulos instalados en la carpeta /modules).

 

La primera vez que traduces los módulos para el tema, como suele estar vacío, te coge las del "core", si luego guardas verás que te crecen carpetas para cada uno de los módulos traducidos dentro de la carpeta themes/tu_tema/modules (un montón). Estos carpetas contiene una carpeta translations con una copia del fichero (es.php p.ej) del módulo original, modificado con tus cambios.

 

Para las plantillas de modulos ves que siempre tienen la coletilla mod='el_modulo', sino la tienen no las coge. También me he encontrado con algunos tokens (por llamarlo de alguna forma) de traducciones con apostrofes que no las cogía.., las cambias y listo

 

Te preguntarás... como que las cambio?

 

Pues resulta que un token es p.ej tu_texto_default en "{l s='tu_texto_default' mod='wdblockcategories'}"  Este token es el que se usa por defecto si no esta traducido, y por eso es  la palabra en inglés. Pero aunque es la palabra en ingles tu puedes traducirla para la lengua inglesa igualmente, es decir el token puede ser cualquier texto. Teniendo en cuenta esto tu puedes cambiar un token, crear nuevos etc..

 

Ya te digo que yo tuve que cambiar :

{l s="Hide bought product's info" mod='blockwishlist'}

por

{l s="Hide bought product info" mod='blockwishlist'}

 

porque el apostrofe le sentaba mal a prestashop y no lo cogía..

 

 

Saludos

Link to comment
Share on other sites

Muchas gracias a JavierSLM y Enrique Gómez por vuestra respuesta, pero me temo que ninguna de las dos respuesta me ayudan a solucionar el problema.

 

Las traducciones mediante en panel de control estan hecha, tanto para el tema que estoy usando, como para el tema por defecto como el core (ante la duda, meti las traducciones en todos los lados), y como indica Enrique Goméz al realizar las traducciones se generan los archivos es.php (por que estoy trabajando el español ahora mismo) en las carpetas de los modulos de mi tema.

 

También como indica Enrique Gómez y hago referencia en mi primer post, esta el tema de los tokens de referencia para indicar que es un modulo concreto. Esto no es el problema tampoco, de hecho como comente, haciendo el chanchullo de referenciar a las traducciones de los modulos por defecto (cambiando el token en los .tpl) consigo cargar esas traducciónes. La cuestión y como comentaba esque no para todo me sirve esto, pues muchas veces me quedo cojo al no tener campos a los que hacer referencia (como me ocurre con el blockcategories_footer , que no tengo ninguna correspondencia de wdblockcategories_footer o cosas como los botones del HOOK_TOP).

 

Lo que se me hace raro de todo esto es que "EN TEORIA" todo es correcto, las traducciones hechas, las referencias de los tokens correctas, la generación de los archivos de traducciones. Pero aún con todo esto, no salen estas traducciones pues no referencia correctamente a los modulos de la plantilla.

 

Insisto en este punto pues creo que el dilema esta aqui:

Usando el "mod='wdblockcategories'" como referencia en el .tpl no coge las traducciones de este bloque, si no que coge las traducciones de "blockcategories". Esto es lo que entiendo donde esta el conflicto.. porque coge este modulo en lugar del indicado en el token.. es lo que me esta volviendo loco :o:blink::o

 

De nuevo gracias por vuestros consejos, sigo dandole al asunto hasta encontrar la solución (no me queda otra :unsure: ) si se os ocurre algo más lo agradeceré y si consigo dar con la tecla del problema volveré para compartir la solución.

 

Un saludo.

Edited by minimalcms (see edit history)
Link to comment
Share on other sites

Mira si el  módulo wdblockcategories tiene dentro el fichero wdblockcategories.php con la clase wdblockcategories extends Module  y dentro del constructor $this->name = 'wdblockcategories'; borra el config.xml por si las moscas. Borra caches de smarty y la los ficheros compilados también (hay un botón en la pantalla de rendimiento para ello)

 

A ver si al hacer copy paste se han dejado cosas del viejo módulo

Edited by Enrique Gómez (see edit history)
Link to comment
Share on other sites

Gracias de nuevo por responder.

 

Sobre la extensión de la clase, en principio parece estar todo correcto tambien:

class wdBlockCategories extends Module
{
	public function __construct()
	{
		$this->name = 'wdblockcategories';
		$this->tab = 'front_office_features';
		$this->version = '2.0';
		$this->author = 'webdziner';

		parent::__construct();

		$this->displayName = $this->l('WD Categories block');
		$this->description = $this->l('Adds a block featuring product categories.');
	}
[....otras funciones...]
}

Y el tema de caché tengo forzado a que regenere cada vez que solicito la página y aún asi cada vez que me agobio mucho, le meto limpieza manual a la caché.

Sigo probando cosas, para comprobar que no fuera alguna liada durante la instalación de la plantilla, he vuelto a instalar un nuevo prestashop desde 0 en local. Y he comprobado que nada mas instalar, todas las cosas que me aparecen sin traducir, estan realmente traducidas, pero en el momento que instalo el theme (con el importador de temas) vuelve a ponerse en inglés. Lo que más me llama la atención es que cuando intento volver a la theme por defecto, este ahora esta tambien en ingles, aunque este traducido en la administración por defecto.

 

Sigo intentandolo, ire reportando los avances significativos que vaya haciendo (aunque ahora mismo me siento como un niño con una venda en los ojos y un palo buscando al azar la piñata jeje).

 

Un saludo, y gracias por el interés mostrado.

Link to comment
Share on other sites

  • nadie locked this topic
Guest
This topic is now closed to further replies.
×
×
  • Create New...