首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Magento2.4在标头中添加自定义语言开关

Magento2.4在标头中添加自定义语言开关
EN

Stack Overflow用户
提问于 2022-09-19 18:18:52
回答 2查看 89关注 0票数 0

我在Magento2.4.4中创建了一个自定义标题,我希望包括语言开关,而不是默认的下拉视图。

我只想包含到第二语言的链接.

因此,如果我有两种语言&英语&法语,我只想在标题处显示法语,所以当用户点击它时,它应该带他们到翻译过的页面,而不是主页。

我想要的截图

EN

回答 2

Stack Overflow用户

发布于 2022-09-21 07:15:33

Hi @Zee我们可以在设计文件夹中使用phtml文件来创建一个语言转换程序,如下面的app/design/frontend/vendor/Module/Magento_Store/templates/switch/languages.phtml

代码语言:javascript
复制
<?php if (count($block->getStores())>1) : ?>
<?php $id = $block->getIdModifier() ? '-' . $block->getIdModifier() : '' ?>
<div class="switcher language switcher-language" data-ui-id="language-switcher" id="switcher-language<?= $block->escapeHtmlAttr($id) ?>">
    <strong class="label switcher-label"><span><?= $block->escapeHtml(__('Language')) ?></span></strong>
    <?php
        $currentWebsite = $helper->getCurrentWebsiteName();
    ?>
    <?php if($currentWebsite == 'Qatar'){ ?>
        <div class="actions dropdown options switcher-options">
            <div class="action toggle switcher-trigger"
                 id="switcher-language-trigger<?= $block->escapeHtmlAttr($id) ?>">
                <strong class="view-<?= $block->escapeHtml($block->getCurrentStoreCode()) ?>">
                    <?php foreach ($block->getStores() as $_lang) : ?>
                        <?php if ($_lang->getId() != $block->getCurrentStoreId()) : ?>
                            <strong class="view-<?= $block->escapeHtml($block->getCurrentStoreCode()) ?>">
                                <span>
                                    <a class="language-switcher-link" href="<?= $block->escapeUrl($block->getViewModel()->getTargetStoreRedirectUrl($_lang)) ?>">
                                        <?php if($_lang->getName() == "Arabic"){ ?>
                                            <?= $block->escapeHtml("عربي") ?>
                                        <?php }else{ ?>
                                            <?= $block->escapeHtml($_lang->getName()) ?>
                                        <?php } ?>
                                    </a>

                                </span>
                            </strong>
                        <?php endif; ?>
                    <?php endforeach; ?>
                </strong>
            </div>
        </div>
    <?php  }else{ ?>
        <div class="actions dropdown options switcher-options">
            <div class="action toggle switcher-trigger"
                 id="switcher-language-trigger<?= $block->escapeHtmlAttr($id) ?>"
                 data-mage-init='{"dropdown":{}}'
                 data-toggle="dropdown"
                 data-trigger-keypress-button="true">
                <strong class="view-<?= $block->escapeHtml($block->getCurrentStoreCode()) ?>">
                    <span><?= $block->escapeHtml($block->getStoreName()) ?></span>
                </strong>
            </div>
            <ul class="dropdown switcher-dropdown"
                data-target="dropdown">
                <?php foreach ($block->getStores() as $_lang) : ?>
                    <?php if ($_lang->getId() != $block->getCurrentStoreId()) : ?>
                        <li class="view-<?= $block->escapeHtml($_lang->getCode()) ?> switcher-option">
                            <a href="<?= $block->escapeUrl($block->getViewModel()->getTargetStoreRedirectUrl($_lang)) ?>">
                                <?= $block->escapeHtml($_lang->getName()) ?>
                            </a>
                        </li>
                    <?php endif; ?>
                <?php endforeach; ?>
            </ul>
        </div>
    <?php } ?>
</div>
票数 0
EN

Stack Overflow用户

发布于 2022-09-21 11:15:28

您可以使用下面的代码来存档您的需求。

在下面的答案中,我假设您知道如何获取存储数据。

代码语言:javascript
复制
<?php
$currentStore = "English"; // THIS SHOULD BE DYNAMIC
$switchStore = "French"; // THIS SHOULD BE DYNAMIC
$URL = 'https://demo.com/product.html?___store='. $currentStore .'&amp;___from_store='.$switchStore
?>
<a href="#" onclick="window.location.href='<?= $URL ?>'"> <?= __('STORE_NAME') ?></a>

希望这对你有用。

谢谢。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73777705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档