
Language-Selector in Multishop-Umgebung (nach Sprachen geteilt) realisieren
#1
Geschrieben: 01 October 2023 - 09:58
M.f.G.
E. Kusnezov
www.stahldeko-shop.de
www.stahldeko-shop.com
#2
Geschrieben: 10 October 2023 - 10:58
Ich meine, das wird so nicht out-of-the-box unterstützt, ich würde es an deiner Stelle mit einem Workaround über den Menu-Builder probieren.
Du baust dir selbst ein Menulink im Deutschen Shop mit einer englischen Flagge, die stumpf auf deinen Englischen Shop verlinkt, und das gleiche nochmal, aber anders rum im Englischen Shop, also einen weiteren Menulink mit deutscher Flagge, die auf den deutschen Shop zeigt.
Der Menu Builder ist bei jedem Smartstore-Shop dabei (ab Community Edition) und im Admin zu finden unter https:// ... /admin/menu/list/
Screenshot:
menulinkbearbeiten.jpg 65.66K
0 Anzahl Downloads
#3
Geschrieben: 10 October 2023 - 13:28
das wird so nicht out-of-the-box unterstützt
habe bereits über die TopBar-View-Erweiterung realisiert.
Dank an Herrn Schmerge, hilfsbereite Smartstore-Entwickler und wieder mal an ChatGPT:
@using Microsoft.EntityFrameworkCore; @{ if (Request?.RouteValues?.TryGetValueAs<Smartstore.Core.Seo.UrlRecord>("__UrlRecord", out var urlRecord) ?? false) { var otherSlug = await CommonServices.DbContext.UrlRecords .AsNoTracking() .Where(x => x.EntityId == urlRecord.EntityId && x.EntityName == urlRecord.EntityName && x.IsActive && x.Id != urlRecord.Id) .OrderByDescending(x => x.Id) .Select(x => x.Slug) .FirstOrDefaultAsync(); if (!string.IsNullOrEmpty(otherSlug)) { if (urlRecord.LanguageId == 0) // Für Deutsch { <div class="dropdown language-selector"> <a class="menubar-link" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" href="#"> <span><img src="/images/flags/de.png" alt="in deutscher Sprache"></span> <i class="fa fa-angle-down"></i> </a> <div class="dropdown-menu" aria-labelledby="dLabel"> <a href="#" title="in Deutsch (DE)" class="dropdown-item disabled" data-selected="true" data-abbreviation="Deutsch"> <img src="/images/flags/de.png" alt="in deutscher Sprache"> <span>Deutsch</span> </a> <a href="https://www.domain.com/@otherSlug/" title="Link to @otherSlug in English language." class="dropdown-item" data-selected="false" data-abbreviation="English"> <img src="/images/flags/us.png" alt="Link to @otherSlug in English (EN)."> <span>English</span> </a> </div> </div> } else if (urlRecord.LanguageId == 2) // Für Englisch { <div class="dropdown language-selector"> <a class="menubar-link" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" href="#"> <span><img src="/images/flags/us.png" alt="in English language"></span> <i class="fa fa-angle-down"></i> </a> <div class="dropdown-menu" aria-labelledby="dLabel"> <a href="#" title="in English (EN)." class="dropdown-item disabled" data-selected="true" data-abbreviation="English"> <img src="/images/flags/us.png" alt="in English language."> <span>English</span> </a> <a href="https://www.domain.de/@otherSlug/" title="@otherSlug in Deutsch (DE)" class="dropdown-item" data-selected="false" data-abbreviation="Deutsch"> <img src="/images/flags/de.png" alt="@otherSlug in deutscher Sprache"> <span>Deutsch</span> </a> </div> </div> } } } }
M.f.G.
E. Kusnezov
www.stahldeko-shop.de
www.stahldeko-shop.com
#4
Geschrieben: 16 October 2023 - 12:15
Du hast dann aber ein individuelles Stück Code, das bei jedem Update übertragen und auch mal vielleicht mitaktualisiert werden muss, ob sich das für deinen Use Case lohnt?