Jump to content

1.7.6 - Modificar traducción "Sin impuestos"


Recommended Posts

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!

  • Like 1
Link to comment
Share on other sites

  • 5 months later...

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

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

  • 5 months later...

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

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

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

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