All our plugins and theme have multi-language support. To create new translation, best program available is POEdit, a free program that will help you create valid translation files. This program will help you create translation, and later update it when the new version is released.

Step 1: Installing the POEdit

You need to download latest version of the program from: Installation is simple much like any other program. There are versions for Windows, Linux and Mac OS so you can work on any platform with it.

Step 2: Creating new translation project

In File menu you have option ‘Create catalog from POT file’. Dialog will appear and you need to give it POT file you want to translate. Program will ask you for the project info, and here you can add info about project, translation language and yourself. After that you need to save catalog. You can use default name for now, we can rename file later. And, now if POT file is valid, you will see the list of translation strings. If the POT file is not valid you will get information about errors.

GD Star Rating always includes latest POT file with all the strings in the current plugin version, and will use this plugin as an example. This file is: gd-star-rating.pot and is in the main plugin folder.

Step 3: Translating

This is pretty obvious, you need to translate all strings. Below the list, you will see two two fields, one with original string, and the other for your translated string. Right click on any string in the list, will show you comments for that string, and usually that is location of the string in the original files, in our case plugin or theme. You can also copy value of original string into translated string.

Important: Don’t translate %s you found embedded in the strings for translation, just leave them. They represent some other value added by the plugin or theme code, usually numbers or something else.

Step 4: Proper naming of translation files

Once you complete translation, you need to save it. Program will generate two files. One with extension MO and other PO. Both files should have the same name, only different extension. Name of the file also need to have a language code. So, here is the example of proper named files for Serbian translation:

  • gd-star-rating-sr_RS.po

As you can see, main part is the same as the name of POT file, than you add minus sign and after that language code. Full list of these codes can be found here: All our plugins and themes use this naming convention.

Plural settings

Plural settings

Step 5: Setting for plural forms

This is a step dependent on the language you translate into. For most languages, there is a singular and plural words (2 plural forms). Some, like Russian have 3. Before you start translating, you need to set this first. When you create empty translation, or you want to change existing to support plurals, open Catalog menu, and in that menu open Settings. You need to fill plural form part. For most languages this is:

nplurals=2; plural=n != 1;

To get more info on the subject, check out this post: Translating Plural Forms with Poedit.

Plural translate

Plural translate

Once you set plural form, when you get to translate plural word, main POEdit form will look a bit different, as shown on the image on the left, with singular and plural boxes and two form elements to translate them.

Step 6: Updating the translation

When the plugin POT files is updated, you need to update your translation files. Once you receive new POT file, you need to open PO file of your translation (‘gd-star-rating-sr_RS.po’) in POEdit and use ‘Update from POT file’ option in ‘Catalog’ menu. Point to POT file, and program will show you what is new and will add this new strings for you to translate. Also, will show you what is became obsolete, and will remove old and no more needed strings from your translation. Program will try to recognize the changes and offer you the ‘fuzzy’ translation.

