Hvad er PO-filformatet?
.po-filer er GNU gettext Portable Object-filer - det menneskeligt redigerbare kildeformat til softwareoversættelser. Formatet bruges i en lang række projekter: GNU/Linux-værktøjer, PHP-applikationer, Python-pakker, WordPress-temaer og -plugins samt mange andre open source-applikationer.
En .po-fil er almindelig UTF-8-tekst organiseret som parrede poster: msgid (den originale kildesprogsstreng) og msgstr (den oversatte ækvivalent). Kommentarlinjer præfikset med # indeholder oversætternoter, udtrukne kildekodekommentarer, filreferencer og «fuzzy»-flag. Poster med flertalsformer bruger msgid_plural og indekserede msgstr[n]-varianter styret af et Plural-Forms-udtryk i filhovedet.
Arbejdsgangen for oversættelse følger tre filtyper: udviklere udtrækker strenge, der kan oversættes, til en .pot-skabelon, oversættere kopierer den per sprog og udfylder msgstr-værdierne, og derefter kompilerer msgfmt hver .po til en binær .mo-fil, som applikationen indlæser ved kørsel. .mo-filen er kun maskinlæsbar - du redigerer altid i .po-filen, aldrig i det kompilerede output.
.po-filer kan redigeres i et almindeligt tekstredigeringsprogram, men dedikerede værktøjer som Poedit tilbyder fejlkontrol, forslag til «fuzzy»-match og hjælp til flertalsformer. Webplatforme som Weblate understøtter samarbejde om oversættelse. Formatet er stabilt og bagudkompatibelt, siden GNU gettext blev introduceret i 1995.
Sikkerhed og tryghed
RISIKO: LOWEn .po-fil indeholder kun oversættelsestekst og kommentarer - der er ingen eksekverbar kode, så selve filen er harmløs. Den eneste praktiske forsigtighed: en ondsindet oversættelsesfil placeret i et tema/plugin kan indsætte vildledende grænsefladetekst (f.eks. ændrede links eller instruktioner), så brug kun sprogfiler fra det officielle tema/plugin eller oversættelseskilde, ikke tilfældige «oversættelses»-downloads.
Formatdetaljer
kort fortalt- Diskaftryk / partitionsaftryk (sjælden) - DB-navnet «Disk image file» afspejler en sjælden/forkert mærkning; .po er ikke en standardudvidelse til diskaftryk.
Programmer der åbner PO-filer
Tekniske detaljer
dyb specifikation| Format-type | Almindelig tekst, linjeorienteret (GNU gettext PO-syntaks) |
| Kodning | UTF-8 (tegnsæt deklareret i headerens Content-Type-felt); ældre kataloger kan bruge ISO-8859-x-kodninger |
| MIME-type | text/x-gettext-translation |
| Post-struktur | msgid / msgstr par; valgfri msgctxt til kontekstuel adskillelse af identiske kildestrenge |
| Header-post | Første post har en tom msgid; dens msgstr-blok indeholder Project-Id-Version, Content-Type, Plural-Forms og andre metadata for kataloget |
| Flertalsformer | msgid_plural med indekserede msgstr[0], msgstr[1], ... varianter; Plural-Forms-udtrykket i headeren styrer, hvilken form der gælder for et givet antal |
| Kommentartyper | # (oversætterkommentar), #. (udtrukket kildekommentar), #: (kildefilsreference), #, (flag såsom fuzzy eller c-format) |
| Fuzzy-flag | #, fuzzy markerer en oversættelse, der kræver gennemsyn, efter at kildestrengen er ændret; msgfmt udelukker fuzzy-poster fra det kompilerede .mo-output |
| Kompileret output | Konverteret til binær .mo (Machine Object) af msgfmt; .mo-filen er det, den kørende applikation indlæser via gettext() |
| Skabelonfil | .pot (Portable Object Template) - det uoversatte skelet; alle sprogspecifikke .po-filer er afledt af denne via msginit eller msgmerge |
| Typisk filstørrelse | 5 KB - 5 MB; skalerer med antallet af strenge i projektet, der kan oversættes |
| Værktøjskæde | xgettext (udtræk strenge fra kilde), msginit (opret ny .po), msgmerge (opdater eksisterende .po), msgfmt (kompiler til .mo) |
| Platform | Alle - Linux, macOS, Windows, BSD; hvor som helst GNU gettext eller en kompatibel libintl-implementering er tilgængelig |
| Økosystem | Brugt af WordPress, Drupal, GNOME, KDE, Python gettext, PHP gettext og mange andre frameworks til internationalisering (i18n) |
| Udgivet | 1995 (GNU gettext) |
| Seneste version | PO file syntax is stable; defined in the current GNU gettext manual |
| Åben standard | Ja · royaltyfri |
| Specifikation | www.gnu.org |
PO-konverteringer
Fællesskabets Q&A
spurgt af brugereIngen spørgsmål endnu - vær den første til at spørge om PO-filer.