Data format

POT converter

A .pot file is a gettext Portable Object Template: the same grammar as a .po file, but with every msgstr deliberately empty. It is the extraction output — the list of every translatable string found in a codebase — from which each language's .po file is created and later merged.

Private for supported formats — processed in your browser

Convert supported files

Runs on your device

Drop POT files here

Batch files can each use a different output. Nothing uploads for local conversions.

Working inputs include camera RAW, browser-local audio/video, PDF, CBZ/CBR comics, office documents, ebooks, markup, 3D models, structured text, images, and archives.

Where POT comes from

The template emerged with gettext itself as the answer to a workflow problem: translators needed a canonical list of source strings that no individual language owned. `xgettext` scans source code to produce the .pot, `msginit` turns it into a new language's .po, and `msgmerge` folds later template changes into existing translations while marking newly-changed entries fuzzy. That three-step cycle is still how most open-source projects are translated.

How POT works

  • Syntactically identical to .po; the difference is semantic — msgstr values are empty by definition.
  • Header fields carry placeholders such as CHARSET and PACKAGE VERSION that msginit fills in per language.
  • Source references (#:) matter more here than in a .po, because they are how a translator finds the context of a bare string.
  • The template has no Language field set, since it belongs to no locale.
  • Regenerating a template and merging is a routine operation; templates are not hand-edited.

When to use POT

  • Handing a complete string inventory to translators or a translation vendor
  • Diffing two releases to see exactly which user-facing strings changed
  • Seeding a new locale without copying another language's translations by accident
  • Auditing a codebase for strings that were never externalised

Strengths and limitations

Strengths

  • One canonical source of truth for what is translatable
  • Carries source references, so a string can be traced back to the line that produced it
  • Merging is a solved problem with standard tooling

Limitations

  • Contains no translations, so it is easy to mistake an empty catalog for a broken one
  • Only as accurate as the extractor — strings built by concatenation are silently missed
  • Requires the gettext toolchain to be genuinely useful in a workflow

Compatibility

Any tool that reads .po reads .pot, since the grammar is the same. Novus Convert converts templates to and from the other localization formats and preserves the empty-target semantics — a template converted to XLIFF arrives with empty targets rather than targets echoing the source, which is what makes it still usable as a template.

Identifiers, source strings and context survive. Empty targets are preserved as empty rather than being filled from the source. Header placeholders and source references are not carried into formats with no equivalent field.