Was ist das MO-Dateiformat?
.mo ist eine Entwicklerdatei, die zum Speichern eines kompilierten binären Übersetzungskatalogs verwendet wird. .mo-Dateien sind nicht für Menschen lesbar - sie sind das maschinenlesbare Gegenstück zu einer vom Menschen editierbaren .po-Quelldatei. Übersetzer bearbeiten die .po-Datei und kompilieren sie mit dem Befehl msgfmt in eine .mo; die Anwendung lädt dann die .mo zur Laufzeit, um übersetzten Text anzuzeigen. Das direkte Ändern einer .mo-Datei macht sie unbrauchbar.
Datenzugriff
.mo-Dateien sind nicht verschlüsselt oder lesegeschützt. Einige Hex-Editoren können die rohen Binärdaten anzeigen, aber der korrekte Weg zur Wiederherstellung von menschenlesbaren Zeichenfolgen ist der Befehl msgunfmt, der eine .mo zurück in ihre .po-Quelle dekompiliert. Intern beginnt eine .mo mit einer vier Byte langen Magic Number (0x950412DE Little-Endian), einem Revisionswort und zwei Offset-Tabellen, die auf Arrays der Original- (msgid) und übersetzten (msgstr) Zeichenfolgen verweisen. Eine optionale Hash-Tabelle ermöglicht eine schnelle Suche zur Laufzeit.
Sicherheit
RISIKO: LOWEine .mo enthält nur Übersetzungsstrings und Metadaten - es gibt keinen ausführbaren Code, daher ist die Datei selbst harmlos. Die einzige praktische Vorsicht: Eine bösartige .mo, die in einem Theme/Plugin platziert wird, könnte irreführende Oberflächentexte einschleusen (z. B. geänderte Links oder Anweisungen). Verwenden Sie daher nur Sprachdateien aus der offiziellen Theme/Plugin-Quelle, nicht von unbekannten „Übersetzungs“-Downloads.
Formatdetails
kurz gefasst- Autodesk Maya ASCII/Objektdaten - Einige Maya-Pipelines und Exporter verwenden .mo für Objektdaten - nicht verwandt mit gettext.
- Modula-3 Objektdatei - Historische kompilierte Objektdatei für die Sprache Modula-3; der DB-Name spiegelt diese seltene Bedeutung wider.
- Motorola / Firmware-Objekt-Dumps - Gelegentlich bei Motorola Objekt/Firmware-Blobs zu sehen; Nische und nicht verwandt.
Programme zum Öffnen von MO-Dateien
Technische Details
technische Spezifikation| Format-Typ | Binär kompilierter Übersetzungskatalog (Hash-indizierte String-Tabelle) |
| Magic Number | 0x950412DE (Little-Endian: DE 12 04 95 bei Offset 0; Big-Endian-Dateien speichern 95 04 12 DE) |
| Byte-Reihenfolge | Little-Endian oder Big-Endian; der Reader erkennt die Byte-Reihenfolge anhand der Magic Number beim Parsen |
| MIME-Typ | application/x-gettext-translation |
| Zeichenkodierung | UTF-8 (am häufigsten); der tatsächliche Zeichensatz wird im Metadaten-Eintrag mit leerer msgid deklariert |
| Metadaten-Eintrag | Eintrag mit leerer msgid speichert Project-Id-Version, Content-Type, Zeichensatz und Plural-Forms-Regeln |
| Format-Revision | Revision 0 (sowohl Major- als auch Minor-Revisionswörter sind 0); Revision 1 ist definiert, wird aber selten eingesetzt |
| Hash-Tabelle | Optionale Hash-Tabelle mit fester Größe, die im Dateikörper eingebettet ist, für O(1)-String-Suche zur Laufzeit |
| Kompilierungswerkzeug | msgfmt (GNU gettext) kompiliert .po → .mo |
| Dekompilierungswerkzeug | msgunfmt (GNU gettext) stellt eine .po-Datei aus einer .mo-Binärdatei wieder her |
| Typische Dateigröße | 5 KB - 2 MB, abhängig von der Anzahl der übersetzten Zeichenfolgen |
| Plattformunterstützung | Linux, macOS, Windows, BSD - jedes Betriebssystem, auf dem gettext-basierte Software läuft |
| Üblicher Bereitstellungspfad | Installiert als <domain>.mo innerhalb eines LC_MESSAGES-Verzeichnisses unter einem Locale-Baum (z. B. locale/de/LC_MESSAGES/app.mo) |
| Veröffentlicht | 1995 (GNU gettext) |
| Neueste Version | MO format revision 0 (still current); revision 1 defined but rarely used |
| Offener Standard | Ja · lizenzgebührenfrei |
| Spezifikation | www.gnu.org |
MO-Konvertierungen
Community Q&A
von Nutzern gefragtNoch keine Fragen - stellen Sie die erste Frage zu MO-Dateien.
Häufig gestellte Fragen
Was ist eine .mo-Datei?
Wie öffne oder bearbeite ich eine .mo-Datei?
Was ist der Unterschied zwischen .po und .mo?
msgfmt (oder Poedit erledigt beides).