Problem beim Theme-Lokalisieren

  • Hallo zusammen, ich bin dabei, das wunderbare Theme Hemingway mit Hilfe von gettext zu internationalisieren - zuerst einmal auf diese Weise korrekt und flexibel auf deutsch zu übersetzen und für polyglot fit zu machen. Ich hatte eigentlich auch vor, das Ergebnis dann allgemein zugänglich zu machen... Das klappt auch alles ganz gut, ein bisschen Wordpress-Erfahrung habe ich auch schon.

    Nun aber ein Problem, bei dem ich partout nicht weiterkomme. Hemingway ruft an einer Stelle die WP-Funktion comments_popup_link() auf, um je nach Situation auch die Zahl der vorhandenen Kommentare für einen Beitrag anzuzeigen. Nun habe ich also folgenden Code im Theme erstellt:

    PHP
    <?php comments_popup_link(__('no comments','hemingwayloc'), __('1 comment','hemingwayloc'), __('% comments','hemingwayloc')); ?>

    Ärgerlicherweise erwartet aber anscheinend poedit nach einem %, wie es meist ja auch ist, einen Bezeichner, findet den nicht und spuckt mir die Fehlermeldung aus:

    Code
    de_DE.po:325: 'msgstr' is not a valid PHP format string, unlike 'msgid'. Reason: In the directive number 1, the character 'K' is not a valid conversion specifier.

    In meiner .po schreibt poedit ich folgendes:

    Code
    #: index.php:17
    #, php-format
    msgid "% comments"
    msgstr "% Kommentare"

    Offensichtlich erkennt also poedit, dass es in den "php-format"-Modus geht und sucht nach einem "conversion specifier". So. Nun bin ich doch etwas irritiert. 1. sollte das doch auch funktionieren, wenn nichts da steht (das ist bei dieser Wordpress-Funktion nunmal so) und 2. warum meckert poedit nicht bei "% comments", sondern nur bei "% Kommentare"? Wenn ich z.B. "% cKommentare" schreibe, parsed poedit ohne Probleme...

    Nun suche ich schon seit einer Weile nach einer Lösung für dieses Problem und habe nichts finden können. Allerdings kann ich mir nicht vorstellen, dass es noch nicht gelöst wurde. Schließlich müsste ja der Großteil der existierenden Themes auf die comments-Funktion zugreifen und diese Kombination irgendwie gettexten...
    Vielleicht habt Ihr einen Hinweis? Habe ich Tomaten auf den Augen? Ich würde mich sehr über eine Antwort freuen!
    Grüße wordy.

    • 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

  • Ich rate jetzt einfach mal völlig ins Blaue, 5% Chance dass es richtig ist. ;-)

    Code
    #: index.php:17
    #, php-format
    msgid "%s comments"
    msgstr "%s Kommentare"


    Und dann eben auch im Template ändern. Ich vermute, er braucht einfach einen nachfolgenden lowercase Bezeichner...

    wpseek.com - Die WordPress-Code-Suchmaschine

  • Leider nein

    Hallo Alphawolf. Sorry, hatte ich vergessen zu erwähnen. Habe ich auch schon versucht. Aber dann wird mir effektiv von Wordpress ausgespruckt z.B. "3s comments". Der Platzhalter ist, wie auch im WP-Wiki beschrieben anscheinend nur das "%". Andere Idee?

    Einmal editiert, zuletzt von wordy (7. Mai 2007 um 17:21)

  • Das gleiche Problem hier

    Hi,

    auch hier das gleiche Problem *nerv*

    Ich "löse" es vorerst mal durch die Übersetzung zu "Bisher % Kommentare". Aber es wäre schon nett, wenn Poedit einem nicht die Freiheit bei der Übersetzung nehmen würde...

    Edit: Das will auch nicht - "% ..." scheint irgend ein Steuerbefehl zu sein. Sowas... Dann eben "Kommentare vorhanden" sowie "Comments available".

    Grüße
    Andreas

    Einmal editiert, zuletzt von nd1012 (24. März 2011 um 08:38)

  • Andere Lösung

    Hi, nochmal ich,

    ein anderer Vorschlag:

    Code
    [size=10]
    comments_number(__([/SIZE][size=10][COLOR=#008200][size=10][COLOR=#008200]'No comments (yet)'[/COLOR][/SIZE][/COLOR][/SIZE][size=10],[/SIZE][size=10][COLOR=#008200][size=10][COLOR=#008200]'wpcss'[/COLOR][/SIZE][/COLOR][/SIZE][size=10]),__([/SIZE][size=10][COLOR=#008200][size=10][COLOR=#008200]'One comment'[/COLOR][/SIZE][/COLOR][/SIZE][size=10],[/SIZE][size=10][COLOR=#008200][size=10][COLOR=#008200]'wpcss'[/COLOR][/SIZE][/COLOR][/SIZE][size=10]),str_replace('%s','%',__([/SIZE][size=10][COLOR=#008200][size=10][COLOR=#008200]'%s comments available'[/COLOR][/SIZE][/COLOR][/SIZE][size=10],[/SIZE][size=10][COLOR=#008200][size=10][COLOR=#008200]'wpcss'[/COLOR][/SIZE][/COLOR][/SIZE][size=10])))
    [/SIZE]



    Zwar nicht gerade subtil, aber effektiv. Hoffe das hilft weiter...

    Grüße
    Andreas


  • Edit: Das will auch nicht - "% ..." scheint irgend ein Steuerbefehl zu sein. Sowas... Dann eben "Kommentare vorhanden" sowie "Comments available".

    Hi

    Ich bin kein Programmierer aber ich vermute das hat irgendwas mit den
    PHP Parser Einstellungen zu tun.
    Zu finden sind die Einstellungen im PoEdit unter Datei>Einstellungen>Parser>PHP>Bearbeiten
    Ich habe im Netz zwar verschiedene Fremdsprachige (jede Sprache die das Wort Kommentar mit "K" beginnt) Foreneinträge gefunden die das selbe Problem beschreiben, aber eine Lösung scheint es nicht zu geben.

    Andreas
    Ich verstehe nicht was Du mit Deinem letzten Vorschlag meinst.
    Was bedeutet die Code Zeile?

    Lg
    Lejla

  • Hi,

    den PHP-Parser von Poedit möchte ich nur ungerne anfassen, der sollte besser von Haus aus funktionieren.

    Zu der Zeile Code - was ich gemacht habe, ist eigentlich nur am Ende der Zeile zu sehen:

    Der Schlüssel lautet "%s comments available", wobei ja der Platzhalter für die Anzahl der Kommentare eigentlich "%" und nicht "%s" ist. Aber ohne das "s" macht der Name in Poedit bekanntermaßen Probleme - deshalb wird anschließend durch str_replace das "%s" in "%" ersetzt.

    Zum Beispiel wird in der deutschen Übersetzung aus "%s comments available" der Wert "%s Kommentare vorhanden" und anschließend (nach str_replace) kommt "% Kommentare vorhanden" heraus, was von WordPress korrekt interpretiert werden kann. Eigentlich ganz simpel, aber etwas umständlich...

    Grüße
    Andreas

  • Aha verstehe. Ist aber leider keine Lösung für mich.
    Ich frage mich wie es denn die anderen machen.
    Jeder schreibt über PoEdit aber niemand hat das Problem. Komisch wirklich.
    Lg
    Lejla

  • Hi,

    ja, mein Weg ist nur eine Lösung, wenn man den Code des Themes ändern möchte bzw. kann. Ich habe dazu noch eine Aussage über Google gefunden:

    Zitat

    One other thing worth mentioning. PoEdit might give you an error related to “% comments” while you try to save the file (usually when you have a K preceding it like in German, “% Kommentare”). Usually if you just ignore the error, it will save fine. I will try and fix that comment translation issue in the next release.



    (Quelle: http://www.appthemes.com/blog/how-to-tr…ordpress-theme/)

    Ob es so auch funktioniert kann ich jetzt nicht mehr sagen. Der Artikel ist vom Sommer 2009 - ob das Problem wirklich noch behoben wird steht in den Sternen...

    Grüße
    Andreas

Jetzt mitmachen!

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