Skip to content

Menüs und Sprachumschalter

FG Multilang WP unterstützt zwei voneinander unabhängige Strategien für Navigationen: komplette Menüs können je Theme-Location und Sprache zugeordnet werden, und einzelne Menüeinträge können automatisch auf vorhandene Sprachversionen zeigen.

Ist Menü-Mapping verwenden aktiviert, kann für jede registrierte Theme-Location und jede aktive Sprache ein WordPress-Menü ausgewählt werden.

Bleibt die Auswahl leer, verändert FG Multilang WP die normale Theme-Zuordnung für diese Kombination nicht.

Technisch greift die Funktion in wp_nav_menu_args ein und setzt das Argument menu nur dann, wenn eine gültige konfigurierte Menü-ID gefunden wird.

Ist Menüeinträge automatisch übersetzen aktiviert, verarbeitet das Plugin die aus WordPress geladenen Menüobjekte.

In Zusatzsprachen sucht das Plugin nach der verknüpften Sprachversion. Nur ein Zielpost mit Status publish wird eingesetzt.

Bei erfolgreicher Auflösung ersetzt FG Multilang WP:

  • object_id,
  • URL,
  • sichtbaren Titel des Menüeintrags.

Für Taxonomie-Menüeinträge wird eine verknüpfte Zielsprachversion des Begriffs gesucht. Bei Erfolg werden Objekt-ID, Term-Link und Name ersetzt.

Interne Custom-Links werden mit derselben URL-Auflösung verarbeitet wie Links im Content. Externe Links bleiben unverändert.

Die Einstellung fallback_mode besitzt zwei Werte.

Dies ist der Standard.

Fehlt bei einem Post- oder Taxonomie-Menüeintrag eine verwendbare Übersetzung, wird der Menüeintrag entfernt. Im Sprachumschalter werden auf Einzelinhalten ebenfalls Sprachen ohne öffentlich sichtbare Zielübersetzung ausgeblendet.

Ein Menüeintrag ohne Zielübersetzung bleibt auf dem Originalziel bestehen.

Im Sprachumschalter führt eine Sprache ohne passende Einzelübersetzung auf die Startseite dieser Sprache.

Standardmäßig ist die automatische Einfügung aktiviert.

Der Umschalter kann:

  • in allen Menüs,
  • oder nur in einer konkreten registrierten Theme-Location

ausgegeben werden.

Die Position ist start oder end; Standard ist end.

Beide Shortcodes rufen dieselbe Ausgabe auf:

[fg_language_switcher]
[fgml_language_switcher]

Beispiel mit Inline-Ausgabe und Sprachcodes:

[fg_language_switcher format="inline" label="code_upper"]

Unterstützte Attribute:

Attribut Werte Standard
format list, inline, intern auch menu_items list
label native, name, code_upper, code_lower globale Einstellung
separator Text globale Einstellung
show_current boolesche Textwerte globale Einstellung

Bei show_current werden 0, false, no und nein als falsch interpretiert.

Für Theme-Code steht die Helper-Funktion zur Verfügung:

<?php echo fgml_language_switcher(); ?>

Mit Argumenten:

<?php
echo fgml_language_switcher([
'format' => 'inline',
'label' => 'code_upper',
'separator' => ' / ',
'show_current' => true,
]);
?>

Weitere PHP-Schnittstellen stehen unter Entwicklerschnittstellen.

Vier Beschriftungsmodi sind implementiert:

  • native: nativer Name, beispielsweise Deutsch oder English.
  • name: administrativer Sprachname.
  • code_upper: Sprachcode in Großbuchstaben, beispielsweise DE oder EN.
  • code_lower: Sprachcode in Kleinbuchstaben.

Listenausgabe:

<ul class="fgml-language-switcher fgml-language-switcher--list">
<li class="fgml-language-item fgml-language-en">...</li>
</ul>

Inline-Ausgabe verwendet unter anderem:

<span class="fgml-language-switcher fgml-language-switcher--inline">...</span>

Aktive Einträge erhalten die Klasse .is-active und der Link aria-current="true".

Die globale CSS-Einstellung wird als <style id="fgml-switcher-custom-css"> im <head> ausgegeben. HTML-Tags im gespeicherten CSS werden entfernt.

Auf einem Einzelinhalt verwendet der Umschalter den Permalink einer öffentlich sichtbaren verknüpften Sprachversion.

Existiert keine verwendbare Übersetzung:

  • bei hide: Sprache wird auf Einzelinhalten ausgeblendet,
  • bei fallback: Sprach-Startseite wird verwendet.

Auf Nicht-Einzelansichten verwendet der Umschalter grundsätzlich die jeweilige Sprach-Startseite.

  • Die automatische Menüübersetzung ersetzt den Menü-Titel eines Post- oder Term-Eintrags mit dem Titel beziehungsweise Namen des Zielobjekts. Ein individuell am Menüeintrag gepflegter Titel bleibt in diesem Fall nicht erhalten.
  • Die automatische Einfügung setzt eine theme_location voraus, wenn eine konkrete Menü-Location konfiguriert wurde.
  • Das Plugin bringt kein Frontend-JavaScript für den Sprachumschalter mit.