Что такое формат файла MO?
.mo is a developer file used for storing a compiled binary translation catalog. .mo files are not human-readable - they are the machine-readable counterpart to a human-editable .po source file. Translators edit the .po file and compile it to .mo using the msgfmt command; the application then loads the .mo at runtime to display translated text. Modifying a .mo file directly will render it unusable.
Data access
.mo files are not encrypted or read-protected. Some hex editors can display the raw binary, but the correct way to recover human-readable strings is the msgunfmt command, which decompiles a .mo back into its .po source. Internally, a .mo starts with a four-byte magic number (0x950412DE little-endian), a revision word, and two offset tables pointing to original (msgid) and translated (msgstr) string arrays. An optional hash table enables fast runtime lookup.
Безопасность и защита
РИСК: LOWA .mo holds only translation strings and metadata - there is no executable code, so the file itself is harmless. The only practical caution: a malicious .mo placed in a theme/plugin could inject misleading interface text (e.g. altered links or instructions), so only use language files from the official theme/plugin source, not from unknown 'translation' downloads.
Детали формата
в двух словах- Autodesk Maya ASCII/object data - Some Maya pipelines and exporters use .mo for object data - unrelated to gettext.
- Modula-3 object file - Historic compiled object file for the Modula-3 language; the DB name reflects this rare meaning.
- Motorola / firmware object dumps - Occasionally seen for Motorola object/firmware blobs; niche and unrelated.
Программы, открывающие файлы MO
Технические подробности
глубокая спецификация| Format type | Binary compiled translation catalog (hash-indexed string table) |
| Magic number | 0x950412DE (little-endian: DE 12 04 95 at offset 0; big-endian files store 95 04 12 DE) |
| Byte order | Little-endian or big-endian; reader detects byte order from the magic number at parse time |
| MIME type | application/x-gettext-translation |
| String encoding | UTF-8 (most common); actual charset declared in the empty-msgid metadata entry |
| Metadata entry | Entry with empty msgid stores Project-Id-Version, Content-Type, charset, and Plural-Forms rules |
| Format revision | Revision 0 (both major and minor revision words are 0); revision 1 is defined but rarely deployed |
| Hash table | Optional fixed-size hash table embedded in the file body for O(1) string lookup at runtime |
| Compilation tool | msgfmt (GNU gettext) compiles .po → .mo |
| Decompilation tool | msgunfmt (GNU gettext) recovers a .po file from a .mo binary |
| Typical file size | 5 KB - 2 MB depending on the number of translated strings |
| Platform support | Linux, macOS, Windows, BSD - any OS running gettext-based software |
| Common deployment path | Installed as <domain>.mo inside an LC_MESSAGES directory under a locale tree (e.g. locale/fr/LC_MESSAGES/app.mo) |
| Выпущен | 1995 (GNU gettext) |
| Последняя версия | MO format revision 0 (still current); revision 1 defined but rarely used |
| Открыть стандартное | Да · без роялти |
| Спецификация | www.gnu.org |
Конвертации MO
Вопросы и ответы сообщества
спрошено пользователямиВопросов пока нет - станьте первым, кто спросит о файлах MO.