How To Translate a WordPress Plugin

We got this asked a lot. The official WordPress guide about translating is a bit confusing and isn’t focused on plugins, so I decided to write a short guide here. It will use WatuPRO as example but is also applicable to any other properly written and localization-ready WordPress plugin. Let’s go, step by step.

Update! Although the below information is valid, we now recommend much easier way to translate – just install the great plugin Loco Translate and let it save your files in wp-content/languages/plugins. If you decide to use it, you will not need the steps below except to translate the texts and to ensure your locale is set up in wp-config.php (step 4 below).

1. Get Poedit

Poedit is free editor for .pot files and de-facto the standard for working with them. Unless you have specific alternative in mind and a good reason to use it, I recommend you downloading Poedit, it’s available for most operating systems.

2. Open the .pot file

poedit

You actually need to go to File -> New Catalog from POT file. Select the .pot (in WatuPRO this is watupro.pot stored in the root) and double-click on it. Poedit will ask you about project title – you can use the default one. Then you’ll need to save the catalog as .po and .mo files. I recommend you properly name the target file right from this moment. The official docs are a bit lacking on this issue, and it’s very important. The name of your .po and .mo file should be constructed like this:

plugin-textdomain-with-dashes-locale_Locale.po.

To make it more clear, let’s use WatuPRO example again and a French translation. The proper name is:

watupro-fr_FR.po and watupro-fr_FR.mo

How will you know what are the correct parts of this name? The plugin textdomain is usually same as the folder name of the plugin, but to be safe you should seek information from its author OR open the main plugin file and search for “load_plugin_textdomain” call. The first word in the braces is the plugin textdomain. The proper name of your locale can be found at http://codex.wordpress.org/WordPress_in_Your_Language

Where to save these files? The best place is wp-content/languages/plugins folder. This way you will not lose your translation even if manually applying a new version of your plugin.

3. Translate It

Some guides will tell you that you have to translate everything. NO. This is not true. You can omit strings and translate only what you need translated. For example users of plugins like WatuPRO may want only the end-user facing texts translated. In such case you don’t have to spend time translating everything – the plugin will work just fine with only few localized texts. For the rest it will use the non-translated text (usually English).

Important: Don’t translate any %s or %d characters that you see in the texts. They will be replaced with dynamic texts and numbers. Just leave them as is.

4. Set Your Locale in wp-config.php

This is a very important step and without it nothing will work. Unless you already use a translated version of WordPress, it’s possible that your locale is not set in wp-config.php. So open the file and find “WPLANG”. You will see a line like this:

define(‘WPLANG’, ”);

You have to add your locale there. Using the French example, it will be:

define(‘WPLANG’, ‘fr_FR’);

That’s it. Save the file and re-upload it. Don’t worry, any plugins and themes that are not translated will keep working fine in English.

5. Re-activate the plugin

Some users report that even after going through the above steps, nothing happens. So you may need to re-activate the plugin to get it to work (this is not documented anywhere so I am not even sure why it’s sometimes required and sometimes – not).


3 thoughts on “How To Translate a WordPress Plugin

  1. Pingback: WHUZZUP!» Article Archive » [PHP Tutorial] How To Translate a WordPress Plugin

Leave a Reply