47 Responses to “Translating plugins or themes using POEdit”

  1. Rami | July 6, 2010 at 1:05 am

    Is there a simpler way?

    something like – – but for plugins?

    • MillaN | July 6, 2010 at 11:40 am

      I plan to install GlotPress for easier translation. But, since that project is far from completed, some things will need to be manual (work with users for instance, creating translation sets). Hopefully, I will set it in the next week or two. It will be for premium plugins and themes only, and same award system will apply as with normal POEdit translations.

  2. denisforigo | July 22, 2010 at 12:57 am


    I’m using GD WPML and the GD CTP tools, but the titles of the widgets are not being translated. What should I do?


    • MillaN | July 22, 2010 at 1:10 am

      I have no idea how WPML works but the only thing I can do is to wrap the titles prior to displaying into the __() language function. It will be added in next versions of both lite and pro.

  3. denisforigo | July 22, 2010 at 1:30 am

    And in that function I could put __ () in the interim, until the next version be released?

  4. Mindspins | September 1, 2010 at 10:44 pm

    I did a full Dutch translation with POEdit to gd-taxonomies-tools-nl_NL and moved the files (po and mo) to the languages folder, but the plugin is still in English. Tell me how to get it to work and I’ll send you the files.

    • MillaN | September 1, 2010 at 10:48 pm

      Is your WordPress Dutch version? If you don’t use translation for WordPress, you can’t use translations for individual plugins. That’s the way WP is made. Can you send me translation to include it with next plugin release.

      • mindspins | September 1, 2010 at 10:51 pm

        Yes, my WP is Dutch. What do you mean with “If you don’t use translation for WordPress”? Is this a plugin? Everything I need to do to get it to work ;-)
        Where can I send the translation?

        • MillaN | September 1, 2010 at 11:11 pm

          I mean that WP must be set to load translation (language set in wp-config). But, maybe you did something wrong with translation. Send it to milan at gdragon dot info. I will check it out. Plugin support translations and it works, there are several translations available for long time.

          • mindspins | September 1, 2010 at 11:32 pm

            Never mind last comment about spanish version. I guess posts crossed eachother. I’ve send you the files, hope you’ll get it to work. Cheers!

          • MillaN | September 1, 2010 at 11:53 pm

            For some reason Dutch WP uses non standard locale: only ‘nl’ instead full ‘nl_NL’. Rename files and it will work.

      • mindspins | September 1, 2010 at 11:16 pm

        And how did they get the spanish version to work?!

        • Menno | May 15, 2011 at 12:54 pm

          Hello Mindspins,

          Did you already find out why your translation doesn’t work. If so, would you please let me know?
          I would like to change my gd ratings into dutch as well…..

          MilaN, great explanation on how to translate a wordpress blog. Thank you very much!

  5. Hadi | September 11, 2010 at 12:05 pm

    I have translated GD Star Rating into Farsi but nothing change and the plugin still in english
    i mention that i save the translation file in language folder of gd star rating and rename it as & gd-star-rating-fa_IR.po

    • MillaN | September 11, 2010 at 1:11 pm

      Most likely your WordPress is not using fa_IR as a language code. These files need to use same language code as WordPress. Check that in wp-config.php or the names of WP translation files for your language.

  6. niraj | September 28, 2010 at 5:32 pm

    your plugin is great
    i just want to ask that if i have a whole set of taxonomies to be added to database,
    is it possible by running some MySql query, it will take all taxonomies into database?
    i mean instead of adding one-one taxonomies, can i add all together through some MySql query?
    cause i have lot of taxonomies and if i go adding one by one then it will take a long time
    or is there any other way to add a huge collection of taxonomies to database?

  7. niraj | September 28, 2010 at 5:35 pm

    the above question was for the plugin
    GC CPT Tools

    • MillaN | September 28, 2010 at 5:59 pm

      Yeah, Pro version of GD CPT Tools have option to import terms for a taxonomy from a file.

  8. niraj | September 28, 2010 at 6:03 pm

    so how do i do that,
    i mean if i go for the pro version, den how do i create that taxonomy file from which i can take all the taxonomies?
    or is there any option in pro version that i just simply type all my taxonomies with commas separated and then directly it takes or inserts it into database?

    • MillaN | September 28, 2010 at 7:24 pm

      To import terms they need to be in text file, one term on each line. There are two example files included with plugin, one for plain taxonomy, and other for hierarchical taxonomy. On plugin Tools panel is an import tool, you select text file, select taxonomy you want terms to be imported into, and that’s all.

  9. niraj | September 29, 2010 at 6:36 am

    thanks for your help
    and one more problem which i found

    when i go to add taxonomy, and after entering some data when i click on “Add new Location”
    nothing happens,
    when i refresh the page then the New taxonomy is added
    i think AJAX is not working
    i am posting here screen shots
    check it out


    here i have clicked on add but it is not adding


    here when i refresh the page then it appears
    why so?
    is there any AJAX problem

    • MillaN | September 29, 2010 at 9:36 am

      Well, this has nothing to do with my plugin, it’s not changing anything on that page nor is making AJAX stop working.

  10. Rishi | September 29, 2010 at 8:24 am

    Hello MillaN,

    I want to enable the ajax in you GD Custom Posts And Taxonomies Tools: Taxonomies page. The ajax i want there is a kind of the ajax enabled in Categories of the Dashboard cause Categories are itself a predefined Taxonomy.

    Is there any source to make that thing possible?

    Please reply me as soon as possible.

    Thank You.


    • MillaN | September 29, 2010 at 9:37 am

      As I replied in previous comment, this has nothing to do with my plugin.

  11. niraj | September 29, 2010 at 9:47 am

    @ MillaN
    ok but do you have any idea why only after refreshing the page i am getting the taxonomy?

    • MillaN | September 29, 2010 at 9:50 am

      Something has caused AJAX to stop working, most likely some plugin that adds own JS code the the pages that are broken.

  12. niraj | September 29, 2010 at 9:58 am

    but my other AJAX’s are working?

    ok but i will try turning off all the plugins,
    but if still doesn’t works then?

  13. niraj | September 29, 2010 at 10:04 am

    hey i deactivated all the plugins accept GDCPT
    but still not working
    do you have any idea about this?

    • MillaN | September 29, 2010 at 11:54 am

      If you use some older version of GDCPT, there were some problems 3-4 months ago, but not now. Use Firebug in Firefox to debug the page and see why it’s broken.

  14. niraj | September 29, 2010 at 12:14 pm

    i did everything installed the latest copy
    but still same
    firebug is also not showing anything

  15. niraj | September 29, 2010 at 12:20 pm

    and also when i try to delete some taxonomy then i get an error
    “An unidentified error has occurred.”

    and in firebug it shows this
    chk it out

    • MillaN | September 29, 2010 at 1:13 pm

      I will check it again, maybe I missed something. Anyway, both Lite and Pro editions of plugin have planned releases for Monday, and I will resolve any problems by than.

  16. niraj | September 29, 2010 at 1:17 pm

    millan i think that problem is not with your plugin, it is with our wordpress
    cause when i try to add normal categories there also AJAX fails, i mean when i refresh the page at that time only category is added
    i tried this by also deactivating all the plugins even GDCPT

    if you know then please help me

    • MillaN | September 29, 2010 at 1:32 pm

      It can be a theme problem. Some parts of the theme can load on admin side also, and they can cause problems if the theme is not properly tested and coded.

  17. niraj | September 29, 2010 at 4:34 pm

    i dont think it is theme problem cause,
    in my computer (local host) GDCPT is working fine with the same theme, which i have on website

  18. niraj | September 29, 2010 at 5:16 pm

    any way thanks for your help

  19. Niraj | October 21, 2010 at 11:37 am

    OFFTOPIC. Removed.

  20. Niraj | November 10, 2010 at 11:28 am


  21. mouridis | June 9, 2011 at 3:21 am

    I’m interested on purchasing R8 single dev but I’ll have to translate the theme in Greek. Seeing the tutorial video of the theme, I imagine it will be hundreds of strings to translate. Since I’m not interested on translating the backend portion of the theme but only what site visitors will see, is there an easy way to translate only that? I mean, how can I easily figure out which strings are displayed only on the backend so I leave them untranslated.

    Thank you in advance.

    • MillaN | June 9, 2011 at 10:49 am

      Translations are split into 2: one for framework (since framework is in all themes), and one for theme. Framework POT file has 1700 strings, and theme usually has up to 300. But, its not divided to front end / back end. In both translation files there are strings that appear in the front end, since framework holds some shared templates, and they are translated through it.

      To translate, I have set up GlotPress instance at for online translation, and you need only account on Dev4Press to access it. If you decide to do it, just inform me so I can add Green translation subset.

  22. Alex | July 27, 2011 at 1:19 pm

    Hi Millan, thx for your rockin plugin. (I mean GD Taxonomies tool)

    For me the translation is working, except in one part of the plugin.
    I added some widgets displayin dropdown list of the taxonomies terms, but there is one thing i cannot translate : the first option displayed.

    Maybe you can tell me if there is a solution, if there is a place in the php files where i can add a thing such as “_e($firstOption, ‘MyTheme’)” instead of “$firstOption” ?


    • MillaN | July 27, 2011 at 1:36 pm

      This is available as an option on for the widget and you can set it with rest of the widget settings.

  23. Alex | July 27, 2011 at 1:50 pm

    Hum. I see nothing. I can add a first option, but it’s always the same displayed. And cannot put php inside. Maybe it’s possible in the premium version.

    • MillaN | July 27, 2011 at 2:45 pm

      There are many differences with Lite and Pro, even with widgets:

  24. irisi | March 30, 2012 at 4:51 pm

    I have been using PoEdit lately but I have a problem.
    I have WP in albanian and I am translating my theme in albanian. but I don’t know where to place the diles for the theme translation. I know that for WP you do in the configuration file define (‘WPLANG’, ‘sq’); but how do I do it for the theme ?

    Thank you

    • MillaN | March 30, 2012 at 4:54 pm

      Depends on a theme where the files are expected. You should contact theme author for this and about possible naming convention.

Leave a Reply

Dev4Press Plugins Pack

Dev4Press Plugins Pack

GD bbPress Toolbox

GD bbPress Toolbox

GD Custom Posts And Taxonomies Tools

GD Custom Posts And Taxonomies Tools

GD Press Tools

GD Press Tools

GD Products Center

GD Products Center

xScape Theme Club

xScape Theme Club