Jump to content

Traducción de botones de ventana modal del carrito


estudio54

Recommended Posts

Hola a todos,

Soy nuevo por aquí y desconozco si estoy en el apartado adecuado. Estoy volviéndome loco para traducir el texto de los botones de la ventana modal o emergente del carrito de compras de la plantilla "leo_minimal" de prestashop. No aparecen los terminos check out ni view cart, tampoco en castellano (ver el carro y revisa) He revisado todo y no doy con las traducciones. Agradezco cualquier tipo de ayuda.

Os paso enlace al front:

https://apollotran.com/prestashop/leo_minimal_demo/es/

Si hacéis clic en la cestita de la parte superior tras añadir algún producto, se abrirá una ventana emergente en la que aparecen dos botones [ ver el carro ] y [ revisa ]. No encuentro la forma de cambiar el texto de estos botones y no aparece nada referente en traducciones ni en los ficheros.

Os dejo enlace al BackOficce:

https://addons.prestashop.com/demo/BO16470.html

User: [email protected]

Pasword: demodemo

 

Agradezco cualquier tipo de ayuda u orientación, gracias y un saludo.

Link to comment
Share on other sites

El tpl que entiendo que está asociado, es el de la ventana modal dentro del modulo de la plantilla: Es decir modal.tpl

Adjunto Código:

{**
 * 2007-2018 PrestaShop
 *
 * NOTICE OF LICENSE
 *
 * This source file is subject to the Academic Free License 3.0 (AFL-3.0)
 * that is bundled with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * https://opensource.org/licenses/AFL-3.0
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to [email protected] so we can send you a copy immediately.
 *
 * DISCLAIMER
 *
 * Do not edit or add to this file if you wish to upgrade PrestaShop to newer
 * versions in the future. If you wish to customize PrestaShop for your
 * needs please refer to http://www.prestashop.com for more information.
 *
 * @author    PrestaShop SA <contact@prestashop.com>
 * @copyright PrestaShop SA
 * @license   https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0)
 * International Registered Trademark & Property of PrestaShop SA
 *}
<div id="blockcart-modal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
        <h4 class="modal-title h6 text-xs-center" id="myModalLabel"><i class="material-icons rtl-no-flip">&#xE876;</i>{l s='Product successfully added to your shopping cart' d='Shop.Theme.Checkout'}</h4>
      </div>
      <div class="modal-body">
        <div class="row">
          <div class="col-md-5 divide-right">
            <div class="row">
              <div class="col-md-6">
                <img class="product-image" src="{$product.cover.medium.url}" alt="{$product.cover.legend}" title="{$product.cover.legend}" itemprop="image">
              </div>
              <div class="col-md-6">
                <h6 class="h6 product-name">{$product.name}</h6>
                <p>{$product.price}</p>
                {hook h='displayProductPriceBlock' product=$product type="unit_price"}
                {foreach from=$product.attributes item="property_value" key="property"}
                  <span><strong>{$property}</strong>: {$property_value}</span><br>
                {/foreach}
                <p><strong>{l s='Quantity:' d='Shop.Theme.Checkout'}</strong>&nbsp;{$product.cart_quantity}</p>
              </div>
            </div>
          </div>
          <div class="col-md-7">
            <div class="cart-content">
              {if $cart.products_count > 1}
                <p class="cart-products-count">{l s='There are %products_count% items in your cart.' sprintf=['%products_count%' => $cart.products_count] d='Shop.Theme.Checkout'}</p>
              {else}
                <p class="cart-products-count">{l s='There is %product_count% item in your cart.' sprintf=['%product_count%' =>$cart.products_count] d='Shop.Theme.Checkout'}</p>
              {/if}
              <p><strong>{l s='Total products:' d='Shop.Theme.Checkout'}</strong>&nbsp;{$cart.subtotals.products.value}</p>
              <p><strong>{l s='Total shipping:' d='Shop.Theme.Checkout'}</strong>&nbsp;{$cart.subtotals.shipping.value} {hook h='displayCheckoutSubtotalDetails' subtotal=$cart.subtotals.shipping}</p>
              {if $cart.subtotals.tax}
              	<p><strong>{$cart.subtotals.tax.label}</strong>&nbsp;{$cart.subtotals.tax.value}</p>
              {/if}
              <p><strong>{l s='Total:' d='Shop.Theme.Checkout'}</strong>&nbsp;{$cart.totals.total.value} {$cart.labels.tax_short}</p>
              <div class="cart-content-btn">
                <button type="button" class="btn btn-secondary" data-dismiss="modal">{l s='Continue shopping' d='Shop.Theme.Actions'}</button>
                <a href="{$cart_url}" class="btn btn-primary"><i class="material-icons rtl-no-flip">&#xE876;</i>{l s='Proceed to checkout' d='Shop.Theme.Actions'}</a>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>

 

