Hvad er MO-filformatet?
.mo er en udviklerfil, der bruges til at gemme et kompileret binært oversættelseskatalog. .mo-filer er ikke læsbare for mennesker - de er den maskinlæsbare modpart til en .po-kildefil, der kan redigeres af mennesker. Oversættere redigerer .po-filen og kompilerer den til .mo ved hjælp af kommandoen msgfmt; applikationen indlæser derefter .mo-filen ved kørsel for at vise oversat tekst. Direkte ændring af en .mo-fil vil gøre den ubrugelig.
Dataadgang
.mo-filer er ikke krypterede eller læsebeskyttede. Nogle hex-editorer kan vise de rå binære data, men den korrekte måde at gendanne menneskeligt læsbare strenge på er kommandoen msgunfmt, som dekompilerer en .mo tilbage til dens .po-kilde. Internt starter en .mo med et fire-byte magisk nummer (0x950412DE little-endian), et revisionsord og to offset-tabeller, der peger på de oprindelige (msgid) og oversatte (msgstr) streng-arrays. En valgfri hash-tabel muliggør hurtig opslag ved kørsel.
Sikkerhed og tryghed
RISIKO: LOWEn .mo-fil indeholder kun oversættelsesstrenge og metadata - der er ingen eksekverbar kode, så selve filen er harmløs. Den eneste praktiske advarsel: en ondsindet .mo-fil placeret i et tema/plugin kan indsætte vildledende brugerfladetekst (f.eks. ændrede links eller instruktioner), så brug kun sprogfiler fra den officielle tema/plugin-kilde, ikke fra ukendte «oversættelses-downloads».
Formatdetaljer
kort fortalt- Autodesk Maya ASCII/objektdata - Nogle Maya-pipelines og eksportere bruger .mo til objektdata - ikke relateret til gettext.
- Modula-3 objektfil - Historisk kompileret objektfil til sproget Modula-3; databasenavnet afspejler denne sjældne betydning.
- Motorola / firmware objekt-dumps - Ses lejlighedsvis til Motorola objekt/firmware-blobs; nichepræget og ikke relateret.
Programmer der åbner MO-filer
Tekniske detaljer
dyb specifikation| Formattype | Binært kompileret oversættelseskatalog (hash-indekseret strengtabel) |
| Magisk nummer | 0x950412DE (little-endian: DE 12 04 95 ved offset 0; big-endian filer gemmer 95 04 12 DE) |
| Byte-rækkefølge | Little-endian eller big-endian; læseren registrerer byte-rækkefølgen fra det magiske nummer ved indlæsning |
| MIME-type | application/x-gettext-translation |
| Strengkodning | UTF-8 (mest almindelig); det faktiske tegnsæt deklareres i metadata-indgangen med tomt msgid |
| Metadata-indgang | Indgang med tomt msgid gemmer Project-Id-Version, Content-Type, tegnsæt og Plural-Forms regler |
| Formatrevision | Revision 0 (både major og minor revisionsord er 0); revision 1 er defineret, men sjældent implementeret |
| Hash-tabel | Valgfri hash-tabel med fast størrelse indlejret i filen til O(1) strengopslag ved kørsel |
| Kompileringsværktøj | msgfmt (GNU gettext) kompilerer .po → .mo |
| Dekompileringsværktøj | msgunfmt (GNU gettext) gendanner en .po-fil fra en .mo-binærfil |
| Typisk filstørrelse | 5 KB - 2 MB afhængigt af antallet af oversatte strenge |
| Platformunderstøttelse | Linux, macOS, Windows, BSD - ethvert operativsystem, der kører gettext-baseret software |
| Typisk installationssti | Installeret som <domæne>.mo i en LC_MESSAGES-mappe under et sprogtræ (f.eks. locale/da/LC_MESSAGES/app.mo) |
| Udgivet | 1995 (GNU gettext) |
| Seneste version | MO format revision 0 (still current); revision 1 defined but rarely used |
| Åben standard | Ja · royaltyfri |
| Specifikation | www.gnu.org |
MO-konverteringer
Fællesskabets Q&A
spurgt af brugereIngen spørgsmål endnu - vær den første til at spørge om MO-filer.