Förstå Gettext pluralformer: Hantera komplex pluralisering i WordPress

På engelska är pluralisering enkelt. Du har ett "Apple" (äpple), och du har två eller fler "Apples" (äpplen).
Men om du översätter din WordPress-webbplats till polska, ryska eller arabiska är du på väg in i ett språkligt minfält.
Visste du att på ryska ändras ordet för "fil" beroende på om du har 1 fil, 2–4 filer eller 5+ filer?
- 1 файл (1 fil)
- 3 файла (3 filer)
- 5 файлов (5 filer)
Om ditt översättningsverktyg blint antar att alla språk fungerar som engelska (singular vs. plural), kommer dina användare att se grammatiskt felaktiga meningar som får ditt varumärke att se oprofessionellt ut.
Den här guiden förklarar hur WordPress och Gettext hanterar dessa komplexa regler och hur du automatiserar dem korrekt.
Den tekniska anatomin hos en pluralsträng
I en standard .po-fil ser en pluralsträng ut så här:
msgid "You have %d new message"
msgid_plural "You have %d new messages"
msgstr[0] ""
msgstr[1] ""
msgid: Singularformen (används för count = 1).msgid_plural: Pluralformen (används för count != 1).msgstr[N]: Översättningarna.
För engelska behöver du bara msgstr[0] (singular) och msgstr[1] (plural). Men för andra språk kan du behöva msgstr[2], msgstr[3] eller till och med msgstr[5].
Rubriken Plural-Forms
Hur vet WordPress vilken msgstr som ska användas? Det tittar på rubriken i din .po-fil.
För ryska ser rubriken ut så här:
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
Denna skrämmande matematiska formel talar om för WordPress:
- Det finns 3 möjliga former (
nplurals=3). - Använd form 0 om talet slutar på 1 (men inte 11).
- Använd form 1 om talet slutar på 2–4 (men inte 12–14).
- Använd form 2 för allt annat.
Varför de flesta översättare misslyckas här
När du använder en generisk AI-wrapper eller ett grundläggande automatiserat verktyg ignorerar det ofta rubriken Plural-Forms.
Det ser den engelska inmatningen (2 former) och försöker tvinga in den i målspråket.
- Felet: Det kan fylla
msgstr[0]ochmsgstr[1], men lämnamsgstr[2]tomt. - Resultatet: När en rysk användare har 5 meddelanden letar WordPress efter form 2. Om den är tom eller saknas, återgår WordPress vanligtvis till den ursprungliga engelska strängen.
Plötsligt visar din fullständigt lokaliserade webbplats "You have 5 new messages" på engelska, mitt i en rysk mening. Detta bryter ned inlevelsen och användarnas förtroende.
Lösningen: Kontextmedveten AI med pluralstöd
Att hantera pluralformer korrekt kräver två saker:
- Strikt efterlevnad av Gettext-standarder: Verktyget måste respektera
nplurals-antalet i rubriken. - Språklig intelligens: AI:n måste veta hur man böjer orden för dessa specifika numeriska intervall.
Detta är en inbyggd funktion i SimplePoTranslate.
Hur vi hanterar komplexa pluralformer
Vi översätter inte bara text; vi läser matematiken i din .po-rubrik.
När du laddar upp en fil för översättning till polska (som har 3 pluralformer):
- Rubrikanalys: Vi detekterar
nplurals=3. - Prompt Engineering: Vårt system instruerar den kontextmedvetna AI:n: "Översätt den här strängen till polska. Ange exakt 3 former: en för singular, en för siffror som slutar på 2–4 och en för andra."
- Validering: Vi verifierar att utdata innehåller exakt
msgstr[0],msgstr[1]ochmsgstr[2]innan vi kompilerar filen.
Vi hanterar detta automatiskt. Du behöver inte känna till grammatikreglerna för målspråket. Du laddar upp filen, och vi fyller i alla nödvändiga pluralformer korrekt.
Bättre än manuell översättning?
Om du inte talar målspråket flytande kan du inte fylla i dessa pluralformer manuellt. Du skulle gissa. SimplePoTranslate utnyttjar avancerade LLM:er som är tränade på dessa exakta grammatiska regler, vilket säkerställer noggrannhet på infödd nivå.
Få dina pluralformer rätt
Låt inte "1 Apple, 5 Apples" förstöra din webbplats professionella utseende. Använd ett verktyg som förstår komplexiteten i global grammatik.
SimplePoTranslate låter dig testa vår pluraliseringsmotor gratis.
Är du redo att översätta utan huvudvärk? Börja gratis på SimplePoTranslate.com