So, you are have a Moodle website that runs in multiple languages. To date, you've been doubling up all you text doing things like "This content is in English. / Ce contenu est en français." As a result, the site looks a mess no matter in what language you use Moodle. In addition, this results in an accessibility issue because users of screen readers get really confused when the alternate language comes through their speaker… and not even pronounced correctly. What can you do?

If you haven't come across it yet, take a look at the Multi-Language Content (v2) Moodle plugin available for free on Moodle.org. It allows you to create multi-language content that only displays in the currently selected language of Moodle. Be sure to follow the installation instructions as you need to enable it in order for it to have any effect. Here is how you would use it in your content:

Inline example:

{mlang en}This content is in English.{mlang}{mlang fr}Ce contenu est en français.{mlang}

Block example:

{mlang en}
This content is in English. 
You can have multiple paragraphs.
{mlang}{mlang fr}
Ce contenu est en français.
Vous pouvez avoir plusieurs paragraphes.
{mlang}

The cool thing is that you do not need to know any HTML or programming in order to use this. Just type the {mlang} tags around your content just like you would any other content.

As a result, when your user chooses to view Moodle in English, you will only see the English text. When viewing Moodle in French, you will only see the French text. You can actually have as many languages as you want by repeating the series of {mlang} sections.

If you were working with Portuguese, you would use (the order of the languages is not important):

{mlang pt}Este conteúdo está em Português.{mlang}{mlang en}This content is in English.{mlang}

But what if you actually want text to appear in multiple languages on the same page? Take a look at the Moodle FilterCodes plugin. One of the many supported tags is the {langx xx}Your text{/langx}. For example:

{langx pt}Este conteúdo está em Português.{/langx} / {langx en}This content is in English.{/langx}

As a result, the text for both languages will appear on the page however the {langx} codes will be replaced by HTML that correctly tags the text in the appropriate language so that screen readers read it correctly.

Another important use would be if you needed to mention the name of a company. For example, if I had a Spanish Moodle website but wanted to mention the name "General Motors", you would wrap it in {langx} tags so that gets pronounced correctly by a screen reader regardless of Moodle's language:

{langx en}General motors{/langx}

Note that these special tags are not available on learn.moodle.net or moodlecloud.com. You can only install this plugin on your Moodle site.  While most of Moodle supports this, support can vary depending on the theme and plugins you use. If your theme or plugin doesn't support this, contact the developer and ask them to fix this problem by making use of the Moodle "format_text()" or "format_string()" functions. You don't need to know the technical details. The developer will hopefully fix the problem and publish an updated version of their plugin or theme.

Let me know if you have any questions.

Best regards,

Michael Milette