Link to comment
Share on other sites

El módulo en cuestión es ps_shoppingcart  

En los módulos internos de la plantilla,  no afecta nada a la ventana  modal del carrito (al menos en apariencia).

En cambio en módulos de prestashop, si me voy al mismo módulo (ps_shoppingcart  )  si que desparece la ventana emergente, al renombrar ps_shoppingcart.php  (los tpl no modifican nada aparentemente)

El código del archivo es este:

<?php
/*
* 2007-2015 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to [email protected] so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
*  @author PrestaShop SA <[email protected]>
*  @copyright  2007-2015 PrestaShop SA
*  @license    http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
*  International Registered Trademark & Property of PrestaShop SA
*/

use PrestaShop\PrestaShop\Adapter\Cart\CartPresenter;

if (!defined('_PS_VERSION_')) {
    exit;
}

use PrestaShop\PrestaShop\Core\Module\WidgetInterface;

class Ps_Shoppingcart extends Module implements WidgetInterface
{
    public function __construct()
    {
        $this->name = 'ps_shoppingcart';
        $this->tab = 'front_office_features';
        $this->version = '2.0.1';
        $this->author = 'PrestaShop';
        $this->need_instance = 0;

        $this->bootstrap = true;
        parent::__construct();

        $this->displayName = $this->trans('Shopping cart', array(), 'Modules.Shoppingcart.Admin');
        $this->description = $this->trans('Adds a block containing the customer\'s shopping cart.', array(), 'Modules.Shoppingcart.Admin');
        $this->ps_versions_compliancy = array('min' => '1.7.1.0', 'max' => _PS_VERSION_);
        $this->controllers = array('ajax');
    }

    public function hookHeader()
    {
        if (Configuration::isCatalogMode()) {
            return;
        }

        if (Configuration::get('PS_BLOCK_CART_AJAX')) {
            $this->context->controller->registerJavascript('modules-shoppingcart', 'modules/'.$this->name.'/ps_shoppingcart.js', ['position' => 'bottom', 'priority' => 150]);
        }
    }

    private function getCartSummaryURL()
    {
        return $this->context->link->getPageLink(
            'cart',
            null,
            $this->context->language->id,
            array(
                'action' => 'show'
            ),
            false,
            null,
            true
        );
    }

    public function getWidgetVariables($hookName, array $params)
    {
        $cart_url = $this->getCartSummaryURL();

        return array(
            'cart' => (new CartPresenter)->present(isset($params['cart']) ? $params['cart'] : $this->context->cart),
            'refresh_url' => $this->context->link->getModuleLink('ps_shoppingcart', 'ajax', array(), null, null, null, true),
            'cart_url' => $cart_url
        );
    }

    public function renderWidget($hookName, array $params)
    {
        if (Configuration::isCatalogMode()) {
            return;
        }

        $this->smarty->assign($this->getWidgetVariables($hookName, $params));
        return $this->fetch('module:ps_shoppingcart/ps_shoppingcart.tpl');
    }

    public function renderModal(Cart $cart, $id_product, $id_product_attribute)
    {
        $data = (new CartPresenter)->present($cart);
        $product = null;
        foreach ($data['products'] as $p) {
            if ($p['id_product'] == $id_product && $p['id_product_attribute'] == $id_product_attribute) {
                $product = $p;
                break;
            }
        }

        $this->smarty->assign(array(
            'product' => $product,
            'cart' => $data,
            'cart_url' => $this->getCartSummaryURL(),
        ));

        return $this->fetch('module:ps_shoppingcart/modal.tpl');
    }

    public function getContent()
    {
        $output = '';
        if (Tools::isSubmit('submitBlockCart')) {
            $ajax = Tools::getValue('PS_BLOCK_CART_AJAX');
            if ($ajax != 0 && $ajax != 1) {
                $output .= $this->displayError($this->trans('Ajax: Invalid choice.', array(), 'Modules.Shoppingcart.Admin'));
            } else {
                Configuration::updateValue('PS_BLOCK_CART_AJAX', (int)($ajax));
            }
        }
        return $output.$this->renderForm();
    }

    public function install()
    {
        return
            parent::install()
                && $this->registerHook('header')
                && $this->registerHook('displayTop')
                && Configuration::updateValue('PS_BLOCK_CART_AJAX', 1)
        ;
    }

