Pabloporp Posted August 12, 2019 Share Posted August 12, 2019 Hola amigos! quiero consultarles por un detalle que me está haciendo renegar: En la ficha de producto del frontend, debajo del precio aparece "Sin impuestos" (por haber desactivado los mismos). Quiero cambiar esa traducción por otra pero no lo consigo... La frase figura en Traducciones -> Traducciones de backoffice -> Español -> Admin -> Catalog -> Feature, pero al cambiarla no se refleja en el frontend. Intenté: Borrar la caché Desactivar la caché (la caché general y la de Smarty), forzar la recompilación del tema, y luego volver a modificar la frase Buscar la frase en todos los .php, .xml y .html de la página Buscar la frase en la base de datos a través de phpMyAdmin (figura la misma que muestra el selector de Prestashop en el backend, ninguna otra) La opción "Inspeccionar elemento" de Chrome me da el siguiente dato: <div class=tax-shipping-delivery-label>... al cual sólo encontré referencias en 2 archivos .css Alguna otra idea? Muchas gracias! 1 Link to comment Share on other sites More sharing options...
marcial Posted January 29, 2020 Share Posted January 29, 2020 nos pasa exactamente lo mismo, no hay solucion? Link to comment Share on other sites More sharing options...
Juanjomg Posted January 31, 2020 Share Posted January 31, 2020 Muy buenas. No consigo cambiarla desde el administrador, explico donde se encuentra la información y luego como puedes cambiarla. Yo parto de prestashop 1.7 y la plantilla clasic. Los datos del precio del producto se muestra mediante el fichero \themes\classic\templates\catalog\_partials\product-prices.tpl , y la frase que informa si el impuesto está incluido o no en las siguientes líneas: {if $configuration.display_taxes_label} {$product.labels.tax_long} {/if} Donde $product.labels.tax_long tendrá el valor de "Impuestos excluidos" o "Impuestos incluidos" $product.labels.tax_long toma su valor en el método getLabels de la clase ProductLazyArray, dentro del fichero /src/Adapter/Presenter/Product/ProductLazyArray.php : public function getLabels() { return array( 'tax_short' => ($this->settings->include_taxes) ? $this->translator->trans('(tax incl.)', array(), 'Shop.Theme.Global') : $this->translator->trans('(tax excl.)', array(), 'Shop.Theme.Global'), 'tax_long' => ($this->settings->include_taxes) ? $this->translator->trans('Tax included', array(), 'Shop.Theme.Global') : $this->translator->trans('Tax excluded', array(), 'Shop.Theme.Global'), ); } Y la traducción en nuestro caso de ‘Tax excluded’ se realiza con los datos almacenado en el fichero \app\Resources\translations\es-ES\ ShopThemeGlobal.es-ES.xlf, como se puede ver en el código anterior donde aparece las palabras a traducir y donde se encuentra la traducción 'Shop.Theme.Global': <file original="src/Adapter/Presenter/Product/ProductLazyArray.php" source-language="en" target-language="es-ES" datatype="plaintext"> <body> <trans-unit id="f4a0d7cb0cd45214c8ca5912c970de13" approved="yes"> <source>Tax included</source> <target xml:lang="es-ES" state="translated">Impuestos incluidos</target> <note>Line: 395</note> </trans-unit> <trans-unit id="befcac0f9644a7abee43e69f49252ac4" approved="yes"> <source>Tax excluded</source> <target xml:lang="es-ES" state="translated">Impuestos excluidos</target> <note>Line: 396</note> </trans-unit> </body> </file> Primera opción modificar la plantilla product-prices.tpl, sustituyendo el código por: {if $product.labels.tax_long==='Impuestos excluidos'} NUEVO TEXTO {else} {$product.labels.tax_long} {/if} Es un poco chapuza la solución, pero no te afecta las actualizaciones de prestashop, pero si la del theme. Segunda opción modificar el fichero de traducción ShopThemeGlobal.es-ES.xlf, aunque corres el peligro de que al actualizar prestashop se borre las modificaciones: <source>Tax excluded</source> <target xml:lang="es-ES" state="translated">NUEVA TRADUCCION</target> Espero que sea lo que buscas y resuelva tu problema. Link to comment Share on other sites More sharing options...
Gerardo Martinez G Posted January 31, 2020 Share Posted January 31, 2020 es mas o menos correcto la segunda opcion que dices Juanjomg, hay que hacerlo pero en el theme lo correcto es que dejes el Codigo prestashop y las traducciones como son, para que en futuras actualizaciones de Idioma o Prestashop no te afecten... Lo correcto es que lo agas todo en el theme... explico coodigo que usaron de ejemplo public function getLabels() { return array( 'tax_short' => ($this->settings->include_taxes) ? $this->translator->trans('(tax incl.)', array(), 'Shop.Theme.Global') : $this->translator->trans('(tax excl.)', array(), 'Shop.Theme.Global'), 'tax_long' => ($this->settings->include_taxes) ? $this->translator->trans('Tax included', array(), 'Shop.Theme.Global') : $this->translator->trans('Tax excluded', array(), 'Shop.Theme.Global'), ); } tax incl. es el textoShop.Theme.Global, es el el archivo que se encuentra en mi caso por que uso español es-ES \app\Resources\translations\es-ES\ShopThemeGlobal.es-ES.xlf Aqui esta el detalle donde pondras la traduccion. crearemos los archivos y carpetas si no existen en nuestro theme, copy solo lo que queremos traducir al nuevo archivo. y quedara algo como al final. {yourServer}/themes/classic/translations/es-ES/ShopThemeGlobal.es-ES.xlf cambia a la nueva traduccion en este dentro de target {TU NUEVA TRADUCCION} <?xml version="1.0" encoding="UTF-8"?> <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2"> <file original="src/Adapter/Presenter/Product/ProductLazyArray.php" source-language="en" target-language="es-ES" datatype="plaintext"> <body> <trans-unit id="f4a0d7cb0cd45214c8ca5912c970de13" approved="yes"> <source>Tax included</source> <target xml:lang="es-ES" state="translated">TU NUEVA TRADUCCION</target> <note>Line: 395</note> </trans-unit> <trans-unit id="befcac0f9644a7abee43e69f49252ac4" approved="yes"> <source>Tax excluded</source> <target xml:lang="es-ES" state="translated">TU NUEVA TRADUCCION</target> <note>Line: 396</note> </trans-unit> </body> </file> </xliff> solo es poner el archivo dentro de tu theme Link to comment Share on other sites More sharing options...
Juanjomg Posted January 31, 2020 Share Posted January 31, 2020 Gracias Gerardo por ampliar la solución. Tu opción es mejor, no sabía que se podía hacer una especie de override con la traducción en el theme. Ye he aprendido algo nuevo. Un Saludo. Link to comment Share on other sites More sharing options...
leonardomarinio Posted July 20, 2020 Share Posted July 20, 2020 Hola, estoy teniendo el mismo problema. Version de PS 1.7.6.4. Tengo desactivada la regla de impuestos y quiero quitar el texto "sin impuestos" pero no lo he logrado, intente realizar lo que explicaban arriba pero no tuve exito. Utilizo el tema warehouse. Alguien pudo resolverlo ? Gracias Link to comment Share on other sites More sharing options...
Pabloporp Posted July 21, 2020 Author Share Posted July 21, 2020 Buenas! muchas gracias por todas las respuestas! Lo solucioné hace bastante y sinceramente no recuerdo bien cómo... creo que busqué el texto "sin impuestos" en la base de datos directamente, y lo cambié ahí. En mi caso mi servidor me da acceso PHPmyAdmin. No recuerdo haber modificado ninguno de los archivos que mencionan más arriba. Link to comment Share on other sites More sharing options...
leonardomarinio Posted July 22, 2020 Share Posted July 22, 2020 En que tabla se encuentra para modificarlo ? On 7/21/2020 at 5:18 PM, Pabloporp said: Buenas! muchas gracias por todas las respuestas! Lo solucioné hace bastante y sinceramente no recuerdo bien cómo... creo que busqué el texto "sin impuestos" en la base de datos directamente, y lo cambié ahí. En mi caso mi servidor me da acceso PHPmyAdmin. No recuerdo haber modificado ninguno de los archivos que mencionan más arriba. Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now