How do you translate a cmi5 eLearning package without breaking course launches, learner records or completion decisions? cmi5 is a profile for using the Experience API, or xAPI, in learning-management systems. A multilingual training course has two different jobs: people must understand its learning material, and software must still recognize the correct assignable units, sessions, launch information, statements and satisfaction rules. Translating the first while protecting the second is the central skill. A course that sounds fluent but stops recording achievement is not successfully localized.
This detailed cmi5 localization guide covers cmi5.xml course structures, assignable units (AUs), launch flows, LMS and learning-record-store responsibilities, registration identity, xAPI statements, completed and passed events, moveOn criteria, scores, session tracking, media accessibility, translated feedback and release testing. It serves international training teams, professional translators, instructional designers, enterprise LMS administrators, course vendors and learning-technology developers. The examples use fictional learners, invented course titles and test systems rather than actual private learning records.
cmi5 is related to xAPI but is not simply another name for it. General xAPI describes how learning activities can be reported as statements; cmi5 adds rules for an LMS-managed course experience, including launch and defined statements. The authoritative specification is maintained in the AICC cmi5 project repository. Different platforms may offer different supported versions or implementation profiles, so the deployed system and its conformance behavior must be checked rather than assumed. The practical aim here is to give readers a clear, testable way to localize content while keeping technical identity and evidence intact.
How to use this guide
Start with the foundation, continue through thirty concrete localization decisions, complete the four-week learning and implementation plan, and use the FAQ as a final reference. Each fictional case connects the learner’s words to the protocol’s exact duties. It is deliberately practical: ask what the person believes, what the system records and what evidence would show they agree.
Understanding the cmi5 learning and reporting boundary
Begin with three different things
A course is the organized training offer, an assignable unit is a particular piece of launched learning, and an xAPI statement is a record about an activity. Their labels can resemble each other, but they do not serve the same function. If a translator treats a statement’s machine identifier as an ordinary course heading, the reporting relationship can break.
Draw a small diagram with course, AU, LMS and LRS as separate boxes. Write which words appear to learners and which strings are machine references. This picture is the first protection against mixing presentation with protocol.
Why cmi5 is an xAPI profile rather than a new language
xAPI uses a statement with actor, verb and object, plus optional result and context. cmi5 constrains how an LMS launches an AU and which events and rules count for course satisfaction. The visible training lesson is only one layer of a wider transaction.
A translated course should continue to send the same defined concepts as the original. A learner may see a localized completion message, but the actual statement identifier and recognized completion behavior must remain consistent with the applicable cmi5 profile.
What a package contains
A cmi5 course package can include a course structure file, references to assignable units, metadata and files needed to present learning content. The course description is not the same thing as each AU’s web runtime. An organization may package localized courses separately or offer language selection inside a shared AU.
Keep a package inventory recording the manifest, AUs, media, language assets and launch targets. Every translated asset should have an owner and every changed package should be import-tested in a non-production LMS.
Human language versus machine identity
Titles, learner instructions, help text, warnings, alt text and assessment feedback ordinarily need localization. IDs, verb IRIs, registration values, token parameters and content routing addresses cannot simply be translated as sentences. A URI’s familiar English-looking part may still be an exact machine identifier.
Write two explicit lists: translatable presentation fields and protected interoperability fields. Do not guess from appearance. Where documentation permits localized display objects, add language variants without changing the underlying concept identifier.
How LMS, AU and LRS cooperate
The learning management system assigns training and initiates a launch. The assignable unit displays the activity and records experience through an LRS using the required session information. The LMS then interprets the appropriate evidence and course structure to determine what has been satisfied.
A translation defect may appear in the browser, the recorded statement, the LMS transcript or all three. Test each layer independently. A working web page alone cannot prove that cmi5 reporting is correct.
Registrations and sessions
A course registration helps tie activities to the correct learning attempt, while a session describes a particular encounter with an AU. These are not interchangeable with the learner’s display name or chosen language. Translating the UI must not duplicate a registration or send events under another learner’s identity.
Use two fictional learner accounts and multiple sessions in tests. Verify that a language switch preserves the intended attempt and that resuming a lesson does not create an unexplained new learner record.
The meaning of moveOn
The moveOn criterion determines the evidence an AU needs before it is satisfied, with values such as Passed, Completed, CompletedAndPassed, CompletedOrPassed and NotApplicable defined by the profile. These are control values, not merely labels to make pleasant in another language.
Translate the user-facing explanation of a rule, not the machine value. Before release, write a truth table for each relevant rule and check the AU statements against it in the target language.
Completion is not necessarily a pass
A learner can complete an activity without meeting the mastery requirement. Conversely, an achievement record may have different meaning from the time spent visiting pages. Friendly text like ‘You are finished’ should not be allowed to blur the difference between completion and success.
Align verbs, scores and messages precisely. Ask whether the learner finished the assigned work, met the required standard, or both. The translated interface should say which condition was actually satisfied.
Language maps and stable identifiers
xAPI supports language maps for certain readable descriptions. A language map is a collection of text variants keyed by language tags; it does not authorize replacing a shared identifier with a different identifier in each language. The record’s stable concept and its display are different parts.
Inspect the organization’s vocabulary and profile documentation before adding localized descriptions. Validate language tags, inspect character rendering and keep a reference-language display to help analysts interpret historical data.
A careful approach to source material
Training prose may contain safety instructions, regulations, assessment criteria and examples with different cultural implications. Fluency is important, but functional equivalence matters more when a sentence tells a learner what action to take. Separate localized examples from facts that must remain fixed.
Give reviewers the learning objective, expected action, audience and assessment key alongside the source text. Without that context they may produce elegant wording that changes an outcome or obscures a restriction.
How a course differs from a dashboard
The course tells a learner what to study. A dashboard summarizes records after the learning activity has been reported. A multilingual dashboard cannot repair invalid events; it can only display or misrepresent them. A localized score label and a normalized score value belong to different layers.
Plan testing from the source course to the AU, LRS statement, LMS rules and finally the reporting screen. Record which system owns each phrase and which system owns each number.
Version and compatibility are part of translation quality
The same content can behave differently when imported into two platforms with differing cmi5 or xAPI support, authentication settings or security policies. Writers should not call something conformant merely because it works in one sandbox. A version label must correspond to the deployed implementation.
Preserve a tested compatibility matrix with the LMS, LRS, course package revision, browser and target languages. On major upgrades, repeat the launch and completion checks even if the prose has not changed.
Thirty cmi5 translation and LMS interoperability decisions
These cases are not vendor-specific implementation promises. They are a collection of practical failure modes that help teams inspect a multilingual course at its actual boundaries: a word on a screen, a protected identifier, a launched session and an evidence-bearing statement. For each one, notice how a small language decision may carry a large consequence when learners and systems disagree.
1. The learner sees a translated title but the package cannot launch
A training manager changes the text that appears in the catalog and assumes the AU reference can also be renamed in the file structure. The catalog now looks localized, but the LMS searches for a resource using a different address.
The visible title and the technical launch reference answer different questions: what the learner reads and where the platform should go. Confusing them turns a presentation edit into a broken integration.
Keep the catalog display name separate from the AU launch identifier. Verify the package structure and every referenced file after making a localized copy.
A practical verification: Import the package into a test LMS and follow the actual assigned course link. Do not count previewing an HTML file directly as a successful launch.
2. A ‘Completed’ label is translated as ‘Passed’
A language reviewer prefers an expression that sounds congratulatory. On the lesson screen it implies an exam success even though the AU has only recorded completion.
The label is misleading for learners who have met an attendance or participation criterion but have not passed the assessment. Support teams may later give the wrong advice because the words appear equivalent.
Use distinct target-language terms for finished activity and achieved passing standard. Where the language lacks concise one-word equivalents, write a short explanatory phrase instead of forcing one.
A practical verification: Test a learner who completes the material but fails the final check. Both the screen and the LMS must communicate the same two separate outcomes.
3. moveOn is turned into an ordinary translated sentence
A developer encounters the string CompletedAndPassed and replaces it with natural-language words inside launch configuration. The learner interface remains attractive until the LMS evaluates course satisfaction.
The platform expects defined control values. A translated phrase may not be recognized and can leave the AU unsatisfied or cause a configuration error.
Retain the normative control value in machine-facing data. Provide the local-language explanation through the authoring interface or accompanying help documentation.
A practical verification: Run tests for completed-only, passed-only, both and neither outcomes. The satisfaction matrix must match the defined criterion in every locale.
4. One language selection creates a second registration
An employee starts a compliance AU in one language and changes to another language halfway through. A poorly designed integration launches a new enrollment record rather than continuing the expected attempt.
The reporting system can show two incomplete attempts or split evidence across unrelated registrations. Nothing about a preference for Spanish, Hindi or Mandarin inherently creates a new identity.
Choose whether the organization offers one multilingual AU or separately assigned localized AUs. Define that choice deliberately rather than allowing routing code to decide by accident.
A practical verification: Track a fictional registration across language selection, resume, completion and relaunch. Confirm that identifiers correspond to the documented enrollment design.
5. An authorization token appears in a screenshot
The translation agency receives a screenshot of a real launch with query parameters. A reviewer pastes it into a glossary because it seems useful to illustrate the technical explanation.
Tokens and other credentials can grant unintended access. Even expired values may teach readers the wrong handling habits, and learner identifiers are unnecessary in published documentation.
Use fabricated launch URLs and redact secrets before distributing screenshots or troubleshooting notes. Keep authentication flows in a secure staging environment.
A practical verification: Have a security reviewer inspect example URLs, screenshots and code fragments, not only the translated prose. A safe training example should work conceptually without a real credential.
6. An AU reports ‘Launched’ as though the learner finished
The local-language UI uses ‘started’ and ‘finished’ as casual synonyms in a short activity. The product team then treats the first launch as evidence of completing the training.
Opening a training page is not the same event as meeting the AU’s satisfaction criterion. Analytics based on that confusion exaggerate progress and may compromise compliance reporting.
Describe each event in the reader’s language according to its actual stage. Use a consistent glossary for launch, initialized session, completion, passing and termination.
A practical verification: Launch the AU and exit immediately. Check that the LMS does not report an achievement that the learner never earned.
7. The completed statement uses an unfamiliar display string
A reporting analyst filters statements by the English display ‘completed’. After localization, some statements carry translated display text even though the underlying verb IRI remains stable.
Filtering by display text rather than the machine identifier can silently drop valid events or split a dashboard by locale. The statement’s readable label is not its unique identity.
Teach analysts to query defined verb identifiers and profile properties. Add translated displays only in fields that support them.
A practical verification: Compare results across two locales using the same stable verb identifier. The counts should not change merely because the report language changes.
8. A score of 0.8 is interpreted as eighty points out of one hundred
A learner passes a normalized-score assessment, but the display team presents 0.8 as ‘0.8 marks’ in another language. The source result and reader expectation use different scales.
A normalized quantity, percentage and raw score can be numerically related without being identical representations. Local decimal conventions complicate the matter further.
Document each numeric field’s range, source and intended presentation. Show ‘80%’ only when the field and UI rules justify that conversion, never by guesswork.
A practical verification: Test boundary values, a failing score, a passing score and missing score data. Confirm that localization changes formatting but not the recorded measurement.
9. A cultural example changes the answer key
A workplace safety question refers to an emergency exit in a familiar building. The translator replaces the scenario with a local setting but forgets to update the explanation and assessment design.
An example may be adaptable, while the tested skill and correct response must remain intact. A more familiar story can inadvertently introduce a second plausible answer.
Review adaptation proposals with the instructional designer. If an example changes, update all linked feedback and revalidate that the assessment still measures the same objective.
A practical verification: Use qualified native-language testers to attempt the item without seeing the expected answer. Record ambiguity rather than dismissing it as a translation issue.
10. An attempt is marked satisfied before a required AU is visited
A course has several AUs with different moveOn rules. The translated course map visually rearranges them and a developer changes the logical structure without reviewing satisfaction dependencies.
The course may be reported complete when a required unit is skipped, or it may become impossible to satisfy. Visual order and the actual course structure must be reconciled.
Keep course organization and requirements documented before adapting navigation. Translate menu labels without silently removing the prerequisite relationship.
A practical verification: Test the earliest allowed path, a deliberate skipped unit and a completed path. Verify the LMS satisfaction state against the original learning design.
11. Learner names are normalized into the wrong script
A dashboard displays international learner names in a fallback form and an editor proposes translating the names in the event records to make the list ‘look local’.
Identity data is not ordinary prose. Transliteration and display preferences can be legitimate, but silently replacing a registered name or learner identifier may misattribute evidence.
Keep learner identity governed by the authoritative account service. Add approved display conventions where supported and preserve the original account association.
A practical verification: Compare the same fictional learner across transcripts, statements and enrollment records; check that searching and audit trails still identify one person.
12. A translated error message promises a saved record
The AU displays ‘Your work is saved’ when the network is unavailable because a terse English error had been softened during localization. The learner closes the browser and loses progress.
Comforting language is harmful if it contradicts the system state. The difference between locally stored, queued, delivered and acknowledged data needs precise words.
Write error text around verified states, with clear recovery steps. If retry is possible, say so; if completion has not been recorded, explicitly avoid implying otherwise.
A practical verification: Simulate a disconnected session and failed LRS request. Read the target-language message aloud and check the subsequent event history.
13. A course uses a locale tag that the platform does not expect
An international team labels content with a friendly language name where a system expects a defined language tag. The course launches, but the intended language variant is never selected.
Language names, locale identifiers and region variants are related but not interchangeable. The default fallback may hide the error for monolingual testers.
Choose supported language tags and document fallback behavior. Keep the system’s locale configuration separate from translated descriptions of a language.
A practical verification: Launch every supported locale from a clean account or browser profile. Confirm fallback behavior explicitly rather than relying on a cached preference.
14. A team changes timestamps to match local date order
A training report is translated for a region that writes dates differently. An editor rewrites timestamp strings in the underlying event data as if they were prose.
Readable formatting should occur at the presentation layer. Changing event timestamps can disrupt ordering, reconciliation and deadlines, especially across time zones.
Preserve event values and their documented format. Convert only for display with an explicit timezone and unambiguous date convention.
A practical verification: Compare the raw statement time with the localized dashboard; both should represent the same instant, including near midnight and daylight-saving transitions.
15. Mobile launch paths behave differently in one language
A translated AU is accessed through a mobile application using a locale-specific route. The browser version works while the mobile route drops session information during the handoff.
Platform-specific launch code can fail independently of translation quality. The absence of the right session context may prevent reliable reporting.
Include mobile deep links and embedded-webview behavior in the launch test plan. Keep required parameters intact and review safe handling of their values.
A practical verification: Test mobile start, interruption, resume and finish. Confirm that the event stream is associated with the intended registration and AU.
16. Accessible captions do not match the assessed instruction
A training video has localized audio, but its captions retain an older instruction while the quiz references the new wording. A deaf learner is effectively being taught a different procedure.
Accessible alternatives are part of the learning content, not optional marketing material. Contradictions can create inequitable results and safety problems.
Synchronize translated narration, captions, transcripts and on-screen text against the approved assessment objective. Review timing and reading speed.
A practical verification: Have a reviewer complete the AU using captions and keyboard access alone. Compare the answer they reasonably derive with the assessed answer.
17. A ‘Failed’ assessment becomes a judgment of the person
An automatic result label is translated as ‘You are a failure’. The original reports that an attempt did not meet a criterion, not that the learner lacks ability.
The difference is grammatical and ethical. Unnecessarily personal language damages trust and may discourage the next appropriate training action.
Use neutral, outcome-specific language: the attempt did not pass, the requirement remains open, and the learner may review or retry when permitted.
A practical verification: Review the full message sequence after a failed attempt. The learner should understand the status, options and next step without receiving an invented moral verdict.
18. Historical records lose their original context
An organization changes a course title while translating archived training records. Its older transcript now looks as though the learner completed a new course that did not exist then.
Names may change over time, but the historical fact of what was assigned and completed must remain traceable. Retrospective relabeling can be misleading in compliance contexts.
Keep versioned display names and identify the original course revision. Where a current label is useful, show it alongside historically accurate metadata rather than replacing evidence.
A practical verification: Audit one archived record, one current record and one migrated record. Each should point to the correct course version and source event.
19. Training media assets move outside the package
Localized audio and graphics are uploaded to a new folder, but the AU still requests old relative paths. The text appears while key instructions or answer diagrams disappear.
Broken assets can be mistaken for a minor visual defect even when they carry essential instruction. Package portability depends on correct references and permissions.
Inventory every asset and test relative paths, filename case sensitivity and embedded media URLs. Keep localized assets with the intended AU delivery method.
A practical verification: Import the package into an independent staging environment and inspect network requests. Open every resource that changes the meaning of the activity.
20. The LMS says ‘satisfied’ while the course shows ‘incomplete’
A learner meets a moveOn rule, but the translated end screen shows a stale progress message based only on the last slide visited.
The LMS and the AU may use different indicators. A visible progress bar is not automatically the authoritative satisfaction decision.
Define which component owns each display and refresh behavior. Explain completion status according to verified event and course rules, not just slide navigation.
A practical verification: Compare AU screen, LRS statements and LMS transcript after the same test attempt. Investigate every contradictory status rather than choosing whichever sounds favorable.
21. A local team converts every numeric ID into local digits
A well-intentioned editor applies regional number formatting to all displayed strings, including registration and package identifiers copied from an error log.
Localized numerals may be appropriate for quantities, but machine identifiers are exact tokens. Replacing ASCII digits inside one can make a lookup fail.
Tag identifiers as nontranslatable and apply numeric localization only to fields whose rendering permits it. Design copy controls that preserve the exact original ID.
A practical verification: Copy a diagnostic reference from the translated UI into the approved support lookup tool. The returned record must be the intended one.
22. An AU restarts every time the learner chooses another language
The language switcher sends learners to a fresh starting URL instead of resuming the same activity state. Longer courses become frustrating and completion records can fragment.
A locale change is a preference action; it should not silently discard work. Some AUs cannot transfer mid-attempt and must explain that limitation clearly.
Document the intended behavior for save, suspend, resume and language change. If the system requires restart, warn before discarding progress and offer safe alternatives.
A practical verification: Try changing language after partial work, then closing and reopening the course. Inspect both user-visible state and the recorded session sequence.
23. A course is copied to a new country with the same mastery example
A training vendor reuses a safety example that refers to locally regulated procedures. The translated words are accurate, but the example implies a rule that does not apply everywhere.
Localization cannot substitute for expert jurisdictional review. A statement about law, licensing or safety must be supported for the destination audience.
Separate globally stable skill concepts from locally governed requirements. Use jurisdiction-qualified notes and obtain review where a local rule changes actual conduct.
A practical verification: Ask a local expert to classify each legal or safety claim as applicable, adaptable or unsuitable. Do not publish unsupported universal claims.
24. An LRS dashboard counts duplicate statements as new learning
A network retry causes a statement to be sent again, and a translated analytics widget reports inflated completions because it aggregates by message count without considering identity.
The source of the problem is event handling, not language. Translating the chart title cannot make an incorrect metric defensible.
Document event identifiers, deduplication assumptions and the intended unit of measurement. Display a count of distinct qualifying achievements only when the calculation genuinely does that.
A practical verification: Replay a simulated retry and check the stored event history. The dashboard should not present extra learner achievements merely because transport repeated.
25. Learners mistake a practice run for a credited attempt
The local-language launch screen says ‘Start assessment’ while the LMS is actually opening a non-credit review mode. The learner expects the result to change the official transcript.
A correct translation must explain whether the session counts toward an award or merely offers practice. The same question content can appear in different modes.
Make credit status and attempt consequences visible before the learner starts. Translate the explanation rather than modifying scoring or reporting controls.
A practical verification: Test credit and review launches with the same questions. Compare the learner notice with the records that appear after each mode.
26. An empty statement field is translated into a zero
The reporting screen has no usable score because the AU did not report one. A dashboard localization fallback displays ‘0’ for a missing value.
Zero is a measured result; missing means that no value is available. Confusing them makes learners appear to have failed when they were never scored.
Define target-language expressions for missing, not applicable, pending and actual zero. Keep their underlying states distinct in reports and exports.
A practical verification: Generate test records for all four states and compare both the raw values and the displayed legend. Confirm that sorting and summaries remain truthful.
27. An automatic completion message ignores a required final step
The translated lesson congratulates the learner on the last slide, even though a mandatory final acknowledgement is still required.
Finishing the visible narrative is not sufficient when the training contract includes another AU, signed declaration or assessment event. Clear expectations prevent mistaken claims.
Place the final-step instruction at the correct moment and use conditional confirmation based on the actual satisfied state.
A practical verification: Finish the slides without the acknowledgement, then finish with it. The message and LMS record must distinguish these cases.
28. A vendor promises cross-platform compatibility without testing
A localized course is advertised as working in every LMS because the packaged lessons render in a browser. A buyer later discovers that authentication and completion reporting differ.
Rendering content, launching under the profile and satisfying the LMS are three separate claims. Accurate customer-facing language should specify what was tested.
Publish a compatibility statement listing tested platforms, versions, locales and known limitations. Avoid treating a successful internal demo as universal certification.
A practical verification: Repeat core launch and completion tests in each supported deployment. Preserve the evidence and correct any overbroad marketing statement.
29. A supervisor sees translated progress but not an audit trail
The training dashboard shows a pleasant local-language label for success, yet the support team cannot find the corresponding registration or statement after an employee disputes a record.
An auditable record needs a trace from the displayed status back to stable evidence. A label alone is not proof of completion.
Expose appropriate references to authorized support staff and describe the verification process in plain language without revealing personal data to other users.
A practical verification: Select a fictional disputed completion and reconstruct the sequence from assignment through launch, evidence and final LMS decision.
30. A successful local test hides an unsafe production change
A translator repairs a broken test package by changing global LMS settings and then reports that the localized course works. The changes affect unrelated courses and cannot be reproduced.
Global configuration changes are not a substitute for documented, scoped localization. They can mask deeper interoperability errors and introduce system-wide risk.
Record every environment assumption and keep fixes inside the intended package or approved integration change process. Review shared settings separately.
A practical verification: Deploy the package to a clean staging configuration. Verify expected results without relying on undocumented manual adjustments.
A four-week learning and localization plan
Week 1 — Map identity and learning outcomes
Inventory every AU, content asset, learner-visible string, launch field and statement type. Read the course objectives before translating examples. Build the protected-field register, a glossary covering completion and passing, and a table showing which team owns each layer. In a sandbox, capture a baseline successful launch and a baseline unsuccessful attempt. The baseline makes later comparison possible.
Week 2 — Translate meaning without rewriting control
Localize lesson text, instructions, captions, alt text, result explanations and error states. Review assessment answers with an instructional designer. Keep machine IRIs, registration IDs, moveOn control values and launch parameters untouched. Where the application supports language maps or locale resources, add valid language variants. Keep translation memory attached to the correct functional context, not just the English words.
Week 3 — Test the full learning sequence
Use fictional accounts to exercise launch, resume, switch language, completed-only, passed-only, both, neither, disconnect, retry and duplicate-message conditions. Inspect what the learner sees, what the AU sends, what the LRS stores and what the LMS transcript reports. Include browser accessibility and mobile environments where offered. Report mismatches with exact steps and redacted evidence.
Week 4 — Govern and release
Obtain approval from language, learning-design, engineering, accessibility and data-protection reviewers as appropriate. Publish only tested package revisions; document supported languages, platforms and limitations. Retain a rollback copy, issue a learner-facing change note when behavior has changed, and monitor initial support reports. Treat the course as both educational communication and a system of record.
Frequently asked questions
What is cmi5 in simple language?
It is a set of rules for connecting launched learning activities with LMS-managed completion using xAPI statements. Think of it as the agreement that links course assignment, activity reporting and satisfaction.
Is cmi5 the same as xAPI?
No. xAPI is a general learning-record approach. cmi5 specifies additional LMS launch and course-behavior rules for a defined kind of xAPI learning package.
Should an xAPI verb IRI be translated?
No. Preserve stable protocol identifiers. Translate readable descriptions where language-map support and the application design permit it.
Can a learner change language halfway through?
Possibly, depending on the AU and LMS implementation. Test whether progress, identity and session continuity remain correct; communicate any restart requirement clearly.
What is an assignable unit?
An AU is a distinct launched component of a cmi5 course. Its identity, metadata and reporting behavior should remain coherent across localized versions.
Does completion mean a pass?
Not necessarily. Completion describes finishing the activity under the applicable rule; passing describes meeting success criteria. A moveOn condition can require one or both.
How are percentages different from normalized scores?
A normalized numeric value and a percentage can express related information, but the field definitions and display conversions must be checked. Never assume their units from appearance.
Are translated statements valid without language maps?
A statement’s machine identity may remain valid even when a readable display has one language, but multilingual readability depends on how descriptions and language tags are represented. Follow the profile and LRS requirements.
What should a translator ask the LMS team?
Ask for supported profile version, course structure, protected identifiers, launch behavior, testing accounts, moveOn rules, result fields, language fallback and evidence of successful completion.
What would constitute a release-ready multilingual course?
Its content and accessible alternatives are understandable, its technical identities are preserved, and staged tests show correct launch, reporting, completion, passing, resume and failure handling.
Authoritative references and related guides
Read the AICC cmi5 specification repository at https://github.com/AICC/CMI-5_Spec_Current and the technical cmi5 implementation discussions at https://xapi.com/cmi5/technical-systems-professionals/. For the underlying event model, see the related eduKateSG xAPI localization article. For course packaging and LMS integrations, read the separate Common Cartridge and LTI Advantage guides. These resources address neighboring layers, rather than replacing the cmi5 launch and satisfaction contract.
Related reading: xAPI statements and language maps; Common Cartridge packages; LTI 1.3 and Advantage; Translate Like a Pro series.