    public function renderForm()
    {
        $fields_form = array(
            'form' => array(
                'legend' => array(
                    'title' => $this->trans('Settings', array(), 'Admin.Global'),
                    'icon' => 'icon-cogs',
                ),
                'input' => array(
                    array(
                        'type' => 'switch',
                        'label' => $this->trans('Ajax cart', array(), 'Modules.Shoppingcart.Admin'),
                        'name' => 'PS_BLOCK_CART_AJAX',
                        'is_bool' => true,
                        'desc' => $this->trans('Activate Ajax mode for the cart (compatible with the default theme).', array(), 'Modules.Shoppingcart.Admin'),
                        'values' => array(
                            array(
                                'id' => 'active_on',
                                'value' => 1,
                                'label' => $this->trans('Enabled', array(), 'Admin.Global'),
                            ),
                            array(
                                'id' => 'active_off',
                                'value' => 0,
                                'label' => $this->trans('Disabled', array(), 'Admin.Global'),
                            )
                        ),
                    ),
                ),
                'submit' => array(
                    'title' => $this->trans('Save', array(), 'Admin.Actions'),
                ),
            ),
        );

        $helper = new HelperForm();
        $helper->show_toolbar = false;
        $helper->table =  $this->table;
        $lang = new Language((int)Configuration::get('PS_LANG_DEFAULT'));
        $helper->default_form_language = $lang->id;
        $helper->allow_employee_form_lang = Configuration::get('PS_BO_ALLOW_EMPLOYEE_FORM_LANG') ? Configuration::get('PS_BO_ALLOW_EMPLOYEE_FORM_LANG') : 0;
        $this->fields_form = array();

        $helper->identifier = $this->identifier;
        $helper->submit_action = 'submitBlockCart';
        $helper->currentIndex = $this->context->link->getAdminLink('AdminModules', false).'&configure='.$this->name.'&tab_module='.$this->tab
        .'&module_name='.$this->name;
        $helper->token = Tools::getAdminTokenLite('AdminModules');
        $helper->tpl_vars = array(
            'fields_value' => $this->getConfigFieldsValues(),
            'languages' => $this->context->controller->getLanguages(),
            'id_language' => $this->context->language->id
        );

        return $helper->generateForm(array($fields_form));
    }

    public function getConfigFieldsValues()
    {
        return array(
            'PS_BLOCK_CART_AJAX' => (bool)Tools::getValue('PS_BLOCK_CART_AJAX', Configuration::get('PS_BLOCK_CART_AJAX')),
        );
    }
}

 

Link to comment
Share on other sites

Hay una parte de la ventana emergente (la marcada en el circulo rojo) que si puedo traducir desde los archivos translations ubicados dentro de la plantilla leo_minimal. En cambio los botones que aparecen en verde en la captura no los encuentro por ninguna parte y veo que son comunes en todas las plantillas leo (adjunto captura)

 

captureone.jpg

Link to comment
Share on other sites

Pasos que hago cuando me ocurre algo asi o necesito cambiar algo del codigo y no tengo claro donde esta.

  • Descargo la pagina entera en mi ordenador, asi tengo una copia.
  • Abro el programa "total commander" 
  • Entro en la web, voy al lugar donde esta lo que quiero cambiar o saber donde esta la traduccion
  • Boton derecho e inspeccionar
  • Compruebo si tiene un "id" o "class" , mejor id.
  • Vuelvo a total comander, selecciono carpeta modules,themes
  • Le doy a buscar texto y escribo el id
  • Me salen los ficheros que tienen ese texto dentro.
  • Edito esos ficheros, busco el texto.
  • Una vez encontrado ya se en que modulo y fichero esta (puede haber varios)

Una vez tengo el fichero y la zona del codigo puedo hacer 2 cosas.

Cambiarlo a mano o ver la traducción donde demonios esta , todas las traducciones en Prestashop son iguales.

{l s='TEXTO QUE SE PUEDE TRADUCIR' d='MODULO DONDE ESTA ESTA TRADUCCION,O ES GLOBAL, DEL THEME ,otros'}

Por lo tanto , en tu caso si esos ficheros que has puesto son correctos.

{l s='Total:' d='Shop.Theme.Checkout'} ---> Debes entrar en traducciones, theme , shop->theme->checkout

image.thumb.png.cbf82d84282dbcb7a4ed632c36ee6cb2.png

 

  • Like 1
Link to comment
Share on other sites

Muchisimas gracias gusman126 y burrots,

Me habéis sido de gran ayuda, no conocía "total commander" y la verdad es que ha sido clave para encontrar las traducciones. Había parte de las mismas en el módulo interno de la plantilla y otras fuera,  y me estaba volviendo loco. Dejo la ruta de los archivos por si alguien tiene este problema:

Los archivos para traducir los botones están en:

modules/leofeature/traslations

 

Gracias nuevamente y un saludo!

Link to comment
Share on other sites

24 minutes ago, estudio54 said:

Muchisimas gracias gusman126 y burrots,

Me habéis sido de gran ayuda, no conocía "total commander" y la verdad es que ha sido clave para encontrar las traducciones. Había parte de las mismas en el módulo interno de la plantilla y otras fuera,  y me estaba volviendo loco. Dejo la ruta de los archivos por si alguien tiene este problema:

