Vad är filformatet PO?
.po-filer är GNU gettext Portable Object-filer - det mänskligt redigerbara källformatet för programvaruöversättningar. Formatet används i ett brett spektrum av projekt: GNU/Linux-verktyg, PHP-applikationer, Python-paket, WordPress-teman och insticksmoduler, samt många andra open source-applikationer.
En .po-fil är vanlig UTF-8-text organiserad som parade poster: msgid (den ursprungliga källspråkssträngen) och msgstr (den översatta motsvarigheten). Kommentarsrader som inleds med # innehåller översättarnoteringar, extraherade källkodskommentarer, filreferenser och «fuzzy»-flaggor. Poster med pluralformer använder msgid_plural och indexerade msgstr[n]-varianter som styrs av ett Plural-Forms-uttryck i filhuvudet.
Arbetsflödet för översättning följer tre filtyper: utvecklare extraherar översättningsbara strängar till en .pot-mall, översättare kopierar den per språk och fyller i msgstr-värdena, och sedan kompilerar msgfmt varje .po till en binär .mo-fil som applikationen laddar vid körning. .mo-filen är endast maskinläsbar - du redigerar alltid .po-filen, aldrig den kompilerade utdatafilen.
.po-filer kan redigeras i en vanlig textredigerare, men dedikerade verktyg som Poedit erbjuder felkontroll, förslag på «fuzzy»-matchningar och hjälpmedel för pluralformer. Webbplattformar som Weblate stöder samarbete vid översättning. Formatet är stabilt och bakåtkompatibelt sedan GNU gettext introducerades 1995.
Säkerhet & trygghet
RISK: LOWEn .po-fil innehåller endast översättningstext och kommentarer - det finns ingen exekverbar kod, så filen i sig är ofarlig. Den enda praktiska varningen: en skadlig översättningsfil placerad i ett tema eller insticksmodul kan injicera vilseledande gränssnittstext (t.ex. ändrade länkar eller instruktioner), så använd endast språkfiler från officiella källor.
Formatdetaljer
i ett nötskal- Diskavbildning / partitionsavbildning (sällsynt) - Det äldre namnet «Disk image file» i vissa databaser återspeglar en sällsynt eller felaktig märkning; .po är inte ett standardformat för diskavbildningar.
Program som öppnar PO-filer
Tekniska detaljer
djup specifikation| Formattyp | Klartext, radorienterad (GNU gettext PO-syntax) |
| Kodning | UTF-8 (teckenuppsättning deklareras i huvudet via Content-Type); äldre kataloger kan använda ISO-8859-x-kodningar |
| MIME-typ | text/x-gettext-translation |
| Poststruktur | msgid / msgstr-par; valfri msgctxt för kontextuell särskiljning av identiska källsträngar |
| Huvudpost | Den första posten har en tom msgid; dess msgstr-block innehåller Project-Id-Version, Content-Type, Plural-Forms och annan metadata för katalogen |
| Pluralformer | msgid_plural med indexerade msgstr[0], msgstr[1], ... varianter; uttrycket i Plural-Forms-huvudet styr vilken form som tillämpas för ett givet antal |
| Kommentartyper | # (översättarkommentar), #. (extraherad källkommentar), #: (källfilsreferens), #, (flaggor såsom fuzzy eller c-format) |
| Fuzzy-flagga | #, fuzzy markerar en översättning som behöver granskas efter att källsträngen ändrats; msgfmt exkluderar fuzzy-poster från den kompilerade .mo-filen |
| Kompilerad utdata | Konverteras till binär .mo (Machine Object) av msgfmt; .mo-filen är vad den körande applikationen laddar via gettext() |
| Mallfil | .pot (Portable Object Template) - det oöversatta skelettet; alla språkspecifika .po-filer härleds från denna via msginit eller msgmerge |
| Typisk filstorlek | 5 KB - 5 MB; skalar med antalet översättningsbara strängar i projektet |
| Verktygskedja | xgettext (extrahera strängar från källkod), msginit (skapa ny .po), msgmerge (uppdatera befintlig .po), msgfmt (kompilera till .mo) |
| Plattform | Alla - Linux, macOS, Windows, BSD; där GNU gettext eller en kompatibel libintl-implementering finns tillgänglig |
| Ekosystem | Används av WordPress, Drupal, GNOME, KDE, Python gettext, PHP gettext och många andra ramverk för internationalisering (i18n) |
| Släppt | 1995 (GNU gettext) |
| Senaste version | PO file syntax is stable; defined in the current GNU gettext manual |
| Öppen standard | Ja · royaltyfri |
| Specifikation | www.gnu.org |
PO-konverteringar
Frågor & svar
frågat av användareInga frågor än - bli den första att fråga om PO-filer.