What if I told you that you didn’t have to create multiple versions of your English courseware to serve your non-English speaking/reading learners? It’s entirely possible to manage by utilizing triggers and states when developing with Articulate Storyline 2. Granted, this solution is not ideal for everyone’s situation, but if you find this is realistic for your projects, you’re in luck!

Ideal for Non-Player Courseware

Because variables and states can’t dynamically change the text of Storyline player buttons and labels, you’ll only be able to take full advantage of this tutorial if you rely solely on custom user interface (UI) elements for buttons and other toggles. As such, this example uses a practice file that utilizes a custom UI built within the slide master, which permits the manipulation of the custom UI.

If your projects follow this design method, or you just want to learn a new trick, proceed to download the practice file to follow along with the steps below. Additionally, you can view a live demo by clicking here.

Variable to Create

language Number 0

Suppose you are serving both English and Spanish speaking learners, but you don’t want to manage two separate Storyline project files. You can provide your Spanish translation within a text object state – meaning each text header and text body will need a state just for Spanish. In this example, I named my state ES.


Notice I have my English text in the Normal state. Because English is the default state, the language variable you created will only need to work to summon your ES text states.

Ballot Screen

The practice file features a ballot screen on the first slide which greets learners in both languages and allows them to select English or Spanish. Notice on the Spanish button, there is a trigger to set the language variable to a value of 1.


This has now set the expectation all text should display in Spanish. For your proceeding slides, you will need to have a trigger for each text object to change to their respective states to your custom ES state on the condition the language variable = 1.


Navigation Buttons

Suppose your learner selects Spanish on the ballot screen. He/she is taken to the next slide which is now displaying all the text in Spanish. In addition, the navigation buttons on the bottom and the Menu link at the top also display in Spanish. Triggers are present to manage this change on the backend via the slide layout. When exploring the practice file, head to the slide master to see how this works. You will see it functions identically to how the text objects are managed on a slide level.

Add a Third Language

The practice file contains only English and Spanish, but if you wanted to host a third language, you have the ability to do this easily. Suppose you want to add French as a third option on the ballot screen. To do this:

1) Add a button for Français on your first slide.

2) Add a trigger to your new Français button to adjust the language variable to equal 2.

3) On proceeding slides, add another state for each text object to host your French text. I suggest you name the text state FR to keep it simple.

4) Add triggers for the slide to change each text object to your new FR text states on the condition that the language variable = 2.

5) Heading to your slide layout next via the slide master, provide the French translation for your navigation buttons and Menu shortcut by also creating new FR text states and corresponding triggers.
Notice there are other slides in the practice file that also use states and triggers to swap English out for Spanish. Don’t forget to provide new states and triggers for those slides so French is included as well.

What About Narration?

If your module has narration, having the proper audio file play is a relatively easy task. To do this:
1. If you are only using English and Spanish, insert both audio files on the slide.

2. Next, create two triggers. For English, you will need the trigger to read as:

Play Media / English_file_name.mp3 / When Timeline Starts / On the Condition language = 0.

For your Spanish trigger:

Play Media / Spanish_file_name.mp3 / When Timeline Starts / On the Condition language = 1.

If you decide to add French into the mix, insert your French audio file, then create its trigger as:

Play Media / French_file_name.mp3 / When Timeline Starts / On the Condition language = 2.

All Done! ¡Todo Listo!

It’s up to you how many languages you want to support, but first make sure this solution is ideal for how your organization designs its eLearning. It’s a potential time saver, and it minimizes the number of files Developers must manage. If you found success with this translation method, tweet us at @eLearningBros to share your story!

stephen victorStephen Victor has been developing eLearning modules for 10 years for various companies and clients. He resides in Tampa, Florida.

Pin It on Pinterest