Pluralform funktioniert nicht

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
Hellstorm
User
Beiträge: 231
Registriert: Samstag 22. Juni 2013, 15:01

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!
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.
Hellstorm
User
Beiträge: 231
Registriert: Samstag 22. Juni 2013, 15:01

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:
Antworten