A bandeira chinesa não muda no alternador de idioma
-
13-12-2019 - |
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; ?>
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