BLOG

nplurals: Plural-Formel kaputt-importiert - immer "1 Kommentar"

Nach dem jüngsten Update habe ich mich gewundert, warum ein offensichtlich unkommentierter Blogbeitrag mit der Bemerkung "1 Kommentar" versehen war. Genauere Recherche ergab als Ursache, dass format_plural() für die Zahl 0 die Singularbeschreibung zurückgab.

Oder in anderen Worten: Der Aufruf der Funktion

format_plural(0, '1 comment', '@count comments');

gab die deutsche Übersetzung von "1 comment" und nicht etwa von "0 comments" wieder.

Ein Blick in die Datenbank ergab, dass dort als Pluralformel mittlerweile nicht mehr das übliche ($n!=1), sondern ($n>1) stand. Dies ist sprachlich natürlich nicht korrekt, da es nun mal "0 Kommentare" oder "0.5 Stunden" heißt und nicht etwa "0 Kommentar" und "0.5 Stunde".

Die Ursache dieses Problems liegt darin, dass die Pluralformel, auf die format_plural() als Grundlage für die Unterscheidung zwischen Singular und Plural zugreift, mit jeder .po-Datei überschrieben werden kann bzw. wird, und in diesem Fall hatte es zur Folge, dass das letzte der vielen aktualisierten Module den unerwünschten Wert eingetragen hat.

Ich persönlich halte es daher gar nicht für sinnvoll, dass diese Formel in jeder .po-Datei mitgeliefert wird und bestehende Werte überschreiben kann. Wie in diesem Fall zu sehen ist, zieht das nach sich, dass man bei jedem Update überprüfen muss, ob die Formel denn noch richtig ist. Sinnvoller fände ich es, wenn sie sich nur über die Verwaltungsseiten ändern ließe, da eigentlich kein Bezug zwischen Modul und Formel besteht, sondern nur zwischen Sprache und Formel. Um unbedarfte User davor zu schützen, unsinnige Formeln zu speichern, könnte man ja in irgendeiner Form eine Standardformel hinterlegen.

Im Übrigen ist aber auch die Formel (n!=1) etwas ungenau, da es im Deutschen "-1 Punkt" heißt. Insofern müsste die Formel also sogar wie folgt lauten:

(n!=1)&&(n!=0-1)

Die 0 ist dabei erforderlich, um der Überprüfung durch den Formelparser standzuhalten.

Kommentar hinzufügen

Der Inhalt dieses Feldes wird nicht öffentlich zugänglich angezeigt.
Mit dem Absenden dieses Formulars, akzeptieren Sie die Datenschutzrichtlinie von Mollom.