rogrod Posted December 4, 2009 Share Posted December 4, 2009 Hola,Alguien sabe cómo y donde guarda prestashop la relación del texto a traducir con el texto traducido que debe mostrarse?Me explico:En los fuentes, se visualiza el mensaje con la siguiente instrucción:{l s='Choose a delivery address:'}Ok.. Y además en el es.php aparece el texto que corresponde a ese mensaje:...$_LANG['order-address_d0748d2df4aed77bd7591b3ac6c52c83'] = 'Elija una direccion de envío:'; ...La pregunta es: ¿Dónde y/o cómo relaciona Prestashop el texto: 'Choose a delivery address' con el id: 'order-address_d0748d2df4aed77bd7591b3ac6c52c83' ??Saludos. Link to comment Share on other sites More sharing options...
shacker Posted December 7, 2009 Share Posted December 7, 2009 Hola,Alguien sabe cómo y donde guarda prestashop la relación del texto a traducir con el texto traducido que debe mostrarse?Me explico:En los fuentes, se visualiza el mensaje con la siguiente instrucción:{l s='Choose a delivery address:'}Ok.. Y además en el es.php aparece el texto que corresponde a ese mensaje:...$_LANG['order-address_d0748d2df4aed77bd7591b3ac6c52c83'] = 'Elija una direccion de envío:'; ...La pregunta es: ¿Dónde y/o cómo relaciona Prestashop el texto: 'Choose a delivery address' con el id: 'order-address_d0748d2df4aed77bd7591b3ac6c52c83' ??Saludos. Depende de lo que busques. hay muchas tablas que terminan en LANG, esas son las traducciones. En los modulos, las traducciones se guardan en el fichero PHP correspondiente. Link to comment Share on other sites More sharing options...
rogrod Posted December 18, 2009 Author Share Posted December 18, 2009 Hola shacker,Un saludo y gracias por contestar antes de nada.Tengo un access con las tablas de prestashop vinculadas y las tablas lang más o menos sé como funcionan.La pregunta más que nada es sobre las traducciones en los códigos fuente de los módulos.Por ejemplo, en el módulo 'Blockadvertising', tenemos: El fichero 'es.php', donde figura una relación de códigos y traducciones al español. El contenido es:<?phpglobal $_MODULE;$_MODULE = array();$_MODULE['<{blockadvertising}prestashop>blockadvertising_fd4c71c948857cce596a69fbaea7426b'] = 'Bloque de publicidad';$_MODULE['<{blockadvertising}prestashop>blockadvertising_2c6706322b2b9f670251533d907d2bbc'] = 'Añadir un bloque para mostrar la publicidad';$_MODULE['<{blockadvertising}prestashop>blockadvertising_2ce5fc289845ce826261032b9c6749ea'] = 'Publicidad';por otra parte, entre otros está:El fichero 'blockadvertising.php', donde figura la línea:$this->description = $this->l('Adds a block to display an advertising');Ahora.. ¿es la función 'l' la que, en función del texto en inglés, sabe que el código que debe buscar en el fichero 'es.php' es: 'blockadvertising_2c6706322b2b9f670251533d907d2bbc'?? ¿Y si es así, dónde está esa función? ¿Y tiene alguna tabla interna con la relación código-texto a mostrar? ¿Se van incorporando nuevas relaciones al instalar un nuevo módulo?Perdona si pregunto algo muy obvio, pero es que no consigo ver la relación.. Gracias de nuevo. Link to comment Share on other sites More sharing options...
Tecniloco Posted December 19, 2009 Share Posted December 19, 2009 Hola rogrod, interesante tema el que consultas, te explico basicamente la relación según he podido comprobar: En principio la relación no la encontraras en la BD ya que los ficheros de traducciones según el idioma especificado se cargar mediante array ( al cargar la página de prestashop el usuario tendrá disponibles en memoria todas las traducciónes del idioma predefinido ) con lo cual la traducción es casi instantánea. Se podría hacer con la BD pero cuando se conectaran mas de xxx usuarios la BD se volveria totalmente inestable por la multitud de consultas al solicitar las traducciones. esta es la parte teorica ahora vamos a ver como está compuesto el array.. $_MODULE[’<{blockadvertising}prestashop>blockadvertising_fd4c71c948857cce596a69fbaea7426b’] = ‘Bloque de publicidad’; $_MODULE[’<{blockadvertising}prestashop>blockadvertising_[es el md5 de Bloque de publicidad]’] = ‘Bloque de publicidad’; Al agregar traducciones o modificar, el fichero AdminTranslations.php crea o modifica la linea array para esa traducción añadiendole a mi entender una especie de token de seguridad que seria el resultado de convertir el texto traducido en md5, con la idea de que al cargar el fichero el hash desencripta el md5 y lo compara con el resultado confirmando así el token. y aceptando las traducciones. A mi entender funciona así.. si alguien puede ampliar la información mejor ya que he tenido que hacer varias pruebas para realizar este planteamiento. Un saludo TECNILOCO. Link to comment Share on other sites More sharing options...
rogrod Posted December 21, 2009 Author Share Posted December 21, 2009 Saludos tecniloco,No se me había ocurrido pensar en lo que comentas, y tiene mucha lógica.Voy a investigar sobre el tema y te cuento si descubro algo interesante.Gracias. Link to comment Share on other sites More sharing options...
rogrod Posted December 21, 2009 Author Share Posted December 21, 2009 Hola Tecniloco y muchas gracias!!Tienes razón, lo que hace prestashop es calcular el hash md5 del texto a traducir y luego buscarlo en los ficheros de traducciones..En el ejemplo de antes,El hash md5 de "Adds a block to display an advertising" es "2c6706322b2b9f670251533d907d2bbc", y ese código figura en el 'es.php' del módulo con la traducción "Añadir un bloque para mostrar la publicidad", así que está clara la relación. gracias de nuevo!! Link to comment Share on other sites More sharing options...
hachedocho Posted January 27, 2011 Share Posted January 27, 2011 Bueno pero si tenemos un modulo que no tiene traduccion como sabemos el md5?? Link to comment Share on other sites More sharing options...
hachedocho Posted January 27, 2011 Share Posted January 27, 2011 Buah! Cuanto aprendo en este foro mirad para los que les interese http://www.cuwhois.com/herramienta-seo-md5.php?texto=Welcome&Submit=Calcular+MD5#resultay ahi haceis la conversion a md5. yeah! Link to comment Share on other sites More sharing options...
eduardovi Posted November 14, 2011 Share Posted November 14, 2011 Buah! Cuanto aprendo en este foro mirad para los que les interese http://www.cuwhois.c...lar+MD5#resulta y ahi haceis la conversion a md5. yeah! Por favor, tengo ese mismo problema y no se como hacer para que por ejemplo el bloque blockmyaccount me aparecezca en español. este bloque viene con la traduccion al español (es.php) pero no lo traduce. ¿podrias ayudarme teniendo en cuenta que mis conocimientos son algo basicos) Gracias Link to comment Share on other sites More sharing options...
shacker Posted November 15, 2011 Share Posted November 15, 2011 fijate si en la carpeta de tu theme/modules/blockmyaccountexiste, quizas tengas el bloque personalizado Link to comment Share on other sites More sharing options...
eduardovi Posted November 15, 2011 Share Posted November 15, 2011 fijate si en la carpeta de tu theme/modules/blockmyaccountexiste, quizas tengas el bloque personalizado Los bloques que tengo instalados son los que vienen por defecto en la instalacion del Prestashop 1.4.5 y los que venian con la nueva plantilla (prestashop_template_15). He dado todos los permisos que me marcaban a la hora de hacer la instalacion tanto para el paquete de instalacion como para el nuevo Theme pero no me deja utilizar el bloque de traduccion desde administracion. Cuando voy por ejemplo a Herramientas/Traducciones/modificar traducciones/traduccion de modulos/español/My Account block on footer pongo la nueva traduccion le doy a actualizar y me sale el siguiente error 501 (Not Implemented The page you are looking for cannot be displayed because a header value in the request does not match certain configuration settings on the Web server. Web Server at venta-on-line.net) He probado a poner todos los permisos de carpetas y ficheros de ese bloque en 777 pero sigo teniendo el mismo error. Gracias por tu pronta respuesta, espero que me puedas ayudar Link to comment Share on other sites More sharing options...
eduardovi Posted November 15, 2011 Share Posted November 15, 2011 Los bloques que tengo instalados son los que vienen por defecto en la instalacion del Prestashop 1.4.5 y los que venian con la nueva plantilla (prestashop_template_15). He dado todos los permisos que me marcaban a la hora de hacer la instalacion tanto para el paquete de instalacion como para el nuevo Theme pero no me deja utilizar el bloque de traduccion desde administracion. Cuando voy por ejemplo a Herramientas/Traducciones/modificar traducciones/traduccion de modulos/español/My Account block on footer pongo la nueva traduccion le doy a actualizar y me sale el siguiente error 501 (Not Implemented The page you are looking for cannot be displayed because a header value in the request does not match certain configuration settings on the Web server. Web Server at venta-on-line.net) He probado a poner todos los permisos de carpetas y ficheros de ese bloque en 777 pero sigo teniendo el mismo error. Gracias por tu pronta respuesta, espero que me puedas ayudar Puedes ver la configuracion del servidor en : http://venta-on-line.net/info.php gracias Link to comment Share on other sites More sharing options...
shacker Posted November 17, 2011 Share Posted November 17, 2011 tendras que enviarles el error a los de tu host ya que parece que viene de ahi Link to comment Share on other sites More sharing options...
petete2008 Posted December 13, 2011 Share Posted December 13, 2011 Por esa regla entonces si miro translations/en/fields.php .... $_FIELDS['ProductDownload_d2fe70bac86b6021a1d92dad2ce912b5'] = 'deposit date'; ..... y translations/es/fields.php .... $_FIELDS['ProductDownload_d2fe70bac86b6021a1d92dad2ce912b5'] = 'fecha_depósito'; .... Viendo el MD5 de 'deposit date' no coincide con ninguno. Hay algo que se me escapa y no sé el qué. Además buscando por la cadena 32adb534727cee4636faaf9c5200594e no encuentra nada en ninguno de los dos ficheros. md5("deposit date") = "32adb534727cee4636faaf9c5200594e" Alguien sabe porqué? Gracias. Link to comment Share on other sites More sharing options...
diegoao Posted November 28, 2012 Share Posted November 28, 2012 petete2008 el texto que se codifica para sacar el codigo es el que hay en la etiqueta {l s='TEXTOCLAVE'} no el que se da despues como valor para enseñar en pantalla. mira a ver si puede fallarte por eso. La pregunta que tengo yo, es como hacer para añadir texto nuevo tengo que hacer el md5 de cada clave que quiera añadir o hay alguna forma mas rápida. muchas gracias. Link to comment Share on other sites More sharing options...
Recommended Posts