質問

オン 私のウェブサイト:に切り替えると 中国語 ザ- 言語スイッチャーで変更されていませんか?他の言語は正常に動作しています。例:に切り替えると フランス語, 、そのフランスの旗を示しています。..

これは 言語。phtml 私は使用しています:

<?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; ?>
役に立ちましたか?

解決

あなたのjavascriptファイルを掘り下げると、私はこの作品を見つけました

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

これは基本的に使用しています lang 現在の言語を設定するHTMLタグの属性。いくつかの店舗でこれをテストすると、言語は常に正しく設定されます。

<html lang="en" id="top" class="no-js"> 英語のために, <html lang="en" id="top" class="no-js"> フランス語のために。..しかし、中国語のために <html lang="zh" id="top" class="no-js">

そして、あなたはコードを使用しているので CN しかし、言語は ZH it doesn't match.

ZH は、Magentoが使用するISO2言語コードですが、言語スイッチャーは提供したストアコードを使用します。最も簡単でクリーンな解決策は、単にstorecodeを次のように変更することです ZH.他のソリューションでは、コードのハードコードされた書き換えが必要になります

ライセンス: CC-BY-SA帰属
所属していません magento.stackexchange
scroll top