Fehlernder String in aktueller deutscher Sprachdatei in WP 4.4

  • Hallo zusammen,

    nachdem ich heute alle meine WP-Installationen manuell auf WP 4.4 upgedated hatte, fiel mir bei einigen Websites auf, daß auf der Hauptseite unter Artikeln mit mehreren Kommentaren nicht mehr

    x Kommentare

    steht, sondern

    x Comments

    Inzwischen habe ich als ursächlich herausgefunden, daß von den drei in der Sprachdatei vorhandenen, hier zuständigen Übersetzungs-Strings

    No Comments
    1 Comment
    % Comments

    nur noch die ersten beiden vorhanden sind, der für die Pluralbildung erforderliche String

    % Comments

    hingegen nicht mehr in der Sprachdatei enthalten ist. Interessanterweise tritt das Phänomen aber nur in Blogs mit relativ alten Themes auf, wie z.B. meinem eigenen:

    http://www.zonebattler.net/

    In Blogs mit einem relativ jüngeren Theme (Twenty Ten modifiziert), wie z.B.

    http://www.fuerthwiki.de/verein/

    steht unter den Artikeln weiterhin korrekterweise

    x Kommentare

    Muß also noch eine andere Variable geben, aber die zu finden kriege ich momentan nicht auf die Reihe, da stehe ich irgendwie mir selbst im Weg bzw. auf dem Schlauch. Kann mir jemand freundlicherweise auf die Sprünge helfen, was ich in meiner index.php in

    comments_popup_link(__('No Comments'), __('1 Comment'), __('% Comments'));

    an letzter Stelle einsetzen muß, um wieder zu einem korrekten deutschsprachigen Plural zu gelangen?

    Vielen Dank und noch einen schönen Advents-Sonntag,
    Ralph

    • 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

  • So, ich konnte selbst noch was herausfinden: "Neuere" Themes wie Twenty Ten bringen eine eigene Sprachdatei mit, in der die Strings

    0 Comments
    1 Comment
    % Comments

    nochmal separat enthalten und übersetzt sind. Das scheint Priorität über der allgemeinen WordPress-Sprachdatei zu haben, was je prinzipiell in Ordnung ist. Deswegen werden also die meisten User nix von dem lästigen Phänomen bemerken. Fragt man sich nur, warum die Core-Prorammierer nicht alle drei Strings rausgeworfen haben sondern nur einen, wenn man das an der Stelle als redundant und obsolet erachtet?

    Aber egal: Was kann ich jetzt tun?

    1) In meinem Theme "% Comments" durch "% Kommentare" überschreiben (quick & dirty)

    2) Für mein Theme extra deswegen eine eigene Sprachdatei anlegen (aber wie?)

    3) In die offizielle WP-Sprachdatei die fehlende Zeile "% Comments" samt Übersetzung wieder einfügen (auch nicht trivial, wenn man bis dato nur mit Poedit Bestehendes geänadert hat. Hält überdies nur bis zum nächsten offiziellen Update.)

    Was schlagt Ihr vor?

    Vielen Dank und beste Grüße,
    Ralph

  • Übersetzt ist der String im WordPress-Core.

    Kann es sein, dass dein Theme eigene Sprachdateien mitbringt oder du im Backend die Meldung bekommst, dass du Übersetzungen aktualisieren kannst (Unter „Dashboard“ bei „Aktualisierungen“)?

  • Übersetzt ist der String im WordPress-Core.

    Eben nicht (mehr)! In den mit WP 4.4 mitgelieferten deutschen Lokalisationsdateien de_DE.mo / de_DE.po ist dieser String weggefallen, wie ich eingangs schrub. Womöglich aus Versehen, aber er ist jedenfalls weg. Daher rührt ja auch das Problem...

    Kann es sein, dass dein Theme eigene Sprachdateien mitbringt oder du im Backend die Meldung bekommst, dass du Übersetzungen aktualisieren kannst (Unter „Dashboard“ bei „Aktualisierungen“)?

    Weder/noch, mein Theme hat keine eigene Sprachdatei, also gibt es da auch nix zu aktualisieren. Ergo greifen die coreseitigen Übersetzungen, und da fehlt neuerdings der besagte String... Würde ihn ja gerne einfügen, aber wie? Ursächliche Behebung wäre m.E. angesagt, also Wiederaufnahme in die de_DE.po!

    Beste Grüße,
    Ralph

  • So, gelöst. In der allgemeinen Sprach-Datei de_DE.PO habe ich unter die Einträge


    #: wp-includes/comment-template.php:880
    msgid "No Comments"
    msgstr "Keine Kommentare"

    #: wp-includes/comment-template.php:882
    msgid "1 Comment"
    msgstr "1 Kommentar"


    soeben manuell hinzugefügt:


    #: wp-includes/comment-template.php:884
    msgid "% Comments"
    msgstr "% Kommentare"


    (wobei ich die 884 geraten/ausprobiert habe). Abgespeichert, in Poedit geladen, kompiliert gespeichert und das Ergebnis hochgeladen: Funzt wieder!

    Würde das gerne an die für die Sprachdatei zuständigen Kollegen weiterreichen, kann das jemand für mich erledigen? Danke!

    Beste Grüße,
    Ralph

  • ich habe mir nun extra twenty ten installiert :-)

    da find ich

    PHP
    <?php comments_popup_link( __( 'Leave a comment', 'twentyten' ), __( '1 Comment', 'twentyten' ), __( '% Comments', 'twentyten' ) ); ?>

    und es steht ganz korrekt im Frontend:
    Hinterlasse einen Kommentar

    beim anderen Beitrag
    1Kommentar

    beim anderen wo 2 sind
    2Kommentare

    und ich habe die im twenty ten Ordner vorhandene pot Datei nicht übersetzt,


    grad irrtiert ich bin .. gebe ich zu.

  • Florian: Interessant, danke! Aber schiefgelaufen ist bei mir nix, denn der von Dir verlinkte String

    %s Comment

    ist ein anderer als der von mir als fehlend angemahnte String

    % Comments

    Offenbar hat man da was umgestellt und eine "veraltete" Form halbherzig/teilweise entfernt, die aber noch von allerlei Themes benutzt wird...


    Monika: Dann wirf mal die Sprachdatei von Twenty Ten raus (aus dem neuen allgemeinen Language-Ordner) , so daß nur die Core-Übersetzung übrig bleibt. Dann sollten die Strings für keinen oder einen Kommentar weiterhin in Deutsch erscheinen, nicht aber der für mehrere...


    Beste Grüße,
    Ralph

  • ralph,

    wenn ein Theme einen String selbst einfügt, dann sollte es meiner Meinung nach auch selbst die Übersetzung bereitstellen und nicht auf eine Übersetzungs aus dem Core vertrauen – denn wenn die sich ändern, dann hast du genau die Auswirkung. Und das hat nichts mit „halbherzig/teilweise“ zu tun, denn die Core-Übersetzung ist nun mal für den Core gedacht, nicht für Theme-Strings die eventuell zufällig gleich lauten.

  • Florian, ich glaube, wir reden aneinander vorbei. In der deutschen Core-Sprachdatei stand bis zur Version 4.3 drin:


    [COLOR=#333333]#: wp-includes/comment-template.php:880[/COLOR]
    [COLOR=#333333]msgid "No Comments"[/COLOR]
    [COLOR=#333333]msgstr "Keine Kommentare"[/COLOR]

    [COLOR=#333333]#: wp-includes/comment-template.php:882[/COLOR]
    [COLOR=#333333]msgid "1 Comment"[/COLOR]
    [COLOR=#333333]msgstr "1 Kommentar"[/COLOR]

    [COLOR=#333333]#: wp-includes/comment-template.php:884[/COLOR]
    [COLOR=#333333]msgid "% Comments"[/COLOR]
    [COLOR=#333333]msgstr "% Kommentare"


    Und in der aktuellen Version 4.4 steht nur noch, aber auch immer noch drin:

    [/COLOR][COLOR=#333333]#: wp-includes/comment-template.php:880[/COLOR]
    [COLOR=#333333]msgid "No Comments"[/COLOR]
    [COLOR=#333333]msgstr "Keine Kommentare"[/COLOR]

    [COLOR=#333333]#: wp-includes/comment-template.php:882[/COLOR]
    [COLOR=#333333]msgid "1 Comment"[/COLOR]
    [COLOR=#333333]msgstr "1 Kommentar"[/COLOR]


    Und das führt bei Themes ohne eigene Sprachdatei (und davon kenne ich eine ganze Menge) automatisch und zwangsläufig zu dem von mir beschriebenen Verhalten. Besagtes Theme fügt(e) hier überhaupt nix hinzu, es fiel im Gegenteil eine seit Jahren vorhandene Übersetzung aus dem Core weg!

    Schönen Abend,
    Ralph


  • ja wozu sollt ich denn das tun?

    regelmäßigst gibts es Veraltetes,
    erst gestern hat mich was irre genarrt (oder ich mich narren lassen)

    dann passe ich es an


    dazu nutze ich das Plugin Theme Check für den allerersten Check

    kostet eindeutigst weniger Nerven und geht ziemlich rasch :-)

  • Zitat

    Und das führt bei Themes ohne eigene Sprachdatei (und davon kenne ich eine ganze Menge) automatisch und zwangsläufig zu dem von mir beschriebenen Verhalten.

    Sorry, aber das ist nicht richtig. Ja, der String wurde geändert von „% Comments“ auf „%s Comments“. Diese Änderung wurde aber beim Upgrade von WordPress 4.3 auf 4.4 auch in der Sprachdatei berücksichtigt (logischerweise). Das hier ist ein Auszug aus der de_DE.po meiner Installation:

    Code
    #. translators: %s: number of comments
    #: wp-includes/comment-template.php:874
    msgid "%s Comment"
    msgid_plural "%s Comments"
    msgstr[0] "%s Kommentar"
    msgstr[1] "%s Kommentare"

    Und wenn dein Theme, wie du sagst, „% Comments“ nicht verwendet, dann wurde das während des Updates durch „%s Comments“ ersetzt, wobei die neue Sprachdatei perfekt greift. Da du dein Problem aber beheben konntest, indem du das folgende eingetragen hast, bedeutet das, dass in deinem Theme irgendwo der String „% Comments“ vorkommen muss, da aus dem Core nur noch „%s Comments“ geliefert wird.

    Code
    #: wp-includes/comment-template.php:884
    msgid "% Comments"
    msgstr "% Kommentare"

    Und das wiederum heißt, dass sich das Theme um die Übersetzung kümmern muss, nicht der Core.

    Edit: Das hier habe ich gerade eben erst gesehen -.-

    Code
    comments_popup_link(__('No Comments'), __('1 Comment'), __('% Comments'));

    Das ist genau das, was ich weiter oben in meiner anderen Anwort gemeint habe. Du schreibst einen englischen String in ein Theme, ohne die Übersetzung bereitzustellen und vertraust darauf, dass sich im Core keine Strings ändern.

    Einmal editiert, zuletzt von FlorianBrinkmann (13. Dezember 2015 um 19:20)

  • Ich habe keinen englischen String in ein Theme geschrieben, ich habe dort einen vorgefunden und niemals verändert. Bis dato funktionierte der vollständig, nach dem Update auf WP 4.4 nur noch zu zwei Dritteln. Ich konnte das fehlende Drittel mittlerweile wieder "nachrüsten", und damit kann die Akte geschlossen werden. "Abwärtskompatibilität" halte ich nebenbei bemerkt für keine schlechte Sache.

    Vielen Dank und beste Grüße,
    Ralph

Jetzt mitmachen!

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