PoEdit Keywords - Plural

8

Ich habe ein Gettext-ähnliches Lokalisierungssystem in meine App integriert, aber meine Übersetzungsfunktion sieht so aus:

%Vor%

Meine PoEdit Schlüsselwörter:

%Vor%
  • t: 2 weist PoEdit an, $string zu analysieren, und es funktioniert anscheinend
  • t: 2,3 sollte PoEdit mitteilen, dass sowohl $string als auch $plural_string analysiert werden sollen - aber es ist nicht: (

Es sieht nur $string , also bekomme ich die Pluralformen nicht parsiert ... Wie kann ich das beheben? Ich möchte meine Funktion nicht in ein anderes Argumentformat umwandeln, weil mir dieses gefällt: (

Auch diese Funktion verhält sich wie ein sprintf Ersatz:

  • Wenn das dritte Argument ($ plural_string) ein Array ist, berücksichtigt die Funktion die Werte aus dem Array als Argumente für vsprintf
  • Wenn das 3. Argument eine Zeichenkette ist und $ Nummer angegeben wird, berücksichtigt die Funktion $ vprintf_arguments als Argumente für vsprintf (wenn sie angegeben sind) und $ plural_string als die Pluralform von $ string

Wie auch immer, PoEdit sollte nicht mit nicht zitierten Argumenten interferieren, oder? Ich meine, es wird $ plural_string nur als String analysieren, wenn es wie 'abc abc'

aussieht     
Alex 06.12.2011, 22:31
quelle

2 Antworten

6

gettext behandelt immer nur einen String. Was du vielleicht willst, ist ngettext. (Suche nach Syntax)

Dort werden Sie einen Text für Singular, einen anderen für Plural, aber auch die Nummer eingeben.

Das schlaue daran ist, dass viele Sprachen eine völlig andere Pluralstruktur haben als Englisch. Russisch verwendet zum Beispiel drei verschiedene Formen. Eine davon ist, wo die Zählung in einem ausgesprochenen "Eins" endet: 1, 21, 31, 41 usw. Die zweite Form ist für Zählungen, die in einem ausgeprägten 2, 3 oder 4 enden. Die dritte Form ist für den Rest ...

Und das kann mit ngettext getan werden. Ja, in poedit muss man die Pluralstruktur der Zielsprache richtig definieren, aber dann funktioniert es einfach.

Ссылка

    
Tor-Bjorn Fjellner 15.12.2011, 01:01
quelle
1

Wie Tor-Björn Fjellner geantwortet hat, sollte das eigentlich nur funktionieren.

Wenn Sie poedit sagen, dass die Sprache tatsächlich Pluralformen hat ( Übersetzen von Pluralformularen mit Poedit ) und berücksichtigt Ihre Suchbegriffe, poedit bietet diese zur Übersetzung an.

Beispiel

Mehrere Formulare: nplurals=2; plural=n != 1;

Schlüsselwörter:

  • t:2
  • t:2,3

PHP-Code:

%Vor%

Poedit UI:

Was ich in Ihrer Frage nicht verstanden habe, war der Punkt über die Arrays und so. Ich konnte nicht entschlüsseln, was Sie in der Domain poedit / gettext vorhaben. Ich denke, Ihre Frage würde von Nutzen sein, wenn Sie einige konkrete Codebeispiele hinzufügen und wie das Ergebnis für sie aussehen sollte.

    
hakre 15.12.2011 16:20
quelle