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
- Open up Poedit
- Go to File -> New Catalog then select the .pot file
C. A new window will pop up asking you some information. It’s all optional so fill in what you’d like then click OK.
D. Yet another window will ask you where and with what name to save your new .po and .mo files.
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.
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.
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.
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!
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?
For now the only plugin able to translate the presentation page custom content is qTranslate X.
I am working with WPGlobus with the Tempera theme. It is a free plugin and it translates perfect.
Thanks for the info. I will check it out and update the FAQs accordingly.
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
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 http://www.cryoutcreations.eu/forums/t/change-comments-title-from-leave-a-reply 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?
Why this tutorial bypassing issues caused by fonts? How to use them in order to display characters which are specific for latin-extend?
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.
Does the presentation page now accept translations? I am needing French and Spanish.
For Tempera theme, there is a problem : _tempera-fr_FR,mo, fr_FR.mo, tempera-fr_FR.mo… in languages directory : no translate. help please ?
What problem? Could you give more details?
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??
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.
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.
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.
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
The presentation page does not yet support translations.
Ahh, OK. Thanks for writing back to let me know.
Now that’s a good tutorial. You should know that it’s also possible to use this online tool to easily translate WordPress themes – https://poeditor.com/ There’s even a plug-in you can download to speed up the file management process, which integrates the POEditor API to the WordPress account – http://wordpress.org/extend/plugins/poeditor/ I highly recommend it.
Ah…the light just turned on. I was wondering how to do this. Thanks for sharing this!
Hah this article is very fine! Humble step 5 approved. Thank you for sharing usefull knowledge.