O que é o formato de ficheiro MO?
.mo é um arquivo de desenvolvedor usado para armazenar um catálogo de tradução binário compilado. Arquivos .mo não são legíveis por humanos - eles são a contraparte legível por máquina de um arquivo de origem .po editável por humanos. Os tradutores editam o arquivo .po e o compilam para .mo usando o comando msgfmt; o aplicativo então carrega o .mo em tempo de execução para exibir o texto traduzido. Modificar um arquivo .mo diretamente o tornará inutilizável.
Acesso aos dados
Arquivos .mo não são criptografados ou protegidos contra leitura. Alguns editores hexadecimais podem exibir o binário bruto, mas a maneira correta de recuperar strings legíveis por humanos é o comando msgunfmt, que descompila um .mo de volta para sua origem .po. Internamente, um .mo começa com um número mágico de quatro bytes (0x950412DE little-endian), uma palavra de revisão e duas tabelas de deslocamento (offset) apontando para matrizes de strings originais (msgid) e traduzidas (msgstr). Uma tabela de hash opcional permite a busca rápida em tempo de execução.
Segurança e proteção
RISCO: LOWUm .mo contém apenas strings de tradução e metadados - não há código executável, portanto o arquivo em si é inofensivo. A única precaução prática: um .mo malicioso colocado em um tema/plugin pode injetar texto de interface enganoso (ex: links ou instruções alterados), portanto, use apenas arquivos de idioma da fonte oficial do tema/plugin, não de downloads de «tradução» desconhecidos.
Detalhes do formato
em resumo- Dados de objeto/ASCII do Autodesk Maya - Alguns pipelines e exportadores do Maya usam .mo para dados de objeto - não relacionado ao gettext.
- Arquivo de objeto Modula-3 - Arquivo de objeto compilado histórico para a linguagem Modula-3; o nome do banco de dados reflete este significado raro.
- Motorola / dumps de objeto de firmware - Ocasionalmente visto para blobs de firmware/objeto da Motorola; nicho e não relacionado.
Programas que abrem arquivos MO
Detalhes técnicos
especificação profunda| Tipo de formato | Catálogo de tradução binário compilado (tabela de strings indexada por hash) |
| Número mágico | 0x950412DE (little-endian: DE 12 04 95 no deslocamento 0; arquivos big-endian armazenam 95 04 12 DE) |
| Ordem dos bytes | Little-endian ou big-endian; o leitor detecta a ordem dos bytes a partir do número mágico no momento da análise |
| Tipo MIME | application/x-gettext-translation |
| Codificação de strings | UTF-8 (mais comum); o conjunto de caracteres real é declarado na entrada de metadados msgid vazia |
| Entrada de metadados | A entrada com msgid vazio armazena Project-Id-Version, Content-Type, charset e regras de Plural-Forms |
| Revisão do formato | Revisão 0 (tanto as palavras de revisão maior quanto menor são 0); a revisão 1 está definida, mas raramente é implantada |
| Tabela de hash | Tabela de hash de tamanho fixo opcional incorporada no corpo do arquivo para busca de strings O(1) em tempo de execução |
| Ferramenta de compilação | msgfmt (GNU gettext) compila .po → .mo |
| Ferramenta de descompilação | msgunfmt (GNU gettext) recupera um arquivo .po de um binário .mo |
| Tamanho de arquivo típico | 5 KB - 2 MB dependendo do número de strings traduzidas |
| Suporte de plataforma | Linux, macOS, Windows, BSD - qualquer SO que execute software baseado em gettext |
| Caminho de implantação comum | Instalado como <domain>.mo dentro de um diretório LC_MESSAGES sob uma árvore de localidade (ex: locale/pt_BR/LC_MESSAGES/app.mo) |
| Lançado | 1995 (GNU gettext) |
| Versão mais recente | MO format revision 0 (still current); revision 1 defined but rarely used |
| Padrão aberto | Sim · livre de royalties |
| Especificação | www.gnu.org |
Conversões de MO
Perguntas e Respostas da Comunidade
perguntado por usuáriosAinda não há perguntas - seja o primeiro a perguntar sobre arquivos MO.