Combining 2 separate (language) quizzes in 1 HTML Wrapper

Jan 20, 2020

Hi there,

I am hoping I can find some help on what I thought would be simple, packaging an English and French Quiz in one package with an HTML page for language selection to load the corresponding Quiz and track with pass or fail.

I have searched the discussions here and there are a lot of great points, using variables etc. The problem is I have close to 100 Quizzes in both languages. I could also combine both quizzes into one storyline file with language selection but the passing grade doesn’t work properly this way as it’s divided by 2. 

I have used storyline to produce 2 quizzes one English and one French published to scorm 2004. I then use a scorm 2004 wrapper and create a new manifest file to wrap up everything. The problem on testing is that it’s not tracking correctly.

I am comfortable with HTML and JavaScript if anyone has an idea of how to move forward. If articulate had an IDE similar to adobe animate I could probably program a simple “if and or “ statement.

These forums have been been very helpful and I’m hoping someone has tackled this and could provide some insights.

Scot

9 Replies
Scot Taylor

So, I did figure this out (sort of) if anyone is following but we have run into issues. The only way we could get it to work in our LMS was to set the index.html file (language selection) within the manifest to scormType="sco" and the actual quizzes to scormType="asset". If you set your quiz file to a scormType="sco" , most LMS will bypass the language screen and go directly to first language in your manifest.

Setting it up this way also presents another problem. Most LMS will launch the scorm package in a new window, if the user does not proceed immediately and select a language ie. closing the window, they will receive a complete (remember the index.html file is identified as a scormType="sco"). If the user actually proceeds through their language selection and begins the quiz and then leaves the quiz uncompleted the LMS will track as in progress and track correctly when they pick up again.

All this said we are back to the drawing board, starting over. I am surprised that there isn't a clear solution for this. Most responses to this query are at least 6 years old. We will go back and try to work out the variable solution.

Sally Wiedenbeck

Hi Scot,

I have done this with a variable before. Essentially, on the first page of the course the user clicks a button to select their language, which sets the language variable in the course. Based on that variable, when they click next, they are brought to the slides/quiz for the appropriate language.

One way to solve the reporting issue is to add a 'course complete' slide at the end, that both language branches come back to. Create this slide as a results slide (with passing score of 0, since if they get to this slide they have passed the quiz already and everyone who sees this slide is finished), and use that results slide to report to the LMS as complete. On this final slide, make a layer for each language, and use the language variable to determine what layer shows. The content on the slide layers can be very basic, essentially "Congratulations, you're finished! Click Exit Course" or whatever.

Scot Taylor

Thanks Sally, 

I really appreciate the suggestion. I had read of the variable option but have been dreading the amount of work involved with that option. I was hoping to find a cleaner, simplified solution where I could still import an excel file loaded with questions. I have 69 quizzes to create in both English and French (each with a minimum of 10 questions and up to 30)  and will then have more quizzes moving forward. I will be working out a few examples today, thanks again for the input.

Nancy Woinoski

yes, I use a variable to direct the learner to their language of choice. When I do this I create the English version of the course first because that is my native language. I then make a copy of the English course and have it translated into French or what ever languages I need. I then import the French course into the English course and set the variable to jump to the version of choice.

Scot Taylor

Thanks to everyone's help and other discussions within the forums I now have a working solution with one weird exception.  I have created a start slide where the user selects the desired language; in my case English or French. These buttons jump to the appropriate scene. Each scene in this case represents an English or French quiz. Each quiz scene has it's own results slide with a button that triggers the following JavaScript :

var player = GetPlayer();
var passPercent = player.GetVar("passPercent");
var percentScore = player.GetVar("percentScore");
function findLMSAPI(win) {
if (win.hasOwnProperty("GetStudentID")) return win;
else if (win.parent == win) return null;
else return findLMSAPI(win.parent);
}
var lmsAPI = findLMSAPI(this);
lmsAPI.SetScore(percentScore, 100, 0);
if (percentScore >= passPercent){
lmsAPI.SetPassed();
}else{
lmsAPI.SetFailed();
}
lmsAPI.SetReachedEnd();

When publishing I set the tracking to slides viewed even though we will never view all slides, the complete is set with the button in the results slide of the quiz. When I run this on our LMS or on SCORM Cloud everything works great, I can run the course, complete the quiz in either language and publish a "complete, passed or failed and my score" to the LMS.

Now I get to the problem. If we quit half way through, relaunch the course and resume where we left off, the LMS will only receive our score and a complete. If we resume the course it seems to bypass over the if statement in JavaScript. If we were to relaunch the quiz and instead of resuming where we left off, start over - no issues?  I could set the player in storyline to "Never Resume" on restart but that would provide a pretty poor user experience if the course and or quiz bank is long.

Does anyone have any idea why resuming a course I run into issues with the above code?

This discussion is closed. You can start a new discussion or contact Articulate Support.