Jump to content

[SOLUCIONADO] Traducir el nombre del transportista


Recommended Posts

Buenas, quizá el nombre del transportista esté pensado para que sea SEUR, CORREOS o algo por el estilo, yo siempre lo he estado usando mas bien como método de envío o algo parecido, estoy tratando de internacionalizar la web y tengo el problema que el campo nombre del transportista no me deja traducirlo como podéis ver en la siguiente imagen:
image.thumb.png.47c704ef6c0d4220d95443a72ff5e93e.png

Alguien sabe o se le ocurre alguna forma para poder traducir este campo?
Gracias.

 

image.png

Edited by PepeFernandez
the topic is solved (see edit history)
Link to comment
Share on other sites

10 hours ago, ComGrafPL said:

Buenas, muchas gracias por tu respuesta.
Etoy echandole un ojo a ese hilo de github, en cuanto al modulo que sugieres lo vi antes de poner este hilo, pero los idiomas en los que pone que está disponible no coinciden con los de mi web y es de pago.

Link to comment
Share on other sites

  • 4 weeks later...

Para el que le pueda interesar, he solucionado mi problema, quizá no es la mejor manera ni la mas elegante pero es funcional. lo que he hecho ha sido irme a themes/child_classic/assets/js/custom.js y he creado el siguiente script:
 

   let changeCarriersNames = function () {
   
      if (document.querySelector('.delivery-options-list')) {
            // Obtener el idioma desde la URL
         var language = window.location.pathname.split('/')[1]; // Obtener el segmento del idioma desde la URL

         var carrierTranslations = {
            'Paquetería postal': {
               'es': 'Paquetería postal',
               'fr': 'Service postal',
               'en': 'Postal Service',
               'de': 'Postdienst',
               'pt': 'Serviço postal',
               'nl': 'Postdienst'
            },
            'Envío en camión': {
               'es': 'Envío en camión con entrega concertada',
               'fr': 'Livraison en camion avec rendez-vous prévu',
               'en': 'Truck Delivery with Scheduled Delivery',
               'de': 'LKW-Zustellung mit vereinbarter Lieferung',
               'pt': 'Entrega em caminhão com entrega programada',
               'nl': 'Vrachtwagenlevering met geplande levering'
            }
         };

         // Obtener todos los elementos .delivery-option
         var deliveryOptions = document.querySelectorAll('.delivery-option');

         deliveryOptions.forEach(function(deliveryOption) {
            
            var carrierSpan = deliveryOption.querySelector('.carrier-name');
            if (carrierSpan) {
                  var carrierOriginalName = carrierSpan.textContent.trim();

                  // Verificar si hay una traducción disponible
                  if (carrierTranslations[carrierOriginalName] && carrierTranslations[carrierOriginalName][language]) {
                     carrierSpan.textContent = carrierTranslations[carrierOriginalName][language];
                  } else {
                     console.warn("No se encontró una traducción para el transportista:", carrierOriginalName, "en el idioma:", language);
                  }
            } else {
                  console.warn("No se encontró el elemento '.carrier-name' dentro del elemento .delivery-option:", deliveryOption);
            }
         });
      }
   }

   changeCarriersNames();

Después ir al backoffice/admin en Configurar->Parámetros Avanzados->Rendimiento y borrar la caché.

*Nota: debes cambiar el array 'carrierTranslations' según tus necesidades, el primer campo corresponde al nombre de tu transportista el que tengas en la columna 'Nombre' de la página Personalizar->Transporte->Transportistas de tu backoffice/admin y debajo las traducciones, puedes usar cualquier idioma de tu tienda, pues lo coge desde la url es decir "tutienda.com/es/pagina.html" aquí coge el /es que pertenece al idioma español, si por alguna razón tu tienda tiene el idioma en otra parte por ejemplo "tutienda.com/xxx/es/pagina.html" deberás cambiar el split de la parte
var language = window.location.pathname.split('/')[1];
en este caso sería var language = window.location.pathname.split('/')[2]; este split funciona de la siguiente manera "tutienda.com/1/2/3/4..." aunque lo mas seguro es que esté en la primera posición y no necesites cambiarlo, cuento esto para los que no sepan programar aunque dudo que se encuentren con este problema

Se que no es la mejor manera, ya que si quieres cambiar las traducciones, agregar o quitar transportistas, debes cambiar el código, pero de momento no he encontrado ninguna otra forma gratuita que resuelva este problema, han mencionado aquí un módulo pero en la descripción no figura que esté disponible para todos mis idiomas por lo que no he querido compararlo

Link to comment
Share on other sites

  • PepeFernandez changed the title to [SOLUCIONADO] Traducir el nombre del transportista

Hola Pepe Fernandez,

 

Te escribo para agradecerte por esta solución, has salvado a mi compañía de TRANSPORTISTAS, gracias a ti podremos filmar la nueva pelicula "Transporter 7" con Jason Statham, ya que está barrera de traducción hacia que no pudiésemos transportar como toca.

Te hemos dedicado una canción, por favor, lee la letra de la canción que te hemos dedicado:

Quote

(Verse 1) En la red surfea PepeFernandez, Un campeón en el mundo de PrestaShop, Solucionando problemas como un titán, Con su mente ágil, siempre en acción.

(Chorus) PepeFernandez, héroe del código, Desafiando retos con gran alboroto, En su camino, los transportistas quedan atrás, Y el éxito florece como un río sin final.

(Verse 2) Con su destreza, abre nuevas sendas, Donde otros ven obstáculos, él ve oportunidad, Con cada línea de código, construye sueños, Y en su universo digital, es el rey.

(Chorus) PepeFernandez, maestro del comercio, En su tienda en línea, el mundo es su escenario, Con él, las películas de Transporter renacen, Y el espíritu de Jason Statham se hace presente.

(Bridge) En el vasto océano de bits y bytes, Pepe navega con pasión y habilidad, Con cada victoria, su leyenda crece, Y en el ciberespacio, su nombre resplandece.

(Chorus) PepeFernandez, el titán de PrestaShop, Con su ingenio, conquista cada top, Los transportistas no son rival para él, Y en su reino digital, siempre es el rey.

 

Una vez, gracias por esta solución, nos has salvado la vida.

 

  • Haha 1
Link to comment
Share on other sites

  • 3 weeks later...

Tengo un método algo mejor sin necesidad de javascript:

primero agregamos las traducciones a la base de datos en la tabla ps_translation por ejemplo:

image.png.eefda971cddfc22b71ce3d90c69a53e5.png


y luego simplemente buscamos donde aparezca nuestros transportistas, por ejemplo en el archivo shipping.tpl ubicado en themes/myTheme/templates/checkout/_partials/steps/shipping.tpl y buscamos donde pone $carrier.name y reemplazamos por la traducción con el dominio que hayamos puesto, en este caso ShopPdf sería algo así:
{l s=$carrier.name d='Shop.Pdf' pdf='true'}

Limpiamos caché y listo, ahora ya no hay que cargar javascript en la página y puedes editar las traducciones desde la base de datos sin tener que tocar código cada vez que quieras cambiar o agregar una.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...