私のプロジェクトでは、ウェブショップを 2 つの言語で表示する必要があります。デフォルトでは、次のコードで言語を選択できます。
アプリ/デザイン/フロントエンド/ベース/デフォルト/テンプレート/ページ/スイッチ/language.phtml
<?php if(count($this->getStores())>1): ?>
<div class="form-language">
<label for="select-language"><?php echo $this->__('Your Language:') ?></label>
<select id="select-language" title="<?php echo $this->__('Your Language') ?>" onchange="window.location.href=this.value">
<?php foreach ($this->getStores() as $_lang): ?>
<?php $_selected = ($_lang->getId() == $this->getCurrentStoreId()) ? ' selected="selected"' : '' ?>
<option value="<?php echo $_lang->getCurrentUrl() ?>"<?php echo $_selected ?>><?php echo $this->htmlEscape($_lang->getName()) ?></option>
<?php endforeach; ?>
</select>
</div>
<?php endif; ?>
これはもちろん、すべての言語のオプションを含む選択ボックスを表示します。
ただし、これを別のリンクになるように変更したいと思います。これを行う方法が本当にわかりません。
これは私が今持っているものです。
<?php if(count($this->getStores())>1): ?>
<div class="form-language">
<?php foreach ($this->getStores() as $_lang):?>
<a href="" title=""><?php echo $this->htmlEscape($_lang->getName()) ?></a>
<?php endforeach;?>
</div>
<?php endif; ?>
PS: デフォルトの magento コードではこれを変更しませんでした。私は app/design/frontend/default/projectname/template/page/switch/language.phtml で作業しています。
したがって、このコードを使用して自分でこれを機能させることができました。
<?php if(count($this->getStores())>1): ?>
<div class="form-language">
<?php foreach ($this->getStores() as $_lang):?>
<a href="<?php echo Mage::getUrl() . '?___store=' . $_lang->getId()?>" title=""><?php echo $this->htmlEscape($_lang->getName()) ?></a>
<?php endforeach;?>
</div>
<?php endif; ?>
しかし今、言語を切り替えるとき。ホームページにリダイレクトされます。使用する必要があることがわかりました:
$_lang->getCurrentUrl()
しかし、これをコードのどこに配置すればよいかわかりません。