Conversor de PO para MO
Compile um arquivo de origem de tradução .po do GNU gettext em um arquivo binário .mo, pronto para PHP, Python, WordPress ou qualquer aplicativo baseado em gettext. Executado inteiramente no seu navegador — sem upload.
Entrada
Lido como texto UTF-8 e inserido diretamente na caixa acima.
Saída
Guias
Um arquivo .po é a metade editável por humanos de uma tradução GNU gettext — texto simples, um par msgid/msgstr por string. Mas nada que realmente carrega traduções em tempo de execução lê diretamente: PHP, Python, glibc e WordPress todos esperam o formato binário compilado .mo (Machine Object), normalmente produzido pela ferramenta de linha de comando msgfmt. Este conversor faz a mesma etapa de compilação no seu navegador, para que você possa passar de .po para .mo sem instalar gettext ou uma cadeia de ferramentas PHP/Python.
Como usar
Cole o conteúdo do seu arquivo .po na caixa de texto ou carregue o arquivo diretamente — de qualquer forma, o arquivo nunca sai do seu navegador. Clique em Compilar para MO e baixe o messages.mo resultante.
O que é suportado
- Strings multi-linha — um
msgid/msgstrdividido por várias linhas entre aspas é reunido novamente, assim comomsgfmt. - Formas plurais —
msgid_pluralemsgstr[0],msgstr[1], … indexados são compilados na codificação binária plural unida por NUL do gettext, para que as buscasngettext()/_n()funcionem corretamente. - Contextos de mensagens — um
msgctxté dobrado na chave compilada exatamente comopgettext()/_x()espera. - Entradas fuzzy e não traduzidas são ignoradas, correspondendo ao comportamento padrão de
msgfmt(sem--use-fuzzy). Uma string sinalizadas como#, fuzzyé uma adivinhação aproximada de máquina que um tradutor não confirmou — enviá-la como uma tradução real seria pior do que voltar ao texto original, então é deixada fora do catálogo compilado em vez de ser confiável. - Entradas obsoletas (
#~-prefixadas, deixadas pormsgmergequando uma string desaparece da origem) são descartadas, assim como uma compilação real.
Privacidade
Tudo acontece do lado do cliente — análise do texto .po e montagem do arquivo binário .mo ambas são executados no seu navegador. Nada é carregado em um servidor.
Por que minha string traduzida não está aparecendo no arquivo .mo?
Verifique se está sinalizada como #, fuzzy no arquivo .po. Strings fuzzy são intencionalmente deixadas fora do catálogo compilado (veja acima) — remova a flag fuzzy depois de confirmar que a tradução está correta, então recompile.
O arquivo compilado funciona com WordPress?
Sim — WordPress (e qualquer outro consumidor PHP gettext/Gettext_PO) lê arquivos .mo padrão. Coloque o arquivo compilado na pasta languages/ do seu tema ou plugin usando o nome de arquivo esperado <textdomain>-<locale>.mo.
Preciso fazer o caminho inverso, de um .mo compilado de volta para um .po editável
Essa é uma etapa de descompilação separada — uma ferramenta MO para PO está planejada. Enquanto isso, a maioria dos editores com reconhecimento de gettext (Poedit, msgunfmt do próprio gettext) pode abrir um arquivo .mo diretamente.
Para editar outros formatos de tradução/configuração estruturada, consulte o Formatador de Arquivo Java Properties.
Mais formas de usar esta ferramenta
API REST
curl -X POST https://api.iotools.cloud/v1/tool/po-to-mo \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"po": "#\nmsgid \"\"\nmsgstr \"\"\n\"Content-Type: text/plain; …"
}'Troque pela sua própria chave, da sua conta. Os campos da ferramenta viram o corpo da requisição — sem envelope.
Peça a um agente de IA
Use the IOTools `po-to-mo` tool (PO to MO Converter) on this input:
YOUR_INPUT_HERECole isto em qualquer agente conectado ao servidor MCP do IOTools e depois adicione sua entrada.
Widget para incorporar
<iframe
src="https://iotools.cloud/embed/po-to-mo/"
width="100%" height="520" frameborder="0" scrolling="no" loading="lazy"
title="Conversor de PO para MO — iotools.cloud"
sandbox="allow-scripts allow-forms allow-same-origin allow-downloads allow-popups allow-popups-to-escape-sandbox"
allow="clipboard-write"
style="width:100%;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden"></iframe>
<script src="https://iotools.cloud/embed.js" async></script>Coloque isso na sua própria página — grátis, sem chave, só um link de volta.
| Custo por chamada | A partir de 5 créditos |
|---|