What is PO File (Portable Object)?

A PO (Portable Object) file is the translation file format of the gettext system. It is plain text: each entry pairs a source string (msgid) with its translation (msgstr), optionally preceded by comments, source-code references, and flags. Plural entries carry msgid_plural and an indexed set of msgstr forms.

PO files are designed to be edited by humans and diffed in version control, which is why they survived decades of tooling changes. The fuzzy flag marks entries whose source changed and whose translation needs review, an early ancestor of fuzzy matching in translation memories. A header entry carries file metadata, including the language and its plural-forms rule. For runtime use, PO files are compiled into binary MO files.

Even outside gettext-based stacks, PO remains a common interchange format: most TMS platforms and CAT tools import and export it, so it often serves as the bridge between a Laravel project and an external translation vendor.

#: resources/views/dashboard.blade.php:12
msgid "Save changes"
msgstr "Guardar cambios"

msgid "%d file"
msgid_plural "%d files"
msgstr[0] "%d archivo"
msgstr[1] "%d archivos"

Put the theory to work

LangSyncer manages your Laravel translations live: import lang files, translate with AI and publish without a deploy.

We use cookies to improve your experience and analyze site traffic. Cookie Policy

Cookie Preferences

Essential

Required for the site to work

Analytics

Help us improve the site

Marketing

Personalized ads and content