Localization – the door to many possibilities.
Whatever the language may be – German, French, Spanish, Arabic – you can localize it properly by first understanding PO files.
Here, we’ll give you an overview of what PO files are, the difference between PO and MO files, how to edit PO files, and WordPress plugin suggestions.
What are PO files?
PO stands for portable object. These are files that contain the source language and target language texts. For example, if I would like to localize my English website into German, my PO file would contain English text segments and the corresponding German translations.
Don’t confuse PO files with POT (portable object template) files. Because POT files are templates, they only contain the source file. That means, from our example above, our POT file would only contain English text segments.
PO vs. MO Files
We’ve clarified the difference between PO and POT files. But what are MO files?
MO stands for machine object. This is the file you generate after the translation process is complete. An MO file is, in essence, the same as a PO file, except it is machine readable.
For example, you would upload an MO file to your WordPress site in order to display your website content in the target language – such as German.
Editing PO Files
Now, let’s discuss methods for editing PO files. How do you translate the source text segments into another language? You can do this multiple ways. We will share two methods.
Manually
One method to edit PO files is to use Notepad or Notepad++. If you go this route, your screen will look similar to this:

You might be wondering what everything means. A line beginning with “#” indicates a comment. There are various types of comments. For an in-depth description, check out this helpful article.
Additionally, “msgid” indicates the source text. That would be English in this case. “msgstr” denotes the target text, a.k.a. the translation. In this specific example, the target text or translation is Spanish.
WordPress Plugins
Another option is to use plugins for editing POs. In our humble opinion, using plugins makes the process much easier.
Instead of reading jargon like “#” and “msgid,” you will see two columns – a source text column and a target text column.

This example uses Poedit from TranslatePress. However, there are other plugins as well. Here are a few suggestions for you:
| Plugin | Price | Free Version | Translation Management | String Translation |
| TranslatePress | starting at €79 | Yes, here | Yes | Yes |
| WPML | starting at $29 | No | Yes | Yes |
| Polylang | starting at €99 | Yes, here | No | Yes |
| Weglot | starting at €9.90/mo | 10 day trial | Yes | Yes |
String translation allows you to translate any text coming from WordPress admin, other plugins, the theme or your own custom code.
Translation management allows you the ability to set up a team of translators, assign them translation tasks and check the overall status of the site’s translation. With Poedit, you can even compile your PO file to an MO file.

Conclusion
Nowadays, you don’t need to be a tech expert to translate your website, especially if you’re using a popular platform like WordPress. But…if you do ever get stuck. YTranslations would gladly you you out with our website localization service.
Regardless of the platform or size, we are always happy to help. Feel free to request a quote.
Otherwise, we wish you great success with the localization of your website!
Localising a website or app and would rather not edit PO files yourself? Our website localisation services cover PO, XLIFF and WordPress/WPML projects – get a free quote.
Common mistakes when editing PO files
The errors that break a build are almost always mechanical. Placeholders such as %s are dropped or reordered, plural forms are filled in for a language whose rules need three or four variants, or a translator edits the msgid instead of the msgstr.
The other frequent problem is context. A PO string is usually a fragment with no sentence around it, so the same word can be a button label in one place and a heading in another. Reading the source comments before translating saves more time than any editor feature.
Software and website content of this kind sits within our translation services.


With great pleasure, I read your articles and implement everything on my site. You make very high quality content. Sincerely, David, author of the blog: https://espiargratis.org/