If you’ve been following the news on Adapt, you may have seen that there was a release of a shiny new version of the Adapt Framework. You may have read that support for multiple languages was added.
In this blog post, I am going to describe the features that were added to create responsive eLearning content supporting multiple languages. I will also describe briefly what a localisation workflow might look like and introduce tools that will increase your productivity.
First, let me start by defining our requirements on localising eLearning content. Everything the learner interacts with needs to be translatable. This includes text but also assets like images, videos and audio files. Furthermore, additional learning resources need to be available in the language selected by the user. Finally, but most importantly, the whole user-interface, such as button texts and ARIA-labels for screen-reader support, must be translatable and managed properly based on the learner’s preferred language. Each language might also have a slightly different content structure or adaptations to the layout and design.
With some minor exceptions, Adapt takes care of all of this!
Adapt allows us to localise our course and apply language-specific styling. But how can our learner pick the right language? There is a plugin for that, called the “adapt-contrib-languagePicker”.
This extension is included in the core framework and maintained by the core team. The language picker displays a welcome message once the course is loaded. Furthermore, it lists all the languages a course supports. When the learner selects one language in the list, Adapt loads and displays the course in the preferred language. The user-selected language is remembered. On course revisit, Adapt automatically loads the course in the language the learner chose previously. But there is always a chance a learner wants to change the preferred language. However, doing so will reset a learner’s progress. This is why the user must explicitly confirm this step.
As you can see, this release update of the Adapt Framework offers everything you need to build multi-language courses out of the box. Let’s continue with looking at what a possible localisation workflow might look like.
You would probably start by creating a master course in one language.
Once you are happy with it, the next step is to duplicate this course for all other languages with the translated content. This usually includes tasks like collecting all the text that needs to be translated. After having the text translated, you replace the content with your translations. Then you relink some assets that are unique for each language.
This might sound like lots of copy pasting and even more copy pasting errors. But Adapt has got one more ace up its sleeve for you: automated text export and import.
This feature contains several grunt tasks that read your master course and copy text visible to the learner into csv or json files. You may hand these files over to a translation agency. Once translated, they can be easily imported. This step will create a copy of your (master) course structure and replace the text with your translations. No copy pasting, and hopefully no errors. All that is left for you to do is relink your assets if required.
Localisation workflow step-by-step:
- Create your master course
- Export text content into language files
- Import translated language files
- Relink assets
- Include the LanugePicker Plugin
- Build your course
Can multi language courses be created with the Authoring Tool also?
Unfortunately not yet. To be more precise, not entirely. You are able to create the master course in the Authoring Tool. You may also do the localisation in the Authoring Tool. But you will need the Framework to create a course that contains multiple languages.
We are working on fixing this and updating the Authoring Tool to make this possible. If you are interested in this, I highly recommend you to join the Adapt Community Forum and gitter chats. You are more than welcome to suggest features and give feedback. This will help the core team to develop the features the community really needs.
Do you need more information on a specific topic? Please let me know in the comments below.