Free tool✦

Convert PO to Excel and back

Turn a gettext .po file into a spreadsheet, translate the target column, and rebuild the .po with every msgid, context, and comment where it was. Free, no sign-up, and processed entirely in your browser.

Everything runs in your browser. Your files never leave your device.

Step by step✦

How to translate a PO file in Excel

Four steps and a couple of minutes for a typical catalog.

  1. Upload your .po file

    Drop a .po or .pot file onto the converter. It opens in your browser; nothing is sent to a server.

  2. Export to a spreadsheet

    Download an Excel or CSV file with one row per entry. Each row holds the context, the source string, an empty target cell, and the developer comments.

  3. Translate the target column

    Open the sheet in Excel, Google Sheets, or any editor and fill in the target column. Leave the context and source columns untouched.

  4. Rebuild the .po file

    Switch to Spreadsheet to PO, add your original file and the finished sheet, and download a .po with your translations written into every msgstr.

What is a PO file?

A PO file is the translation catalog used by gettext, the localization system behind most open-source software, WordPress, Django, and many desktop apps. Each entry pairs a msgid (the source string) with a msgstr (its translation). It can also carry developer comments, source references, and a msgctxt that tells two identical strings apart. Plural strings add a msgid_plural and one msgstr per plural form.

Translating a large catalog by hand in a text editor is slow and easy to get wrong. This converter flattens every entry into a spreadsheet row, so you can translate in Excel or hand the file to someone who doesn’t know gettext. It then writes the translations back into the original file. The .po stays the master copy: only the msgstr lines change, so comments, flags, references, and formatting stay exactly as they were.

FAQ

  • PO files hold the translations for software built on gettext, including WordPress themes and plugins, Django and Flask apps, GNOME programs, and many others. A .pot file is the untranslated template; a .po file is one language’s translations of it.
  • No. The whole tool runs in your browser. Your files never leave your device, and nothing is stored or sent to a server.
  • Yes. The context column carries the msgctxt, the note column carries the extracted comments and source references, and each plural form gets its own row. When you rebuild, the tool writes into the original file, so everything you did not translate stays as it was.
  • Export the .po to Excel or CSV, fill in the target column for each row, then use Spreadsheet to PO to write the finished translations back into a new .po file. You never touch the gettext syntax.
  • The converter only rewrites the msgstr text, so structure and comments survive. If a translation drops a placeholder such as %s or %d that its source had, the tool flags that entry so you can fix it before shipping.
  • Yes. Keep the original .po and translate the target column in the sheet. Spreadsheet to PO then merges your column back into the file, matching each row to its entry by msgid and context.

Translating more than a file or two?

Transept keeps your glossary and past translations in sync across every PO file and language. Your team reviews the AI drafts, comments on them, and accepts or rejects them. The converter is free and needs no account.