Auf Textdomain von Wordpress zugreifen

  • Hallo liebe WP-Gemeinde,

    ich habe folgendes Problem, das ich mir nach längerer Suche nicht erschließen konnte.

    Ich habe für meine Website ein Seitentemplate erstellt (Theme: Twenty Thirteen). Auf dieser Vorlage gebe ich alle Autoren aus. Die Autoren werden in einer Tabelle (<table>) aufgelistet. Bis hierher funkioniert alles gut.

    Die Tabelle hat verschiedene Spaltenüberschriften (<th>): Vorname, Nachname, E-Mail-Adresse etc.

    Nun dachte ich mir, dass ich diese Überschriften lokalisieren kann in dem ich beispielsweise schreibe:

    PHP
    <?php _e('First Name'); ?>

    Leider übersetzt mir Wordpress diese Phrase nicht, obwohl es in der Textdomain - sprich der PO/MO-Datei - enthalten ist und diese auch geladen ist (via

    PHP
    <?php load_default_textdomain() ?>

    )

    Ich wollte jetzt nicht unbedingt eine eigene Sprachdatei anlegen, sondern mich aus dem bisher bestehenden "bedienen".

    Wäre toll, wenn mir jemand einen Tipp oder Hinweis gibt, damit ich die Zusammenhänge besser verstehe und ggf. eine Lösung finde. Danke im Voraus!

    Gruß
    Sergeij

    • 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

  • Leider übersetzt mir Wordpress diese Phrase nicht, obwohl es in der Textdomain - sprich der PO/MO-Datei - enthalten ist


    In welcher?

    In der wp-content/languages/de-DE.po finde ich nur:

    Code
    #: wp-includes/user.php:1654
    msgctxt "Display name based on first name and last name"
    msgid "%1$s %2$s"
    msgstr "%1$s %2$s"

    Und in den wp-content/languages/themes/... finde ich nichts bei den Standard-Themes.

  • Hallo Melewo,

    wenn ich die globale Variable $l10n var_dumpe, dann finde ich es dort. Ob es allerdings direkt in der MO/PO-Datei steht, habe ich nicht überprüft, da ich davon ausgehe, dass in der Variable $l10n alle Strings gelistet werden (so wie es die Dokumentation sagt).

    Ich habe folgendes gemacht:

    PHP
    <?php
    load_default_textdomain();
    echo '<pre>';
    var_dump($l10n);
    echo '</pre>';
    ?>

    Da erscheint ein fürchterlich großes Array, in dem aber alles korrekt gelistet wird. Ich habe den Code von einem Seitentemplate meines Twenty Thirteen Childtheme aus aufgerufen.

    Danke für jede Rückmeldung.

    Ich bin in diesem Komplex sehr unerfahren, also probiere gerade damit rum.

    Gruß
    Sergeij

  • Ich habe folgendes gemacht:

    PHP
    <?php
    load_default_textdomain();
    echo '<pre>';
    var_dump($l10n);
    echo '</pre>';
    ?>


    Damit erhalte ich auch nur dieses Array, in dem zwar First Name enthalten, jedoch nicht als eigenständiger String.

  • Hallo Melewo,

    also ich benutze das aktuelle Wordpress zusammen mit Twenty Thirteen. Wenn ich meinen o.g. Code auf einer Seite ausführe (also im Code des page templates), dann finde ich u.a.:

    PHP
    ["First Name"]=>      object(Translation_Entry)#3366 (9) {        ["is_plural"]=>        bool(false)        ["context"]=>        NULL        ["singular"]=>        string(10) "First Name"        ["plural"]=>        NULL        ["translations"]=>        array(2) {          [0]=>          string(7) "Vorname"          [1]=>          string(0) ""        }

    Es müsste theoretisch drinstehen. Wenn du in deinem Adminbereich auf deine Profilseite gehst (wo du Name und Beschreibung etc. ändern kannst), gibt es ja das Feld "Vorname".

    Ich weiß leider nicht weiter. :(

    Gruß
    Sergeij

  • Hallo Melewo,

    ich hab's. Die Wordpress-Funktion load_default_textdomain() läd scheinbar auch die Textdomain von bbpress, das ich installiert habe. Und dort steht der o.g. Eintrag dann drin.

    Müsste es nicht trotzdem übersetzt werden, wenn ich es lade?

    Gruß
    Sergeij

  • Kommst Du nicht einfacher zurecht, wenn Du Dir den Poedit nimmst und damit die wp-content/languages/themes/Dein-Theme bearbeitest?

  • Danke dir, Melewo. Ich werde das Ansinnen erstmal zurückstellen. Da ich nur an einem Seitentemplate arbeite und nicht an einem Plugin, lohnt sich der Aufwand nicht. Ich habe das Template zwar so geschrieben, dass ich es jederzeit weitergeben kann, aber ich will dafür nicht extra eine Po/Mo Datei angelegen.

    Wie gesagt: trotz dem Danke!

    Gruß Sergeij

Jetzt mitmachen!

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