Domanda

on Il mio sito Web : se passerò a lingua cinese il Bandiera non cambia nel commutatore della lingua?Le altre lingue stanno funzionando bene.Per esempio.Se si passa a francese , mostra la bandiera francese ...

Questo è il Language.phtml Sto 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; ?>
.

È stato utile?

Soluzione

Scavando attraverso i tuoi file JavaScript ho trovato questo pezzo

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

che utilizza fondamentalmente l'attributo lang del tag HTML per impostare la lingua corrente.Test di questo su diversi negozi La lingua è sempre impostata correttamente.

<html lang="en" id="top" class="no-js"> per l'inglese, <html lang="en" id="top" class="no-js"> per il francese ... ma per il cinese <html lang="zh" id="top" class="no-js">

e dal momento che stai usando il codice CN ma la lingua è ZH it doesn't match.

ZH è il codice lingua ISO2 utilizzato da Magento mentre il commutatore della lingua utilizza i codici di memorizzazione che hai fornito.La soluzione più rapida e più pulita è quella di modificare semplicemente lo storeCode in ZH.Qualsiasi altra soluzione richiederebbe una riscrittura rigida del codice

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top