Language Flags Modul für Magento 2
Ein Switcher für viele Sprachszenarien
Kowal_LanguageFlags löst das Problem eines wenig lesbaren Sprachumschalters in Magento 2. Statt der Standardliste mit Store-View-Codes sieht der Kunde einen intuitiven Switcher mit Flaggen, Sprachnamen und der Möglichkeit, nicht nur zwischen Store Views, sondern auch zwischen Websites und externen Shops zu wechseln.
Diese Lösung ist besonders dort nützlich, wo:
- ein Shop mehrere Sprachversionen bedient;
- verschiedene Märkte als separate Websites betrieben werden;
- ein Teil des Traffics zu einer anderen Magento-Instanz geleitet werden soll;
- ein einheitlicher Switcher für verschiedene Typen von Zieladressen benötigt wird.
Was das Modul bietet
- Flaggen für Store Views;
- Flaggen für andere Websites in derselben Magento-Instanz;
- Flaggen für beliebige URLs, z. B. zu einem separaten Magento-Shop;
- eigene Bezeichnungen und Kurzkennzeichnungen für Sprachen;
- zwei Darstellungsvarianten:
dropdownundinline; - Unterstützung für den nativen Magento-Switcher und das Widget.
Geschäftliche Vorteile
- schnellere Erkennung der Sprachversion durch den Kunden;
- weniger Fehler bei der Auswahl von Markt oder Sprache;
- professionellere Präsentation eines mehrsprachigen Shops;
- Möglichkeit, mehrere Storefronts bequem in einem Navigationspunkt zu verbinden;
- kürzerer Implementierungsweg als der Aufbau einer dedizierten Komponente von Grund auf.
Technische Vorteile
- Konfiguration über das Administrationspanel;
- Kompatibilität mit dem nativen Magento-Mechanismus für den Store-View-Switch;
- eine Konfiguration für nativen Switcher und Widget;
- ein standardmäßiger Satz fertiger SVG-Flaggen, der während der Installation nach
pub/media/language_flags/kopiert wird; - keine Notwendigkeit, zu Beginn eine separate Datentabelle zu erstellen;
- Möglichkeit der Bereitstellung über Composer.
Fertiger Flaggensatz
Das Modul enthält einen Satz fertiger SVG-Symbole in 24x18, die während bin/magento setup:upgrade automatisch nach pub/media/language_flags/ kopiert werden können.
Verfügbare Flaggen:
atÖsterreichbeBelgienbgBulgariencyZypernczTschechiendeDeutschlanddkDänemarkeeEstlandesSpanieneuEuropäische UnionfiFinnlandfrFrankreichgrGriechenlandhrKroatienhuUngarnieIrlanditItalienltLitauenluLuxemburglvLettlandmtMaltanlNiederlandeplPolenptPortugalroRumänienseSchwedensiSlowenienskSlowakeiukGroßbritannienusVereinigte Staaten
Für wen
Das Modul ist bestimmt für:
- Magento-2-Shops, die in mehreren Märkten tätig sind;
- Installationen mit mehreren Store Views und Websites;
- Projekte, in denen ein Teil der Sprachversionen außerhalb der Haupt-Storefront läuft;
- Teams, die einen klaren Switcher ohne Umbau des Magento-Core implementieren möchten.
Beispielhafte Einsatzszenarien
Ein Magento, viele Store Views
Der Shop verfügt über folgende Versionen:
PLENDE
Jeder davon kann eine eigene Flagge und Bezeichnung zugewiesen werden.
Ein Magento, viele Websites
Der Shop nutzt separate Websites für verschiedene Länder, z. B.:
- Polen
- Deutschland
- Frankreich
Das Modul ermöglicht es, diese Websites im selben Switcher wie die lokalen Store Views anzuzeigen.
Verteilte Storefronts
Ein Teil der Märkte läuft in einer anderen Magento-Instanz oder unter einer anderen Domain. In einer solchen Situation ermöglichen Custom URL Flags, sie dem gemeinsamen Switcher hinzuzufügen.
Ergebnis der Implementierung
Der Kunde erhält einen einheitlichen Sprach- und Markt-Switcher, und der Administrator kann ihn über die Magento-Konfiguration verwalten, ohne zusätzliche Frontend-Komponenten zu erstellen.
Anleitung zur Installation und Konfiguration des Magento 2 Language Flags Moduls
Installation
Installation über Composer
composer require kowal/module-language-flagsbin/magento module:enable Kowal_LanguageFlagsbin/magento setup:upgradebin/magento cache:flushInstallation aus dem Git-Repository
composer config repositories.kowal-language-flags vcs https://github.com/kowalco/language-flagscomposer require kowal/module-language-flagsbin/magento module:enable Kowal_LanguageFlagsbin/magento setup:upgradebin/magento cache:flushZusätzliche Befehle für den Production Mode
bin/magento setup:di:compilebin/magento setup:static-content:deploy -fbin/magento cache:flushSpeicherort der Konfiguration
Administrationspanel:
Stores > Configuration > Kowal > Language FlagsWidget für den CMS-Editor
Das Modul stellt folgendes Widget bereit:
Language Flags SwitcherEs kann eingefügt werden in:
Content > BlocksContent > Pages
Pfad im Editor:
Edit > Insert Widget > Language Flags SwitcherDas Widget unterstützt:
- den Modus
dropdownoderinline; - das Einblenden oder Ausblenden von Sprachnamen;
- eine zusätzliche CSS-Klasse.
Standardflaggen
Während bin/magento setup:upgrade kopiert das Modul die Standard-SVG-Dateien aus:
view/frontend/web/images/flags/in das Verzeichnis:
pub/media/language_flags/Es werden nur fehlende Dateien kopiert, ohne bereits vorhandene Flaggen zu überschreiben.
Allgemeine Konfiguration
Der Abschnitt General Settings enthält Felder zur Steuerung der Funktionsweise des Moduls.
Enable Module
Pfad:
language_flags/general/enabledBedeutung:
Yesaktiviert das Modul;Nodeaktiviert das Modul im Frontend.
Replace Native Store View Switcher
Pfad:
language_flags/general/native_enabledBedeutung:
Yesersetzt den nativen Magento-Switcher durch eine Version mit Flaggen;Nobelässt den nativen Switcher unverändert.
Native Display Mode
Pfad:
language_flags/general/native_display_modeVerfügbare Optionen:
dropdowninline
Bedeutung:
dropdownzeigt die aktuelle Position und eine ausklappbare Liste der übrigen an;inlinezeigt alle Flaggen sofort in einer Zeile an.
Show Language Names
Pfad:
language_flags/general/show_labelsBedeutung:
Yeszeigt Sprachnamen neben den Flaggen an;Noblendet die Namen in der Hauptansicht aus, lässt sie aber für die Barrierefreiheit bestehen.
Fallback to Store View Name
Pfad:
language_flags/general/fallback_to_store_nameBedeutung:
Yesverwendet den Store-View-Namen, wennLabelnicht ausgefüllt wurde;Noverwendet den Store-View-Code in Großbuchstaben.
Inline Flag Gap (px)
Pfad:
language_flags/general/inline_gapBedeutung:
- legt den Abstand zwischen den Elementen des Switchers im Modus
inlinefest; - der Wert wird in Pixeln berechnet;
- der Standardwert ist
8.
Icon Scale (%)
Pfad:
language_flags/general/icon_scale_percentBedeutung:
100behält die Originalabmessungen des Bildes bei;- ein niedrigerer Wert verkleinert Breite und Höhe proportional;
- skaliert die Flaggen in beiden Render-Modi.
Konfiguration der Tabellen mit Flaggen
Das Modul unterstützt drei separate Eintragssätze:
Store View FlagsWebsite FlagsCustom URL Flags
Im Frontend werden die Einträge zu einem gemeinsamen Satz von Switcher-Elementen zusammengeführt.
Store View Flags
Pfad:
language_flags/general/flag_configZweck:
Konfiguration von Flaggen für Store Views, die über den nativen Magento-Mechanismus unterstützt werden.
Formularspalten
Store Code
Wählt einen Store View aus der Magento-Liste aus.
Bedeutung:
- weist einem konkreten Store View eine Flagge zu;
- nutzt den nativen Magento-Mechanismus zum Umschalten des Store Views.
Flag File
Pfad zur Flaggen-Datei, ausgewählt über den integrierten Dateiauswähler.
Bedeutung:
- bestimmt das im Frontend angezeigte Bild;
- kann als
pl.svgoderlanguage_flags/pl.svggespeichert werden; - relative Pfade werden vom Verzeichnis aus aufgelöst:
pub/media/language_flags/Label
Vollständiger Name der Sprache oder des Marktes, z. B.:
PolskiEnglishDeutsch
Bedeutung:
- wird neben der Flagge angezeigt, wenn
Show Language Namesaktiviert ist; - dient auch als Hilfstext für die Barrierefreiheit.
Short Label
Verkürzte Bezeichnung, z. B.:
PLENDE
Bedeutung:
- wird in einer kompakteren Ansicht verwendet;
- kann anstelle des vollständigen Namens genutzt werden.
Website Flags
Pfad:
language_flags/general/website_flag_configZweck:
Konfiguration von Flaggen, die zu anderen Websites in derselben Magento-Instanz führen.
So funktioniert es
- ein Klick führt keinen nativen
store switch postaus; - der Eintrag wird als gewöhnlicher Link zur Base URL der Ziel-Website gerendert;
- die aktuelle Website wird nicht als separate Option hinzugefügt.
Formularspalten
Website
Wählt eine Magento-Website aus der Liste aus.
Bedeutung:
- bestimmt die Ziel-Website für den Eintrag;
- dient dazu, die Basisadresse der Ziel-Storefront abzurufen.
Flag File
Funktioniert genauso wie bei Store View Flags.
Label
Vollständige Bezeichnung, die im Frontend angezeigt wird.
Wenn sie leer bleibt:
- verwendet das Modul den Namen der Website.
Short Label
Verkürzte Bezeichnung, z. B.:
UKDEFR
Wenn sie leer bleibt:
- verwendet das Modul den Website-Code in Großbuchstaben.
Custom URL Flags
Pfad:
language_flags/general/custom_url_flag_configZweck:
Konfiguration von Flaggen, die zu beliebigen URLs führen, z. B. zu einer anderen Magento-Instanz oder zu einem externen Shop.
Formularspalten
URL
Zieladresse des Links.
Beispiele:
https://example.de/https://en.example.com/https://shop.example.cz/
Bedeutung:
- der Eintrag wird als gewöhnlicher
href-Link gerendert; - nutzt nicht den nativen Magento-Mechanismus zum Umschalten des Stores.
Flag File
Funktioniert genauso wie in den übrigen Tabellen.
Label
Vollständige Bezeichnung, die im Frontend angezeigt wird.
Wenn sie leer bleibt:
- versucht das Modul, den Host aus der URL zu verwenden.
Short Label
Verkürzte Bezeichnung für die kompakte Variante.
Wenn sie leer bleibt:
- erstellt das Modul eine Abkürzung auf Basis des Hosts;
- wenn das nicht möglich ist, verwendet es den Wert
URL.
Vorbereitung der Flaggendateien
Empfohlener Speicherort:
pub/media/language_flags/Empfohlene Formate:
svgpng
Beispiele für Dateinamen:
pl.svgen.svgde.svgfr.svgGrundlegender Konfigurationsablauf
- Aktivieren Sie das Modul über
Enable Module. - Entscheiden Sie, ob Sie den nativen Magento-Switcher ersetzen möchten.
- Legen Sie
Native Display Modefest. - Fügen Sie Flaggendateien zu
pub/media/language_flags/hinzu. - Ergänzen Sie
Store View Flags. - Fügen Sie optionale Einträge in
Website Flagshinzu. - Fügen Sie optionale Einträge in
Custom URL Flagshinzu. - Speichern Sie die Konfiguration und leeren Sie den Cache.
Nützliche CLI-Befehle
bin/magento module:status Kowal_LanguageFlagsbin/magento cache:cleanbin/magento cache:flush























