gettext und Pluralformen

  • Hallo

    Meine bisherigen Erfahrungen mit gettext beschränken sich auf die Anwendung von __() und _e() und das einfache Übersetzen mit poedit.
    Nun wollte ich etwas mit Pluralformen machen und habe mir dazu _n() bzw. _ngettext() angeschaut. Irgendwie will das alles nicht funktionieren, weder findet poedit die Pluralform noch wird irgendwas richtig übersetzt.

    Im Quelltext steht in etwa folgendes:

    PHP
    printf( _n( 'You have ring the bell on time.',
    'You have ring the bell %d times', $n, 'my-domain' ), $n );

    poedit findet nun zwar den ersten String (You have ring the bell one time), den kann ich auch übersetzen, jedoch wird die Pluralform nicht gefunden/angezeigt.
    In der Ausgabe des Scripts wird der Text dann auch nicht übersetzt obwohl es in poedit zumindest für die Singularform eine Übersetzung gibt.

    Ich habe mich im Web schon dumm und dusselig gesucht, finde aber eher widersprüchliche Angaben. Zum Beispiel wird einmal gesagt man müsse bei der Katalogerstellung "nplurals=2; plural=(n != 1)" eintragen (z.B. hier zu finden http://translate.sourceforge.net/wiki/l10n/pluralforms), dann soll es angeblich ohne Klammern (nplurals=2; plural=n != 1;) die richtige Version sein (z.B. laut http://www.gnu.org/software/libc/…-functions.html).
    Durch diesen Text (http://urbangiraffe.com/articles/trans…es-and-plugins/) habe ich mich ebenfalls durchgeackert, leider auch ohne Erfolg.

    Kann mir jemand eine verständliche Anleitung geben wie man Pluralformen mit gettext umsetzt? Vielen Dank schon mal im Vorraus.

    • 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

  • Vom Quellcode sieht es erst mal richtig aus. $n beinhaltet den Zähler und my-domain ist die richtige theme-textdomain, gell? Alles andere wird also korrekt übersetzt?

    Hast du mal anstelle von POEdit das Plugin codestyling localization ausprobiert?

    [size=10]Bitte immer zuerst die Forensuche nutzen und erst danach Deine Fragen hier im Forum stellen, denn sehr vieles wurde schon mehrfach beantwortet. Bitte dabei auch die Forenregeln beachten.
    Kein Support per PN - Fragen gehören ins Forum.[/SIZE]
    [size=8]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/SIZE]

Jetzt mitmachen!

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