WP 5.9.2. Website für Besucher aus USA nur englische Sprachauswahl anzeigen lassen

  • Hallo,
    ich habe für einen Freund eine mehrseitige Webseite erstellt (deutsch, englisch, chinesisch) - Sprachen umschaltbar über Buttons in der Navigationsleiste. Nun möchte er, daß Webseitenbenutzer aus den USA ausschließlich auf die englische Version zugreifen dürfen. Die anderen Sprachen sollten möglichst gar nicht erst angezeigt werden.

    Ich habe lange gegoogelt, um ein Plugin zu finden, habe aber nur etwas gefunden, wo ich einzelne Inhalte über ein Plugin für bestimmte Länder ausschließen kann, nicht aber den gesamten Bereich einer Sprache.

    Habt Ihr eine Idee, ob es ein Plugin gibt, das genau das tut?
    Würde mich freuen, wenn Ihr mir einen Tipp geben könntet.
    Danke im Voraus und Grüße
    Merida

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Entscheidend wäre zunächst womit Du den Sprachwechsel realisiert hast? Ggfs. gibt es dort bereits eine Geolokalisierung (das ist der Begriff nach dem Du suchst).

  • Hätte dazu deine Idee. Installiere dieses Plugin: https://de.wordpress.org/plugins/geoip-detect/ - damit hast Du die Funktion der Geolokalisierung in deinem Projekt. Beachte die Hinweise zu den verfügbaren Datenbanken in dem Plugin.

    Wenn Du das installiert hast, könnte man in dem Sprachwechsel die für ein bestimmtes Land nicht gewünschte Sprache per CSS ausblenden. Das hier müsste in die functions.php vom Child-Theme oder ein individuelles Plugin:

    Code
    add_filter( 'body_class','my_body_classes' );
    function my_body_classes( $classes ) {
        $record = geoip_detect2_get_info_from_current_ip();
        if( !empty($record->country->isoCode) ) {
           $classes[] = 'country-iso-'.strtolower($record->country->isoCode);
        }
       return $classes;
    }

    Und im CSS dann über die so erzeugte Klasse am body nur die Sprachen im Sprachsel einblenden die gewünscht sind:

    Code
    body.country-iso-us .lang-item { display: none }
    body.country-iso-us .lang-item-en { display: block }

    Habe das jetzt nicht mit deinem Theme getestet, ggfs. musst Du das CSS an deines anpassen.

    Diese Idee hat nur einen Nachteil: die andere Sprache könnte natürlich weiterhin per Direktlink aufgerufen werden. Wenn man das verhindern will, könnte man ggfs. in Polylang die automatische Erkennung der Sprache des Besuchers verwenden. Oder man nimmt einen Hammer ähnlich diesem Ansatz hier: https://gist.github.com/vielhuber/7589…162df2e497fb856

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!