Plik PO (Portable Object) to tekstowy plik tłumaczeń używany przez GNU gettext – system internacjonalizacji stosowany w projektach opartych na Pythonie, PHP, WordPressie, Django i Drupalu. W formacie PO każdy wpis łączy ciąg źródłowy (msgid) z jego tłumaczeniem (msgstr), więc jeden plik PO zawiera jeden język.
Twój kod generuje szablon POT, na jego podstawie powstaje plik PO dla każdego języka, a proces kompilacji przekształca każdy plik PO w binarny plik MO wczytywany przez aplikację. Platforma lokalizacji oprogramowania Smartcat tłumaczy pliki PO i POT jako pliki dwujęzyczne: msgid trafia do niej jako tekst źródłowy, a tłumaczenie jest zapisywane z powrotem w msgstr.
.po: jeden język, tekst źródłowy i tłumaczenie obok siebie
.pot: pusty szablon wyodrębniony z kodu źródłowego
.mo: skompilowany plik binarny, który faktycznie wczytuje aplikacja