Post Top Ad

Your Ad Spot

miércoles, 26 de agosto de 2020

Creación de archivos adjuntos en varios idiomas en PrestaShop 1.7

Los archivos adjuntos son una excelente manera de proporcionar a sus clientes información detallada previa a la venta sobre sus productos. Pero, ¿y si su sitio es multilingüe? Veamos cómo convertir archivos adjuntos en varios idiomas en PrestaShop 1.7.

Paso 1: agregar los archivos adjuntos

Agregar archivos adjuntos con el nombre adecuado es fundamental para esta técnica. Agregaremos los ISO de idioma a los nombres, para que luego puedan ser identificados en la plantilla.
Inicie sesión en la oficina administrativa, luego navegue hasta Catálogo> Productos y elija uno para comenzar. En la parte inferior de la pestaña Opciones , agregue dos archivos adjuntos de prueba. Los nombres de los archivos no importan, pero sí el título que elija. Agregue un archivo adjunto para cada idioma al que se traduce, asegurándose de agregar el código ISO para ese idioma después del nombre, así: _en , _it , _fr .
Nota: Si no sabe cuál es el código de idioma, vaya a Internacional> Localización y haga clic en Idiomas. El código ISO se enumera en la tabla:
PrestaShop 1.7 Idioma ISO

Si necesita un archivo adjunto para mostrar en todos los idiomas, asegúrese de no agregarle ningún ISO de idioma.

Paso 2: editar la plantilla


Para este tutorial estoy usando la plantilla "clásica", que viene con PrestaShop 1.7. Si está utilizando un tema personalizado, tenga en cuenta que parte del código puede ser diferente o incluso estar ubicado en un archivo diferente.
Abra temas / classic / templates / catalog / product.tpl .
Busque el siguiente código:
1
2
3
4
{if $product.attachments}
                    <div class="tab-pane fade in" id="attachments" role="tabpanel">
                       <section class="product-attachments">
                         <h3 class="h5 text-uppercase">{l s='Download' d='Shop.Theme.Actions'}</h3>
Inmediatamente después, pero antes del bucle foreach, agregue lo siguiente
1
2
{$lang_checker = "_"|cat: {$language.iso_code}}
{$lang_checker_array = ['en', 'it']}
Asegúrese de utilizar sus propios códigos ISO en lugar de 'en' y 'it'. Agrega todos los idiomas que admite tu tienda
A continuación, envuelva el bloque de adjuntos en la siguiente declaración IF
1
2
3
4
5
6
7
8
9
                         {if $attachment.name|strstr:{$lang_checker}}
                           <div class="attachment">
                             <h4><a href="{url entity='attachment' params=['id_attachment' => $attachment.id_attachment]}">{$attachment.name|replace:{$lang_checker}:''}</a></h4>
                             <p>{$attachment.description}</p
                             <a href="{url entity='attachment' params=['id_attachment' => $attachment.id_attachment]}">
                               {l s='Download' d='Shop.Theme.Actions'} ({$attachment.file_size_formatted})
                             </a>
                           </div>
{/if}
Si no necesita que se muestren algunos archivos adjuntos para todos los idiomas, puede continuar y probarlo, como parte básica si básicamente está hecho. Si lo hace, deberá agregar una pequeña condición adicional, y usaremos ese lang_checker_array para ello.

Paso 2.1: reserva para archivos adjuntos genéricos

Justo antes del final de la declaración IF que busca nuestro código ISO, agregue lo siguiente:
1
2
3
4
5
6
7
{else}
  {$denier = false}
  {foreach from=$lang_checker_array item=checkr_lang}
                              {if $attachment.name|strstr:{$checkr_lang}}
                              {$denier = true}
                              {/if}
  {/foreach}
Explicación: Estamos configurando una variable (denier) que evitará que se muestre el archivo adjunto si contiene algún idioma ISO. Debido a esta lógica, asegúrese de usar una cadena que sea lo suficientemente única en caso de que los nombres de sus archivos adjuntos contengan códigos de producto o similares; de lo contrario, nunca se mostrarán.
Inmediatamente después, pero aún dentro de nuestro IF principal, agregue este último fragmento de código
1
2
3
4
5
6
7
8
9
{if !$denier}
<div class="attachment">
<h4><a href="{url entity='attachment' params=['id_attachment' => $attachment.id_attachment]}">{$attachment.name|replace:{$lang_checker}:''}</a></h4>
<p>{$attachment.description}</p
<a href="{url entity='attachment' params=['id_attachment' => $attachment.id_attachment]}">
{l s='Download' d='Shop.Theme.Actions'} ({$attachment.file_size_formatted})
</a>
</div>
{/if}
Que es básicamente una copia del código de adjunto estándar. Si el archivo adjunto no contiene ningún código iso, significa que podemos mostrarlo normalmente.
¡Hemos terminado!

No hay comentarios.:

Publicar un comentario

Dejanos tu comentario para seguir mejorando!

outbrain

Páginas