Seite 1 von 1

Pluralform funktioniert nicht

Verfasst: Freitag 15. August 2014, 15:01
von Hellstorm
Hallo,

wenn ich folgenden Code habe:

Code: Alles auswählen

        length = 2
        eins = "eins"
        zwei = "zwei"
        test1 = self.tr("1: {1}, 2: {2}", "Ohne format", length)
        test2 = self.tr("1: {1}, 2: {2}".format(eins, zwei), "Mit format", length)
und anschließend mit pylupdate5 eine ts-Datei erstelle, funktioniert im zweiten Fall keine Pluralform. Also er zeigt mir im Qt Linguist nur das „Übersetzung Deutsch“-Feld an, aber nicht das „Übersetzung Deutsch (Plural)“-Feld. Er zeigt dort auch nicht den Kommentar an, also denke ich, dass alles nach „format“ wohl ignoriert wird.

Weiß jemand, woran das liegt? Ich kann mir nicht ganz vorstellen, dass PyQt mit dem format nicht zurecht kommt. Oder gibt es da andererseits noch eine bessere Lösung? Mir fällt ja auf, dass ich am besten die Zahlenkonvertierung ja auch noch je nach Locale vornehmen lassen muss (also Dezimaltrenner oder sonstwas). Wie würde ich denn sowas machen?

Diese Methode mit %s, mit der ich mich noch nie beschäftigt habe, funktioniert auch nicht. Die scheint mir aber sowieso etwas komisch zu sein, weil ich dort ja die Reihenfolge nicht ändern kann.

Danke!

Re: Pluralform funktioniert nicht

Verfasst: Freitag 15. August 2014, 15:26
von BlackJack
@Hellstorm: Das sieht nach einer falschen Reihenfolge aus. Erst übersetzen und dann Werte hineinformatieren. Denn sonst müsste man ja für jede mögliche Kombination von Werten für {0} und {1} eine eigene Übersetzung anlegen.

Re: Pluralform funktioniert nicht

Verfasst: Freitag 15. August 2014, 15:29
von Hellstorm
Ah, also kann ich das .format HINTER self.tr() schreiben?

Code: Alles auswählen

test2 = self.tr("1: {1}, 2: {2}", "Mit format", length).format(eins, zwei)
Wäre ja logisch. Ich werd es mal ausprobieren. Danke!

Edit: Jo, das klappt. Danke! Nur darf es nicht bei {1} beginnen sondern bei {0} :oops: