Pregunta

En Mi sitio web:si cambio a idioma chino el bandera ¿No cambia en el selector de idiomas?Los otros idiomas funcionan bien.P.ej.si cambias a Francés, muestra la bandera francesa...

Este es el idioma.phtml estoy usando:

<?php if(count($this->getStores())>1): ?>
<div class="polyglot-language-switcher" data-grid-columns="1" data-anim-effect="fade" data-open-mode="click" data-anim-speed="0.1" >
    <ul style="display: none">
        <?php foreach ($this->getStores() as $_lang):?>
                <li><a href="<?php echo $_lang->getCurrentUrl() ?>" title="<?php echo $this->htmlEscape($_lang->getName()) ?>" data-lang-id="<?php echo $this->htmlEscape($_lang->getCode()) ?>"><img src="<?php echo $this->getSkinUrl('images/flags/' . $_lang->getCode() . '.png');?>" alt=""> <?php echo $this->htmlEscape($_lang->getName()) ?></a></li>
        <?php endforeach;?>
    </ul>
</div>
<?php endif; ?>
¿Fue útil?

Solución

Buscando en sus archivos javascript encontré esta pieza

    $j('.polyglot-language-switcher').polyglotLanguageSwitcher({
        selectedLang: function () {
            return $j('html').attr('lang');
        }
    });

Que básicamente utiliza el lang atributo de la etiqueta HTML para establecer el idioma actual.Al probar esto en varias tiendas, el idioma siempre está configurado correctamente.

<html lang="en" id="top" class="no-js"> para inglés,<html lang="en" id="top" class="no-js"> para francés...Pero para los chinos <html lang="zh" id="top" class="no-js">

Y ya que estás usando el código CN pero el idioma es ZH it doesn't match.

ZH es el código de idioma ISO2 que usa Magento mientras que el selector de idioma usa los códigos de tienda que usted proporcionó.La solución más rápida y limpia es simplemente cambiar el código de tienda a ZH.Cualquier otra solución requeriría una reescritura codificada del código.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top