Hva er PO-filformatet?
.po-filer er GNU gettext Portable Object-filer - det menneskelig redigerbare kildeformatet for programvareoversettelser. Formatet brukes i et bredt spekter av prosjekter: GNU/Linux-verktøy, PHP-applikasjoner, Python-pakker, WordPress-temaer og utvidelser, og mange andre åpen kildekode-applikasjoner.
En .po-fil er ren UTF-8-tekst organisert som parvise oppføringer: msgid (den opprinnelige strengen på kildespråket) og msgstr (den oversatte ekvivalenten). Kommentarlinjer som starter med # inneholder oversetterens notater, uthentede kildekodekommentarer, filreferanser og «fuzzy»-flagg. Oppføringer med flertallsformer bruker msgid_plural og indekserte msgstr[n]-varianter styrt av et Plural-Forms-uttrykk i filhodet.
Arbeidsflyten for oversettelse følger tre filtyper: utviklere henter ut oversettbare strenger til en .pot-mal, oversettere kopierer denne for hvert språk og fyller inn msgstr-verdiene, og deretter kompilerer msgfmt hver .po til en binær .mo-fil som applikasjonen laster inn ved kjøring. .mo-filen er kun maskinlesbar - du redigerer alltid .po-filen, aldri den kompilerte utdatafilen.
.po-filer kan redigeres i et vanlig tekstredigeringsprogram, men dedikerte verktøy som Poedit tilbyr feilsjekking, forslag til delvise treff («fuzzy matches») og hjelp til flertallsformer. Webplattformer som Weblate støtter samarbeid om oversettelse. Formatet er stabilt og bakoverkompatibelt siden GNU gettext ble introdusert i 1995.
Sikkerhet og trygghet
RISIKO: LOWEn .po-fil inneholder kun oversettelsestekst og kommentarer - det er ingen kjørbar kode, så selve filen er ufarlig. Den eneste praktiske forholdsregelen: en ondsinnet oversettelsesfil plassert i et tema eller en utvidelse kan injisere villedende grensesnittekst (f.eks. endrede lenker eller instruksjoner), så bruk kun språkfiler fra det offisielle temaet/utvidelsen eller oversettelseskilden, ikke tilfeldige «oversettelsesnedlastinger».
Formatdetaljer
i et nøtteskall- Diskavbildning / partisjonsavbildning (sjelden) - Det eldre navnet «Disk image file» i databaser gjenspeiler en sjelden eller feilaktig merking; .po er ikke en standard filendelse for diskavbildninger.
Programmer som åpner PO-filer
Tekniske detaljer
dyp spesifikasjon| Format-type | Ren tekst, linjeorientert (GNU gettext PO-syntaks) |
| Koding | UTF-8 (tegnsett deklarert i hodefeltet Content-Type); eldre kataloger kan bruke ISO-8859-x-kodinger |
| MIME-type | text/x-gettext-translation |
| Oppføringsstruktur | msgid / msgstr-par; valgfri msgctxt for kontekstuell skille mellom identiske kildestrenger |
| Hodeoppføring | Første oppføring har en tom msgid; dens msgstr-blokk inneholder Project-Id-Version, Content-Type, Plural-Forms og andre metadata for katalogen |
| Flertallsformer | msgid_plural med indekserte msgstr[0], msgstr[1], ... varianter; Plural-Forms-uttrykket i hodet kontrollerer hvilken form som gjelder for et gitt antall |
| Kommentartyper | # (oversetterkommentar), #. (uthentet kildekommentar), #: (kildefilreferanse), #, (flagg som fuzzy eller c-format) |
| Fuzzy-flagg | #, fuzzy markerer en oversettelse som trenger gjennomgang etter at kildestrengen ble endret; msgfmt ekskluderer fuzzy-oppføringer fra den kompilerte .mo-filen |
| Kompilert utdata | Konvertert til binær .mo (Machine Object) av msgfmt; .mo-filen er det den kjørende applikasjonen laster via gettext() |
| Malfil | .pot (Portable Object Template) - det uoversatte skjelettet; alle språkspesifikke .po-filer er avledet fra denne via msginit eller msgmerge |
| Typisk filstørrelse | 5 KB - 5 MB; skaleres med antall oversettbare strenger i prosjektet |
| Verktøykjede | xgettext (hent ut strenger fra kilde), msginit (opprett ny .po), msgmerge (oppdater eksisterende .po), msgfmt (kompiler til .mo) |
| Plattform | Alle - Linux, macOS, Windows, BSD; der GNU gettext eller en kompatibel libintl-implementering er tilgjengelig |
| Økosystem | Brukt av WordPress, Drupal, GNOME, KDE, Python gettext, PHP gettext og mange andre rammeverk for internasjonalisering (i18n) |
| Utgitt | 1995 (GNU gettext) |
| Siste versjon | PO file syntax is stable; defined in the current GNU gettext manual |
| Åpen standard | Ja · royalty-fri |
| Spesifikasjon | www.gnu.org |
PO-konverteringer
Spørsmål og svar fra fellesskapet
spurt av brukereIngen spørsmål ennå - vær den første til å spørre om PO-filer.