Forum Discussion

AmyBradley-85bf's avatar
AmyBradley-85bf
Community Member
1 year ago

Switch languages from within Rise 360 course using Articulate Localization

Hi! We have used Articulate localization to translate our course into 5 languages. We then export to one SCORM package that contains all of the languages.

We use that SCORM file in 2 LMS's. In Litmos, the user is presented with the language, they choose the content and off they go. If they decide they want to go back and choose English instead (it's technical content, this is common), they simply exit and go back in and they'll have the option to choose the language again. It keeps track of where they were, just presents in the new chosen language. All works great.

In Thinkific, once again the user is presented with the language choice when first entering the course. However, whatever language they choose "sticks." There is no way to switch to a different language if they accidentally chose the wrong one or want to go back to English. When they exit and come back in, they come back in in the same language with no option to choose another one. 

Is there a way to present the option to switch languages from within the course? I'm using Rise 360, not Storyline. I found this previous article, but I think it's meant for Storyline? Articulate Localization | Articulate - Community 

11 Replies

  • Hi AmyBradley-85bf! Thanks for reaching out! It is interesting to hear that the behavior is different in Litmos and Thinkific. Since the learner can modify the language in Litmos, I'm wondering if the issue is specific to Thinkific. Are there any other elements in a course that doesn't allow the learner to edit when revisiting the course in Thinkific? 

     

    If you are open to sharing the link to the course in Thinkific with our Support team, I'm sure they could test this out on their end.

    • AmyBradley-85bf's avatar
      AmyBradley-85bf
      Community Member

      Hi LaurenDuvall​ 

      Sorry for the late response, I was out of the office unexpectedly.

      We haven't found any other differences between accessing the course in Litmos and Thinkific other than when relaunching in Thinkific you are no longer presented the option to choose a language. You're stuck with whatever you chose the very first time you accessed the course.

      I agree it could be a Thinkific specific issue, but I'm not sure how to go about solving that. I also think, and I've seen in the forum other people also requesting the same thing, that users would prefer to be able to change language from within the course at any time. Is there any way for us to add this option somewhere within the content of the course? Even better would be in the course framework itself. Some way to trigger the language selector to come up?

      • StevenBenassi's avatar
        StevenBenassi
        Staff

        Hi AmyBradley-85bf​! 

        Glad to see Lauren has been helping you. Happy to jump in!

        The scenario you described for Thinkific is the expected behavior for localized SCORM packages generated by Rise 360. When you publish a localized, multi-language Rise 360 course learners see the language selector the first time they launch the course. Once they choose a language, that preference is stored in the learner's SCORM suspend data. This acts as a bookmarking mechanism and is intentional. This way learners don't accidentally switch languages after progress has been tracked by the LMS. It helps to avoid mismatched bookmarking of data across the separate languages. On the initial launch the language selector is visible and the learner can choose their preferred language. On subsequent launches, Rise 360 "remembers" the learner's last choice and resumes them in that language. The selector doesn't appear again until you've reset the learner's progress in the LMS.

        It's possible the Litmos environment may not be resuming the content correctly. Or the LMS wasn't saving the suspend data. Which allowed your learners to re-select a language mid-session.

        Currently, there is no built-in way to trigger the language selection screen during an LMS session. Localized Rise 360 courses published to SCORM are designed to follow the inverse of that behavior (adhering to the suspend data). I completely understand you may prefer the way Litmos is handling the content, but I can confirm that is not the intended, or typical behavior.

  • I am finding the same happening when using Skilljar LMS. The learner cannot go back to the Rise title course page or anywhere in the course to receive the option to re-select a different language. We are looking into whether we can reset just a SCORM - for example, if we have 1 SCORM per lesson and there are 5 lessons - because we don't want to reset the whole course's progress. We fully expect learners will be curious about other languages and choose one that isn't their native language. But then they won't be able to reset the course to retake it in the language they know. 

    • StevenBenassi's avatar
      StevenBenassi
      Staff

      Hi AndreaGillet121​!

      Thank you for the feedback!

      As I shared with AmyBradley-85bf​, this is the expected behavior for localized SCORM packages from Rise 360. I understand having more flexibility, to switch languages mid-session would be helpful.

      I've relayed your insights as a feature request for our product team!

  • AnnabelThe's avatar
    AnnabelThe
    Community Member

    StevenBenassi​ following up on this discussion as the option to switch languages is dearly missing in Rise 360, and I would go as far as saying it's a deal breaker for using the localization add-on. Are you able to share an update on this, please? Is this feature on the development road map at all? Thanks!

  • Therese-Ebeid's avatar
    Therese-Ebeid
    Community Member

    Here is a workaround that I hope will solve the language-switching challenge with Articulate Localization. Please test thoroughly before using it for live courses. 

    The solution combines language-specific resources into a single SCORM package so that all languages run within the same SCO and share the same LMS attempt, including progress, bookmarking, and completion data. A language dropdown is added above the course, allowing learners to switch languages throughout the course.

    To simplify this process, I developed a tool with the help of Claude.ai that packages everything without the need to manually add any code. It is a standalone HTML file that runs offline in browsers. I tested it in Chrome.

    I have uploaded in this post a ZIP file containing the tool (html file) and a quick pdf guide.

    To get started:

    1- Unzip the attached zip and open the html file in your browser.

    2- Publish all languages of the same localized course (or selected languages) by choosing “Publish separate LMS packages for each selected language”.

    3- Rise will download a ZIP file containing the language packages. Upload this ZIP to the tool, then customize settings such as the default language, language order...

    4- Finally, download the combined package and upload it to your LMS.

    The tool is compatible with SCORM 1.2 and SCORM 2004 (all editions).

    I tested the solution on scormcloud.com, and the results were as expected: learners could switch languages at any point in the course, including during a quiz, without losing progress, bookmarking, or completion data. The course also reopened in the last language used.

    Every LMS behaves a bit differently, so please test the tool thoroughly with your own courses and LMS.

    Please note that after completion, preserving bookmarks and language changes for later visits depends on the course’s exit behavior and the LMS’s policies. The tool adds scope.EXIT_SUSPEND_IF_COMPLETED = true to scormdriver/driverOptions.js in the merged package so that upon revisiting, the learner is still able to change languages. The course continues using its existing save and commit mechanisms. The setting does not itself change completion status or override an LMS that locks completed attempts. To restore the original behavior of the Rise export, remove that line and recreate the ZIP with imsmanifest.xml at the top level. If needed, I can add this as a selectable option in a future update to the tool.

    Hope this helps, and please feel free to contact me if you find any issues.

  • SuperSCORM's avatar
    SuperSCORM
    Community Member

    Nice work, Therese-Ebeid!

    We've been working on something similar for multilingual Rise 360 courses for a while now, as part of a product we're developing.

    In our case, we store the learner's language preference in both SCORM variables and localStorage, so it persists across sessions and devices. We've also integrated automatic translation to make managing multiple languages easier.

    One thing we've found particularly important is keeping language preferences separate from learner progress, so switching languages doesn't interfere with bookmarking or completion tracking.

    I'm curious, how does your solution handle language preferences when learners switch devices?

  • Therese-Ebeid's avatar
    Therese-Ebeid
    Community Member

    Thank you SuperSCORM​ for the feedback.

    Here is a summary of how the tool works and the rationale behind it, along with a sample localized course. Hope this helps.

    The problem

    In a multi-language Rise course published with Articulate Localization, the learner chooses a language on first launch and that choice is saved in the LMS. Rise’s standard multi-language LMS package offers no built-in way to change the language selection later. The only option (until today) is for an admin to reset the learner’s progress, which is inconvenient for both learners and admins.

    The tool's rationale

    The tool addresses this limitation by combining individual language exports into a single SCO with a language selector dropdown that is always available.

    The tool relies on courses being localized using Articulate Localization and then exported from Rise as separate LMS packages for each language. 

    These exports share a common course structure and matching lesson IDs, with language-specific content stored in localization tables.

    Selecting a language changes how the shared course content is displayed. Because lesson IDs remain consistent across translations, bookmarks and progress continue to refer to the same lessons. Saved quiz results are retained when the learner switches languages. Learners can also resume on another device when the LMS returns the saved language, bookmark and progress for the same learner and attempt.

    How the tool merges the packages

    The tool uses one language export as the base, retaining its Rise player, course structure, SCORM driver and tracking configuration, including completion percentage, reporting mode and quiz tracking.

    It then decodes runtime-data.js and combines the localization tables for the individual languages, including translations, interface labels and language metadata.

    Media files are copied or reused. Filename conflicts are resolved by comparing file contents, and affected translation references are updated.

    The tool adds a language selector to the launch page (and persists throughout the course on either the upper right corner or upper left corner of the page). When a suffix is specified, the tool appends it to the manifest identifier to distinguish the merged package. 

    How language and progress are saved

    When the learner selects a language, the language bar that the tool inserted sends a message to the Rise player to change the displayed locale and, provided the LMS interface is ready, calls RiseLMSInterface.setLocale() to update the LMS-bound learner data.

    In both SCORM 1.2 and SCORM 2004, cmi.suspend_data holds the selected locale and detailed course progress.

    SCORM 1.2 stores the lesson bookmark in cmi.core.lesson_location, while SCORM 2004 uses cmi.location. The runtime also writes the language preference to cmi.student_preference.language in SCORM 1.2 or cmi.learner_preference.language in SCORM 2004. However, to my understanding and based on several tests, Rise restores its selected locale from the suspend data, rather than relying on that separate preference field.

    The runtime serializes and compresses the suspend data. The driver requests persistence to the LMS with LMSCommit() in SCORM 1.2 and Commit() in SCORM 2004.

    At normal exit, the driver commits before calling LMSFinish() (SCORM 1.2) or Terminate() (SCORM 2004) and reports an exit type through cmi.core.exit or cmi.exit. By default, once the course is complete, the Articulate driver switches from a “suspend” exit to a normal exit, which some LMSs treat as closing the attempt, so later changes are not kept.

    To keep bookmarks and language changes resumable after completion, the tool sets scope.EXIT_SUSPEND_IF_COMPLETED = true in scormdriver/driverOptions.js, so the driver continues to report a suspend exit. The course’s save and commit mechanisms are unchanged, and the setting does not alter completion status or override an LMS that locks completed attempts. To restore the original Rise behavior, remove that line from scormdriver/driverOptions.js, and recreate the ZIP with imsmanifest.xml at the top level.

    How a session resumes on another device

    Rise’s LMS interface retrieves the saved suspend data and bookmark through the SCORM driver. The bookmark is stored in cmi.core.lesson_location for SCORM 1.2 or cmi.location for SCORM 2004. The Rise player then opens the bookmarked lesson, applies the saved locale and restores the saved progress.

    The state comes from the LMS, so the new device does not need the previous device’s browser storage. The course resumes on any device in the last selected language and at the bookmarked lesson, provided the LMS preserves and returns the same learner’s attempt data.

    A sample localized course

    Here is a sample localized course (one version for SCORM 1.2, and another version for SCORM 2004, 4th edition) that you can use to test (as a learner) the resume behavior across multiple devices for the same learner and attempt.

    I am using SCORM Cloud (www.scormcloud.com). The languages are English, French and Arabic, demonstrating both left-to-right and right-to-left languages. The course also includes a localized voiceover, a localized image and a quiz.

    SCORM 1.2:

    https://app.cloud.scorm.com/sc/InvitationConfirmEmail?publicInvitationId=99d5680d-df60-440b-81ad-8be9f3f5d1d2

    SCORM 2004, 4th edition:

    https://app.cloud.scorm.com/sc/InvitationConfirmEmail?publicInvitationId=316dc6ca-83d6-419c-b144-a4ec978d8652

    For this course, tracking is set in Rise to “Quiz result” and reporting to “Passed/Failed”.

    To test across devices, launch the course from the same invitation launch link and using the same email, so that sessions use the same registration.

    Let me know if you have any questions or comments.