How to translate a WordPress theme

Translating WordPress themes is actually very easy. Yes, no matter who you are, no matter what you do, no matter how much computer knowledge you poses, you can translate a WordPress theme. It’s real easy and now with the help of some screenshots and some simple guidelines you’ll have your theme translated in no time. So without further ado let’s get on with it.

Step 1 – Download Poedit

While there are other programs as well, for the sake of clarity and simplicity we’ll just go with the one we use – Poedit. It’s free and you can download it from here. Then install it. That’s easy too. Just click next. Then … next. Then finish. And you’re done.

Step 2 – Find the Pot… file

The .pot file contains all translatable text from a theme and should be provided by the theme’s authors. Check to see if the theme in question has a /languages/ folder. If it does look inside it and and you should see the .pot file right there. If not, you could ask the theme authors to give it to you, but if they’re @#$@#s about it you can create it yourself from the theme files. There’s this simple tutorial from WordPress on how to create a .pot file.

By the way, all our WordPress themes have a .pot file in the /languagesfolder. So no need for all that.

Step 3 – Translate the theme

    1. Open up Poedit
    2. Go to File -> New Catalog then select the .pot file

Translate a wordpress theme - Open the pot fileC. A new window will pop up asking you some information. It’s all optional so fill in what you’d like then click OK.

Enter Poedit translation infoD. Yet another window will ask you where and with what name to save your new .po and .mo files.

Translating a WordPress theme - Enter language code for your translation

You should name the files according to your language code. Have a quick look here to see your language code. Type the language code and click save.

    1. All the text to translate should be visible now.
      Poedit text to translateClick on all the texts one by one and at the bottom of the screen you’ll have a field where to type your translation.

Translating theme text

Finish all your translations and save. Both the .po and .mo files should be created now.

4. Tell WordPress to use your new language files

If the theme has a /languages/ folder (and Mantra does) upload both the .mo and the .po files there. Check once more that they are named accordingly.

Now go back to your WordPress dashboard >> Settings >> General and select your language.

Language select

5. You have learned how to translate a WordPress theme

There isn’t really a step five unless you want to consider tapping yourself on the back and congratulating yourself on a job well done as a step. The theme is now translated and you can check it out. Go ahead, take a look at your new translated theme and verify that your new text looks good and matches context both on the live site and in the theme settings page (if the theme has such a page and all our WodPress themes do).

If you reached step 5 and you’re not clapping your hands in joy, leave a comment below and we’ll guide you there.


PS: To avoid all the off-line file editing, one can use the Codestyling Localization plugin and do the actual translating straight from inside the WordPress dashboard. See how in our follow-up tutorial on how to translate a WordPress theme II.

As the previously suggested plugin from part II is no longer available, we’ve written a part III to our translations tutorial. This procedure does not require you to play with files (too much) or install programs. All you need is the Loco Translate plugin for WordPress.

More Tutorials This article is part of our WordPress general and theme specific tutorials series. For more useful information check out our tutorials section.


  1. I tried to add one thing to the German translation of the Parabola theme (translate the “One Comment” line to “1 Kommentar” and “%1$s Comments” to “%1$s Kommentare). The text below the postings changed as expected. Unfortunately the commentcounter on the posts on overview page that were already translated changed back to the English language. I don’t know why this happened and whether/how I can avoid it. Any advice? Thanks!

  2. I love your nirvana theme, but i need to translate the presentation page as well as the rest of the website. Could you tell me if the presentation page can be translated now?

  3. i’m sorry, i ve just noticed that zed was talking about parabola theme… i’m using tempera!! but the problem i want to solve is still here… thank you , waiting for your reply

  4. hi, i’m searching for a solution… i want to translate “leave a comment” in other words. In italian it is “invia un commento” , but I want to write something else…. i’ve seen that this words are not in .po file so i’ve search on web and i ve found but it doesn’t work… i still read “invia un commento”. I don’t know if this is a problem because i want words in italian (and i don’t know how they are translated because they are not in .po file) or there is a problem in this solution with function.php— can you help me?
    thank you

    1. Fonts are more of a browser/system issue than a WordPress issue. WordPress does its job very well with using the proper featured that exist in current browsers for international character support.
      However, it can do very little to support obsolete software (like old browsers on/or old operating systems). For those specific, independent workarounds need to be implemented. Custom fonts is just one workaround.

  5. Hi ! The problem i have is that my website can be seen in 2 languagues, the default english and when the people presses the spanish flag it shows the spanish translation using Mealingua. But the THEME appears in English!! HOW do i translate this THEME to spanish only for the people redirected to that translated page??

    1. It really depends on the plugin you use. Plugins should take care of switching WordPress to the correct language depending on what the visitor is seeing.
      Both Mantra and Parabola have Spanish translations, so if you also add the WordPress translation, the plugin should do the rest and you should see the correct strings on site.

  6. How can I be sure that nobody else is already translating a theme into the same language as I intend to do? It’s a waste of time to translate it twice. For me, but also for that other person.

    1. If you mean one of our themes, check the Translations pages to see what languages it is already translated into (sometimes we post translations on the site before we include them in the themes).

      Other than that, there’s no way to know if somebody is working on a translation at this exact time.

  7. Very nice! But instead of translating info about content (such as the names of various navigation elements), I’m looking to do something a little different, i.e. I need to translate some page content.

    I use WPML to manage my translations, and this seems to be compatible with most of the Mantra theme. However, I don’t see a place where I can translate the presentation page (translate text columns, put in slides with translated text, etc.). Any advice? Thanks, Marly

This article is closed to new comments.