Qu'est-ce que le format de fichier MO ?
.mo est un fichier de développement utilisé pour stocker un catalogue de traduction binaire compilé. Les fichiers .mo ne sont pas lisibles par l'homme - ils sont le pendant lisible par machine d'un fichier source .po éditable par l'homme. Les traducteurs éditent le fichier .po et le compilent en .mo à l'aide de la commande msgfmt ; l'application charge ensuite le .mo au moment de l'exécution pour afficher le texte traduit. Modifier un fichier .mo directement le rendra inutilisable.
Accès aux données
Les fichiers .mo ne sont ni chiffrés ni protégés en lecture. Certains éditeurs hexadécimaux peuvent afficher le binaire brut, mais la méthode correcte pour récupérer les chaînes lisibles est la commande msgunfmt, qui décompile un .mo en sa source .po. En interne, un .mo commence par un nombre magique de quatre octets (0x950412DE little-endian), un mot de révision et deux tables d'index pointant vers les tableaux de chaînes originales (msgid) et traduites (msgstr). Une table de hachage optionnelle permet une recherche rapide à l'exécution.
Sécurité et sûreté
RISQUE : LOWUn fichier .mo ne contient que des chaînes de traduction et des métadonnées - il n'y a pas de code exécutable, le fichier lui-même est donc inoffensif. La seule précaution pratique : un .mo malveillant placé dans un thème/plugin pourrait injecter du texte d'interface trompeur (ex: liens ou instructions modifiés), n'utilisez donc que des fichiers de langue provenant de la source officielle du thème/plugin.
Détails du format
en bref- Données ASCII/objet Autodesk Maya - Certains pipelines et exportateurs Maya utilisent .mo pour les données d'objet - sans rapport avec gettext.
- Fichier objet Modula-3 - Fichier objet compilé historique pour le langage Modula-3 ; le nom de la base de données reflète cette signification rare.
- Dumps d'objets Motorola / firmware - Parfois observé pour des blobs d'objets/firmware Motorola ; niche et sans rapport.
Programmes qui ouvrent les fichiers MO
Détails techniques
spécifications approfondies| Type de format | Catalogue de traduction binaire compilé (table de chaînes indexée par hachage) |
| Nombre magique | 0x950412DE (little-endian : DE 12 04 95 à l'offset 0 ; les fichiers big-endian stockent 95 04 12 DE) |
| Ordre des octets | Little-endian ou big-endian ; le lecteur détecte l'ordre des octets à partir du nombre magique lors de l'analyse |
| Type MIME | application/x-gettext-translation |
| Encodage des chaînes | UTF-8 (le plus courant) ; le jeu de caractères réel est déclaré dans l'entrée de métadonnées msgid vide |
| Entrée de métadonnées | L'entrée avec un msgid vide stocke Project-Id-Version, Content-Type, le jeu de caractères et les règles Plural-Forms |
| Révision du format | Révision 0 (les mots de révision majeure et mineure sont à 0) ; la révision 1 est définie mais rarement déployée |
| Table de hachage | Table de hachage optionnelle de taille fixe intégrée dans le corps du fichier pour une recherche de chaîne en O(1) à l'exécution |
| Outil de compilation | msgfmt (GNU gettext) compile .po → .mo |
| Outil de décompilation | msgunfmt (GNU gettext) récupère un fichier .po à partir d'un binaire .mo |
| Taille de fichier typique | 5 Ko - 2 Mo selon le nombre de chaînes traduites |
| Prise en charge des plateformes | Linux, macOS, Windows, BSD - tout système d'exploitation exécutant des logiciels basés sur gettext |
| Chemin de déploiement typique | Installé sous le nom <domain>.mo dans un répertoire LC_MESSAGES sous une arborescence de locales (ex: locale/fr/LC_MESSAGES/app.mo) |
| Publié | 1995 (GNU gettext) |
| Dernière version | MO format revision 0 (still current); revision 1 defined but rarely used |
| Standard ouvert | Oui · libre de droits |
| Spécification | www.gnu.org |
Conversions MO
Q&R de la communauté
posées par les utilisateursPas encore de questions - soyez le premier à poser une question sur les fichiers MO.