Los archivos para traducir los botones están en:

modules/leofeature/traslations

 

Gracias nuevamente y un saludo!

Un placer

Link to comment
Share on other sites

hace 28 minutos, estudio54 dijo:

Muchisimas gracias gusman126 y burrots,

Me habéis sido de gran ayuda, no conocía "total commander" y la verdad es que ha sido clave para encontrar las traducciones. Había parte de las mismas en el módulo interno de la plantilla y otras fuera,  y me estaba volviendo loco. Dejo la ruta de los archivos por si alguien tiene este problema:

Los archivos para traducir los botones están en:

modules/leofeature/traslations

 

Gracias nuevamente y un saludo!

De nada,

El total commander para estos casos de buscar un texto en todos los ficheros de una carpeta es lo mejor que he podido probar.

 

Link to comment
Share on other sites

2 hours ago, gusman126 said:

De nada,

El total commander para estos casos de buscar un texto en todos los ficheros de una carpeta es lo mejor que he podido probar.

 

Yo utilizo Sublime Text y te permite buscar i reemplazar, strings, regex etc. de todo el proyecto entero Desde q lo desbubri hace años q me enamore de el,. Antes utiliza netbeans y en tiempos muy remotos dreamweaver (dios q años 😥)

Link to comment
Share on other sites

  • 1 year later...
On 3/22/2019 at 4:13 AM, gusman126 said:

Pasos que hago cuando me ocurre algo asi o necesito cambiar algo del codigo y no tengo claro donde esta.

  • Descargo la pagina entera en mi ordenador, asi tengo una copia.
  • Abro el programa "total commander" 
  • Entro en la web, voy al lugar donde esta lo que quiero cambiar o saber donde esta la traduccion
  • Boton derecho e inspeccionar
  • Compruebo si tiene un "id" o "class" , mejor id.
  • Vuelvo a total comander, selecciono carpeta modules,themes
  • Le doy a buscar texto y escribo el id
  • Me salen los ficheros que tienen ese texto dentro.
  • Edito esos ficheros, busco el texto.
  • Una vez encontrado ya se en que modulo y fichero esta (puede haber varios)

Una vez tengo el fichero y la zona del codigo puedo hacer 2 cosas.

Cambiarlo a mano o ver la traducción donde demonios esta , todas las traducciones en Prestashop son iguales.

{l s='TEXTO QUE SE PUEDE TRADUCIR' d='MODULO DONDE ESTA ESTA TRADUCCION,O ES GLOBAL, DEL THEME ,otros'}

Por lo tanto , en tu caso si esos ficheros que has puesto son correctos.

{l s='Total:' d='Shop.Theme.Checkout'} ---> Debes entrar en traducciones, theme , shop->theme->checkout

image.thumb.png.cbf82d84282dbcb7a4ed632c36ee6cb2.png

 

Un saludo. Deseo hacer el proceso que enseñas, pero no sé como descargar la página entera en mi ordenador. Agradecería me dieras instrucciones. Gracias.

Link to comment
Share on other sites

39 minutes ago, gusman126 said:

Usa un programa de FTP y baja todo menos la carpeta /img

usa el explorador de archivos del hospedaje, comprime todo menos /img/ y baja el fichero .zip

 

Estoy tratando de buscar la traducción de eso en el Total Commander y no me lanza nada, ni siquiera haciendo una búsqueda en la carpeta raíz de la página. En el backoffice me voy a traducciones del módulo carro pero no me aparece nada. ¿Me puedes dar luces? Gracias.

Carro.png

Link to comment
Share on other sites

hace 6 horas, alfredomadrid dijo:

Estoy tratando de buscar la traducción de eso en el Total Commander y no me lanza nada, ni siquiera haciendo una búsqueda en la carpeta raíz de la página. En el backoffice me voy a traducciones del módulo carro pero no me aparece nada. ¿Me puedes dar luces? Gracias.

Carro.png

Buenas @alfredomadrid  puede incluso que te salga en vez de por el modulo carrito (oficial de prestashop) que incluya otro modulo cart la propia plantilla...o que lo haga en las traducciones de la propia plantilla....Intenta buscarlo hay

Link to comment
Share on other sites

hace 17 horas, alfredomadrid dijo:

Estoy tratando de buscar la traducción de eso en el Total Commander y no me lanza nada, ni siquiera haciendo una búsqueda en la carpeta raíz de la página. En el backoffice me voy a traducciones del módulo carro pero no me aparece nada. ¿Me puedes dar luces? Gracias.

Carro.png

Busca el texto "leo-dropdown-cart-content" y sigue el codigo, deberias ver si esta usando traducción de modulo, el tema de leo, o el tema clasic

  • Thanks 1
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...