load_plugin_textdomain

  • Hallo,

    bin gerade dabei ein Worpdress-Plugin mit jemanden zu programmieren. Geht alles wunderbar, bis auf verschieden Sprachen. Wir haben eine Dropdownmenu im Admin integriert um die Sprache zu wählen, aber die Sprache ändert sich einfach nicht, obwohl das File gefunden wird und auch geladen wird.

    Hier wird es geladen. echo "1" ist für den Test ob das File auch gefunden wird, die kommt auch.

    PHP
    add_action('init', 'seopagebar_textdomain');
    function seopagebar_textdomain() {
        $seopagebar_options = get_option('seopagebar_options');
        $moFile = "../wp-content/plugins/seopagebar/seo-pagebar_".$seopagebar_options['sprache']. ".mo";
        if(@file_exists($moFile) && is_readable($moFile)) echo "1"; load_plugin_textdomain('seopagebar', $moFile);
    }

    Ein Beispiel der Ausgabe:

    PHP
    <?php _e('Deutsch', 'seopagebar'); ?>

    Die Sprachfile sind als .po und.mo hinterlegt, wie zum Beispiel:

    seo-pagebar_de_DE.mo für Deutsch
    seo-pagebar_en_EN.mo für Englisch

    Jedoch kommt immer nur deutsch. Jemand ne idee?

    mfg

    Sebastian

    • 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

  • if(function_exists('load_plugin_textdomain'))
    load_plugin_textdomain('seopagebar', PLUGINDIR);

    Konstante ist besser, führt direkt in den Pluginpfad.

    die mo-Datei sollte seopagebar-Sprache.mo heißen (bsp: seopagebar-en_US.mo)

  • PLUGINDIR enthält aber nur den relativen Pfad zum Plugin-Basisverzeichnis. Am einfachsten kommt man wohl mit folgendem Konstrukt zum richtigen Pfad:

    PHP
    dirname( __FILE__ )

    Für das mo-File könnte das so aussehen:

    PHP
    $moFile = dirname( __FILE__ )."/seo-pagebar_".$seopagebar_options['sprache']. ".mo";

    Gruß
    Ingo

    Wenn ich helfen konnte, bitte [ Gefällt mir ] klicken. :-)

  • Mit load_plugin_textdomain() kann man nicht die Sprache auswählen, sondern nur sagen, welche Textdomain verwendet werden soll und wo sich die .mo-Files befinden. Die Sprachauswahl geht nach der Einstellung in WPLANG in der Funktion get_locale(). Man kann dann über den Filter 'locale' eingreifen. Das wäre vermutlich der richtige Ansatzpunkt für euch.

Jetzt mitmachen!

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