Easy Digital Downloads in your own language

Easy Digital Downloads comes with over 120 language translations included. If yours isn’t included, is incomplete or you want to make changes to a language, you can create your own translation by following the steps in this document.

Table of Contents

Option 1: Use your own translation files

This short guide will show you how to use your own translation files and translate Easy Digital Downloads into your own language. You can also copy and existing language file and update it for you specific purpose using these steps.

1. Create your translation file.

Using POEdit, open the file in the Easy Digital Downloads plugin found here:

For example, if your language is France French the file name would be:

easy-digital-downloads-fr_FR.mo

If your language is Canadian English the file name would be:

easy-digital-downloads-en_CA.mo

Note that we store the translation files outside of the plugin's normal directory. This is so that when the plugin is updated, it doesn't overwrite your custom translation files. The wp-content/languages/plugins/ directory is safe from updates while the wp-content/plugins directory is not.

When EDD loads language files, it first checks wp-content/languages/plugins/, and wp-content/plugins next. If the same file exists in both directories it uses the first file it finds.

2. Change the language your WordPress uses.

To do this, log into your WordPress dashboard and go to "Settings" > "General" > "Site Language". Change it to your language and your translation files will be used.

Translating EDD Extensions

The process for translating any EDD extension is the same as the steps above. The only difference is the name of the plugin. For example, to translate the EDD Recurring extension, using POEdit open the .pot file included with the plugin which is found here:

wp-content/plugins/edd-recurring/languages/edd_recurring.pot

Now that you have the file open in POEdit, enter your translations into POEdit and then save your translation by going to "File" > "Compile to MO". Save the file so it sits in this directory:

wp-content/languages/plugins/edd-recurring/edd-recurring-de_DE.mo

Again, make sure to replace the "de_DE" with your language's WP Locale.

NOTE: Not all EDD Extensions have been updated to use that location for translation files so you may need to try placing them directly in the wp-content/languages/ directory. If you find an extension that isn't loading your translation file correctly, contact support.

Translating Child Themes

Child themes are different from extensions or normal themes because they can have their translation files safely contained directly within the Child Theme directory. This is because child themes are safe from updates. Depending on your child theme, you may or may not have a functions.php file. If you do not, create it in the root of your child theme.

When you save your .mo file from POEDIT for the child theme, save it to the /wp-content/themes/child-theme/languages directory. If you do not have a /languages folder in your child theme, create it.

Your file names will use the text domain of the parent theme you are translating. So if you are translating Vendd to Spanish, your file paths would be /wp-content/themes/child-theme/languages/es_ES.po and /wp-content/themes/child-theme/languages/es_ES.mo.

Integrations with 3rd party language plugins

Note, any problems with translations encountered when using a 3rd party translation plugin should be reported to the support / development team of the 3rd party plugin.

The WPML Plugin (3rd party)

Easy Digital Downloads is fully compatible with WPML, the WordPress Multi-Lingual plugin. In order for everything to be available for translation, however, you need to install a WPML “glue” plugin. WPML has published a complete guide on how to set everything up.

The Polylang Plugins (3rd party)

Easy Digital Downloads is fully compatible with Polylang, the WordPress Multi-Lingual plugin. In order for everything to be available for translation, however, you need to install a Polylang “glue” plugin. You may download a basic one on github.