Wat is het MO-bestandsformaat?
.mo is een ontwikkelaarsbestand dat wordt gebruikt voor het opslaan van een gecompileerde binaire vertaalcatalogus. .mo-bestanden zijn niet door mensen leesbaar - ze zijn de machineleesbare tegenhanger van een door mensen bewerkbaar .po bronbestand. Vertalers bewerken het .po-bestand en compileren het naar .mo met het commando msgfmt; de applicatie laadt vervolgens de .mo tijdens runtime om vertaalde tekst weer te geven. Het rechtstreeks wijzigen van een .mo-bestand maakt het onbruikbaar.
Gegevenstoegang
.mo-bestanden zijn niet versleuteld of beveiligd tegen lezen. Sommige hex-editors kunnen de ruwe binaire gegevens weergeven, maar de juiste manier om menselijk leesbare strings te herstellen is het commando msgunfmt, dat een .mo decompileert naar de .po-bron. Intern begint een .mo met een magic number van vier bytes (0x950412DE little-endian), een revisiewoord en twee offset-tabellen die naar arrays van originele (msgid) en vertaalde (msgstr) strings wijzen. Een optionele hashtabel maakt snel opzoeken tijdens runtime mogelijk.
Beveiliging & veiligheid
RISICO: LOWEen .mo bevat alleen vertaalstrings en metadata - er is geen uitvoerbare code, dus het bestand zelf is onschadelijk. De enige praktische waarschuwing: een kwaadaardige .mo die in een thema/plugin wordt geplaatst, zou misleidende interface-tekst kunnen injecteren (bijv. gewijzigde links of instructies), dus gebruik alleen taalbestanden van de officiële thema/plugin-bron, niet van onbekende „vertaal”-downloads.
Formaatdetails
in een notendop- Autodesk Maya ASCII/objectgegevens - Sommige Maya-pipelines en exporteurs gebruiken .mo voor objectgegevens - niet gerelateerd aan gettext.
- Modula-3 objectbestand - Historisch gecompileerd objectbestand voor de taal Modula-3; de DB-naam weerspiegelt deze zeldzame betekenis.
- Motorola / firmware object dumps - Af en toe gezien voor Motorola object/firmware blobs; niche en niet gerelateerd.
Programma's die MO-bestanden openen
Technische details
diepe specificaties| Formaat type | Binair gecompileerde vertaalcatalogus (hash-geïndexeerde stringtabel) |
| Magic number | 0x950412DE (little-endian: DE 12 04 95 op offset 0; big-endian bestanden slaan 95 04 12 DE op) |
| Byte-volgorde | Little-endian of big-endian; de lezer detecteert de byte-volgorde aan de hand van het magic number tijdens het parsen |
| MIME-type | application/x-gettext-translation |
| String-codering | UTF-8 (meest gebruikelijk); werkelijke tekenset gedeclareerd in de lege msgid-metadata-entry |
| Metadata-entry | Entry met lege msgid slaat Project-Id-Version, Content-Type, charset en Plural-Forms regels op |
| Formaatrevisie | Revisie 0 (zowel major als minor revisiewoorden zijn 0); revisie 1 is gedefinieerd maar wordt zelden toegepast |
| Hashtabel | Optionele hashtabel met vaste grootte ingebed in de bestandsinhoud voor O(1) string-lookup tijdens runtime |
| Compilatie-tool | msgfmt (GNU gettext) compileert .po → .mo |
| Decompilatie-tool | msgunfmt (GNU gettext) herstelt een .po-bestand uit een .mo-binair bestand |
| Typische bestandsgrootte | 5 KB - 2 MB afhankelijk van het aantal vertaalde strings |
| Platformondersteuning | Linux, macOS, Windows, BSD - elk besturingssysteem dat op gettext gebaseerde software draait |
| Gebruikelijk implementatiepad | Geïnstalleerd als <domain>.mo in een LC_MESSAGES-map onder een locale-structuur (bijv. locale/nl/LC_MESSAGES/app.mo) |
| Uitgebracht | 1995 (GNU gettext) |
| Laatste versie | MO format revision 0 (still current); revision 1 defined but rarely used |
| Open standaard | Ja · royaltyvrij |
| Specificatie | www.gnu.org |
MO conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over MO-bestanden.