Pergunta

Sobre meu website:se eu mudar para língua chinesa o bandeira não está mudando no seletor de idioma?Os outros idiomas estão funcionando bem.Por exemplo.se você mudar para Francês, está mostrando a bandeira francesa...

Isto é o idioma.phtml estou 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; ?>
Foi útil?

Solução

Pesquisando seus arquivos javascript, encontrei este artigo

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

Que basicamente usa o lang atributo da tag HTML para definir o idioma atual.Testando isso em diversas lojas o idioma está sempre configurado corretamente.

<html lang="en" id="top" class="no-js"> Para inglês,<html lang="en" id="top" class="no-js"> para francês...Mas para os chineses <html lang="zh" id="top" class="no-js">

E já que você está usando o código CN mas a linguagem é ZH it doesn't match.

ZH é o código de idioma ISO2 que o Magento usa enquanto o alternador de idioma usa os códigos de loja que você forneceu.A solução mais rápida e limpa é simplesmente alterar o storecode para ZH.Qualquer outra solução exigiria uma reescrita do código

Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange
scroll top