
You can use Poedit to pull all the strings from any plugin or theme you’re working on and use this to generate a POT file. Step 1: Create a POT File for Your Plugin or Theme
#Poedit plugin manual#
However, if you just want a tool to simplify manual translations, the free version of Poedit will do. There’s also a premium version available, including translation ‘suggestions’ and semi-automatic localization.

For this tutorial, we’re going to be using the free version of Poedit. Using Poedit to translate your WordPress themes and plugins is remarkably simple once you’ve installed the tool.
#Poedit plugin how to#
How to Translate WordPress Manually Using Poedit (2 Steps) This is all done through a user-friendly interface. This lets you create PO and POT files, edit them, and compile MO files. However, there’s little reason to do so when you have plenty of tools to help simplify the work. In theory, you can go through the entire process using a text editor and the command line.
#Poedit plugin full#
Once you have a PO file for your target language (including a full translation), you can compile it into an MO file. “Plural-Forms: nplurals=2 plural=(n != 1) \n” “Content-Type: text/plain charset=UTF-8\n” POT files usually look something like this: This includes all of the strings of the plugin or theme in a format that’s easy to read and translate into individual PO files.
#Poedit plugin portable#
When you see plugins and themes that boast they’re ‘translation ready’, it means they include a Portable Object Template (POT) file. If you miss any text, your website will display the information in its original language, which you obviously want to avoid. This file includes every single translated string. Usually, the WordPress translation process starts with a PO file for each language you want to add. they can be read by WordPress) and are generated from PO files. Machine Object (MO) files: These translation files are machine-readable (i.e.Portable Object (PO) files: You need a unique PO file for each language you add to your site, and includes manual translations.WordPress uses dedicated language files to store translations of your site’s content (or strings of text) in other languages. In practice, if you want a multilingual website, you need to translate all of your site’s components and use specific files to store the information. Translating a website is almost never as simple as opening an HTML file and changing the text within. Let’s get to it! An Introduction to WordPress Translation We’re going to show you how Poedit WordPress translations work, and also discuss some alternatives. In this article, we’re going to talk about WordPress translation in general, then introduce the Poedit tool.

This applies whether you want to translate plugins and themes as well as your site’s content. Without the right tools, you won’t even be able to access the files and content that you want to translate.įortunately, there are a lot of options when it comes to tools for translating WordPress. You need to debug it.īut "Poedit" is a red herring, once a string is in the PO (and thus MO) and its translation is not being picked up, your problem is with the code using gettext library inside the plugin/theme/whatever, not the tool you happen to use to edit the translations.Translating a WordPress website (and its associated plugins and themes) involves a lot of work. The point is, nobody can check their crystal ball and tell you what the cause is in this particular case - it differs. Maybe it is, but it is evaluated too early, before the textdomain is read. Maybe the string isn't wrapped in a gettext function at all.

If that's not it, well, then use the Source Luke! Go find the string in the plugin's source code. First step: verify that's not the case, by changing some other translation. It's possible the file isn't being picked one for some reason (bad name, bad location, overshadowed by the same file in a higher-priority location).

My only guess so far is that the translation is somehow read from a nother translation file that has the same word defined in its index (but not translated)
