Skip to main content
1 of 3

This is a lot closer. The switcher now will not display the link if the entry is not enable for other site. The index part isn't perfect. If you go to /blog and change the language to for example german it will work: /blog/de. But then if you switch the language again to for example french it will go to /fr/de/blog

            <!-- entry -->
        {% if entry is defined %}

            {% for siteForEntry in entry.getSupportedSites %}

                {% set site = craft.app.getSites.getSiteById(siteForEntry.siteId) %}

                {% if site.id != entry.siteId %}

                    {% set entryForOtherSite = craft.entries.id(entry.id).site(site).one() %}

                    {% if entryForOtherSite is not null %}

                        <a href="{{ entryForOtherSite.getUrl() }}">{{ site.language }}</a>

                    {% endif %}

                {% endif %}
                   
            {% endfor %}

        <!-- index -->
        {% else %}

            {% set localizedUrlsArray = seomatic.helper.getLocalizedUrls() %}

            {% for localizedUrls in localizedUrlsArray %}

                <a href="{{ localizedUrls['url'] }}"> {{ localizedUrls['language'] }}</a>

            {% endfor %}

        {% endif %}