Back to Free Tools

FREE TOOLS

Gettext Catalog Converter

Compile PO to MO, decompile MO, inspect catalogs and convert gettext messages to JSON locally.

PO, POT (UTF-8 header), GNU MO revision 0, JSON

PO, GNU MO revision 0, JSON

Browser only

Runs locally in your browser. Your files, pasted content and generated output are not uploaded. Reset clears this tool’s working data.

This tool needs JavaScript. If it does not load, refresh the page and try again.

How to use this tool

  • Choose an operation, then upload one file or paste UTF-8 text. Binary MO requires a file.
  • For flat JSON to PO, provide the intended language code. Other modes retain the existing catalog header.
  • Process the catalog, review counts and any omitted-message policy, then download the result. Cancel terminates the worker; Reset clears the input and result.

Examples

A French PO entry with msgctxt "button", msgid "Open" and msgstr "Ouvrir" retains its distinct context in MO and catalog JSON.

Limitations

  • UTF-8 input up to 4 MiB, 20,000 entries, 64 KiB per string, 4 MiB decoded text and 20 plural forms. Output is limited to 8 MiB and processing has a 30-second worker deadline.
  • PO requires a non-fuzzy UTF-8 Content-Type header. GNU MO revision 0 is supported in either byte order; output is deterministic little-endian revision 0 without a hash table. MO system-dependent extensions and legacy character encodings are rejected.
  • Compilation excludes fuzzy, obsolete and incompletely translated entries. MO does not retain source comments, flags or obsolete records, so decompilation cannot recover them. Catalog JSON preserves supported PO comments, flags, context, plural strings and headers.
  • Plural-expression syntax is checked with a bounded parser but never evaluated. This is not a translation service or a language-specific plural/format-placeholder correctness checker. Unsupported syntax, duplicate identities and ambiguous JSON conversions fail explicitly.
  • Flat JSON means a single object of string values. Export omits headers/comments and rejects context, plural, fuzzy or obsolete messages. Nested JSON, ICU plural inference, multiple domains and legacy PO extensions are unsupported. PO quoting/layout is regenerated; text preview is limited to 30,000 characters.

Related tools

No items found.

More tools for your workflow

Explore the related desktop tool