Jump to content

[SOLUCIONADO] Deteccion de idioma para mostrar contenidos diferentes


hardandweb

Recommended Posts

Hola.

 

Estoy intentando en un prestashop que en función del idioma de carga si es español o ingles muestre un contenido diferente. Estoy haciendo pruebas del estilo:

 

 

<?php
if ($lang_iso == ‘es’) {
    <ul id="tmheaderlinks">
<li><a href="XXXX" class="active">XXXXX</a></li>
<li><a href="xxxxxx" class="active">xxxxxx</a></li>
</ul>
} elseif ($lang_iso == ‘en’) {
    <ul id="tmheaderlinks">
<li><a href="XXXX" class="active">INGLES</a></li>
<li><a href="xxxxxx" class="active">INGLES</a></li>
</ul>
} else {
    otro
}
?>
 
Pero no me funciona correctamente. Alguien me podría ayudar por favor?
 
Gracias.
 
 
Edited by hardandweb (see edit history)
Link to comment
Share on other sites

Basicamente se trata de un menu con enlaces, que quiero que rn español se vean unos y en ingles otros, y por diseño los tengo que poner fijos.

 

Perdon por mi ignorancia pero a que te refieres por smarty?

 

Gracias

 

Un contenido diferente, que clase de contenido o que tanto?, y porque mejor no lo haces en smarty.

 

Saludos.

Link to comment
Share on other sites

Con esto te daras una idea, ve al archivo: themes/tu_tema_activo/header.tpl

Busca: {$HOOK_HEADER}

Justo antes de esta palabra escribe:
{if $lang_iso == 'es'}
    <strong>Estoy en idioma ingles</strong>
{elseif $lang_iso == 'en'}
    <strong>Estoy en idioma ingles</strong>
{else}
    <strong>No se en que estoy</strong>
{/if}


Guarda y actualiza tu pagina, observaras que apareceran estos textos en la parte superior izquierda de tu sitio dependiendo de el idioma que elijas.


Saludos.

Link to comment
Share on other sites

Vamos a ver.

 

Antes de ir haciendo cosas no recomendadas.

 

Es cierto que con:

{if $lang_iso == 'codigo_iso_del_idioma'} {/if}
puedes cargar una cosa para un idioma y otra para otra idioma.

 

Pero también es cierto, que si por ejemplo en tu caso particular, que veo que son textos o enlaces, si tu colocas un texto en un tpl de la plantilla y quieres que sea traducible,colócalo así:

{l s='Palabra Clave'}
y luego desde Localización -> Traducciones -> Modificar Bloque Traducciones -> Traducciones del Front-Office, traduces esa palabra:

Palabra Clave
para los distintos idiomas.

 

(Esa es la forma recomendada, no tienes porque ir haciendo "if" en un tpl, imaginate que tienes 80 idiomas, no tendria sentido hacer una condicional para 100)

 

Si es un tpl de un modulo, el literal ls, se colocaria asi:

{l s='Palabra Clave' mod='nombre_modulo'}

----

 

Si por ejemplo, nos referimos a un enlace, por ejemplo a un enlace de un contenido creado en la pestaña Preferencias -> CMS, pues dentro del "href" del "a", colocarias:

{$link->getCMSLink('id_del_cms', null)}
Si es un enlace, por ejemplo al formulario de contacto, el enlace la forma correcta, de colocarlo en el tpl, el href, seria:

{$link->getPageLink('contact', true)|escape:'html'}
etc....

 

Lo que te quiero decir, es que no tienes que abusar de las condicionales en el "tpl", aunque haciendo condiciones con el lang_iso te funcione en el tpl, ahí maneras correcta de hacerla, sin hacer chapuzas.

Edited by Sergio Ruiz (see edit history)
  • Like 2
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...