What is the difference between the .po .mo and .pot localization files?

These are not any kind of WP’s own format but rather just gettext file types which WP implements.

Translate Handbook has following definitions in its Glossary:

MO files: MO, or Machine Object is a binary data file that contains
object data referenced by a program. It is typically used to translate
program code, and may be loaded or imported into the GNU gettext
program.

PO files: PO files are the files which contain the actual
translations. Each language will have its own PO file, for example,
for French there would be a fr.po file, for german there would be a
de.po, for American English there might be en-US.po.

POT file: POT files are the template files for PO files. They will
have all the translation strings left empty. A POT file is essentially
an empty PO file without the translations, with just the original
strings.

The technical details of file formats can be found in gettext documentation:

Leave a Comment