Translate a course and ship every language in one package
Add languages to a course, translate them in Scormbusters, with a translation vendor over XLIFF or with your own AI assistant, then export one SCORM or xAPI package that carries every language, with a learner language picker and progress that survives switching.
Last updated 5 min read
One package per language means several LMS entries per course, and a learner's record split across them.
Step by step
Add the languages
In the course editor, open More → Translations and use Add Locale for each language.
Translate
Type translations in the table, or use XLIFF to download a file for a translation vendor and Import to load the finished file back. An AI assistant connected over MCP can fill them in for your review.
Export every language at once
In the Export menu set Language to All translated languages in one package, check which translations go in, then choose the format.
Upload one zip
Upload the package to your LMS as one course. Learners choose their language when they start and can change it at any time.
What gets translated
The course title and description, lesson and module titles, and the words in every block: text, headings, captions, alt text, question wording, options and feedback, flashcards, tabs and the rest. For a custom interaction, its title and text alternative are translated; its code is not, so text inside the interaction itself stays as written.
Numbers, links, media files, answer keys and fill-in-the-blank answers stay as authored. A fill-in-the-blank sentence whose translation adds or loses a [blank] keeps the original wording, because its answers would no longer line up.
The package's own controls (Next, Previous, Check, the language picker's heading and its Continue button) are in English in every language. Each language's name in the picker is written in that language.
Choosing which languages go in
With All translated languages in one package selected, the Export menu lists each translation with its status. Complete translations are checked. An incomplete one shows how many strings are missing and lists them under Missing strings. You can still check it, and its missing strings then show in the course's own language. The course's own language is always included and is the default.
Over MCP, export_course takes languages: ["all"] for every complete translation, or a list such as ["fr", "de"]. Its result names anything left out or incomplete.
This is for block courses. Courses on the slide canvas (Scenes) have no translations yet, so they export in the language they were authored in.
What the learner sees
Before the first lesson, the package asks for a language. The option already chosen is the learner's language preference from the LMS if the package has it, otherwise the browser's language, otherwise the course's own. The preference comes from cmi.student_preference.language in SCORM 1.2, cmi.learner_preference.language in SCORM 2004 and the cmi5 learner preferences profile. A Tin Can launch has no such field, so the browser decides.
A Language button in the sidebar opens the same choice at any time, and the current lesson reloads in the new language. The page's language and text direction change with it, so screen readers switch voice and Arabic, Hebrew, Persian or Urdu read right to left. The picker works with a keyboard: arrow keys move between languages, Tab reaches Continue, and Escape cancels a change made from the sidebar.
A returning learner is not asked again: the choice is saved with their progress.
Tracking does not depend on the language
Every language is the same course to the LMS: one item in the manifest, the same lesson positions, the same question ids and the same grading. A learner who switches language halfway keeps their completed lessons and their score, and questions they already answered still count. The question shows unanswered in the new language, and answering it again cannot add a second point. Interaction reports in the LMS use the same ids whatever language the question was answered in.
The chosen language is saved with the rest of the resume data: in cmi.suspend_data for SCORM (inside the same 3,800-character budget, and kept when other state has to be trimmed) and in the xAPI state document for cmi5 and Tin Can.
Package size
Images, video and audio are stored once and shared by every language. Each extra language adds only its lesson pages, which are text. After a multi-language export the Export menu shows the package's size and how many languages it carries.
Part of the documentation: Deliver.
Found something here that does not match what the product does? That is a bug in the guide — see all guides or tell us from the Help Center.