LearnDash is an LMS plugin that allows you to build amazing educational websites. Learn how to create a fully functional multilingual educational website with WPML and LearnDash.
WPML core plugin and WPML String Translation add-on
If you’re new to WPML, check out our Getting Started Guide. It quickly walks you through all the translation options you can use.
One of these options is Translate Everything Automatically – the quickest way to translate and the easiest way to keep your content up to date. This feature automatically translates pages, posts, custom post types, custom fields, taxonomies, WooCommerce products, and more as you add and edit content.
Translating LearnDash Elements
The translation process consists of three main parts:
Translating categories and taxonomies.
Duplicating LearnDash elements (courses, lessons, topics, questions, etc) to other languages.
Manually translating and connecting LearnDash elements.
If you have Translate Everything Automatically turned on, all the content will be translated automatically. You will still need to manually connect LearnDash elements.
Translating LearnDash Taxonomies
LearnDash offers categories and tags for courses, lessons, and topics. To translate them, you need to set them as translatable. To do this, go to WPML → Settings and make sure the relevant taxonomies are marked as Translatable in the Taxonomies Translation section. You can then check out our full guide on translating taxonomies.
WPML automatically assigns the translated category and tag to the translated LearnDash element.
Duplicating LearnDash Elements
The first step to translate LearnDash elements is to duplicate the course(s) along with associated lessons, topics, quizzes, and questions to the secondary language you want to translate your course into.
You can do this by navigating to WPML → Translation Management:
Use the Element type drop-down menu to select Course and then click on the Filter button. You will see a list of all the courses that you have on your website.
Choose the course(s) you want to translate.
In the Select translation options section, choose the Duplicate content option that corresponds to the languages that you want to translate your course(s) into. Then, click the Duplicate button.
Duplicating LearnDash elements
Repeat the steps 2-4 to duplicate other elements (lessons, topics, quizzes, etc) associated with the course(s) that you want to translate.
Translating and Connecting LearnDash Elements
Make sure to translate LearnDash elements in this exact order:
Course
Lesson
Topic
Quiz
Question
The reason is that you want to assign each element to its translated version. For instance, when you translate a lesson, you want to assign it to the translated version of the course. This is why you need to translate the course before translating the lesson.
In this example, we cover the steps of translating a lesson. Note that we have already translated our course to be able to assign the translated lesson to it.
Navigate to the lessons screen and use the language switcher in the top admin bar to choose the language you want to translate your lesson into.
Click the Edit link to open the lesson editing screen.
Navigating to the secondary language lessons screen
If a dialog about editing a translation appears, click Edit anyway.
Selecting to edit the translation using the block editor
In the Language box, click the Translate independently button to translate the lesson content. When translating any of LearnDash elements, make sure that you don’t translate any shortcodes.
Converting the duplicated lesson to translation
Once you complete translating the lesson content, navigate to the Settings tab.
Choose the translated version of the course under the Associated Course drop-down menu and click the Update button to save the translation.
Assigning the translated lesson to the translated course
Repeat the same steps to translate all the lessons associated with your course. You can follow the same steps to translate any of the LearnDash elements.
It is worth noting that answers don’t get copied to the secondary language when duplicating questions.
As a workaround, you can manually add the questions’ answers in the secondary language. To do this, follow the steps below:
Edit the question in the secondary language.
Choose the Question type.
Manually add the translated answers.
Manually adding the translated answers
Make sure to link the translated version of the question to the translated version of the quiz from the Settings tab. Finally, hit the Update button to save the translation.
Associating the question to the translated version of the quiz
Translating and Connecting LearnDash Elements When Enabling Shared Course Steps
If you enable the shared course step, you cannot link the LearnDash elements that you have translated from the Settings tab. Instead, you need to link the elements that you have translated using the Course Builder. This is actually how LearnDash works even if you are building your site in one language.
Associating the course elements using the course builder
Check out LearnDash’s guide for detailed instructions on associating course elements using the Course Builder.
Translating LearnDash Texts
Besides courses, lessons, and topics contents, LearnDash has global texts such as the topics navigation buttons.
The lesson navigational buttons
To translate these texts and other texts that come from the LearnDash plugin, follow these steps:
Go to WPML → String Translation.
Search for the text that you want to translate. In this example, we translate the Mark Complete text.
Click the plus icon, add the translated text, then press Enter on your keyboard to save.
Translating LearnDash texts
It is worth mentioning that you will find all LearnDash texts under the learndash text-domain.
Some of LearnDash texts include placeholders such as Next Topic. To search for this text on the String Translation screen you need to search for Next %s and look for the placeholder: Topic context.
Searching for texts with placeholders
Translating LearnDash Pages
LearnDash offers shortcodes and Gutenburg blocks that allow you to insert its content into your pages. For example, you can create a page that lists all the courses on your site using the [ld_cour se_list] shortcode.
You can translate pages that include LearnDash blocks or shortcodes in two ways:
Using WPML’s Advanced Translation Editor. Note that the shortcodes won’t show on the translation editor screen. WPML automatically copies the shortcode to the secondary language page. We recommend this method to translate pages.
LearnDash allows you to send email notifications to the website admin and the user when a user completes a quiz. Currently, WPML supports sending email notifications in the site’s default language only.
Known Issues
WPML works fine with this plugin, but sometimes there could be minor issues we're working on. This is expected as both plugins provide frequent updates.