A SCORM package is code, content, and configuration zipped together, and translation has to change exactly one of the three. When a translated course breaks, the cause is almost always one of these seven — and each one is avoidable.
1. Manifest titles
The imsmanifest.xml carries the course and item titles your LMS displays in its catalog. Translation workflows that only touch the HTML leave those titles in English — or worse, a careless edit malforms the XML and the LMS rejects the package outright. The manifest needs to be treated as structured data: parsed, patched for the target language, and validated, never find-and-replaced. Lokalizeit patches the manifest programmatically and validates the result; if a patch cannot be applied safely, the original ships with an explicit warning instead of a silent break.
2. Completion tracking
Completion and score reporting run through JavaScript calls to the LMS API. Workflows that round-trip course files through document formats — extract to a spreadsheet, translate, paste back — routinely clip a quote or bracket in a script file and kill tracking. The rule: translation must never touch executable code. Translate strings in place, copy code verbatim, and always test completion in your LMS before assigning the course.
3. Quiz feedback strings
Correct/incorrect feedback, retry prompts, and results text often live in course data files rather than visible HTML, so text-extraction workflows miss them. Learners then meet English feedback in the middle of an otherwise translated quiz — the most visible kind of half-translation. Check a quiz end-to-end in the target language, including a wrong answer, before sign-off. A completeness check helps here too: untranslated segments are the heaviest-weighted failure in the Lokalizeit fidelity score.
4. Embedded images
Diagrams, screenshots, and buttons drawn as graphics keep their source-language text in every zip-in, zip-out workflow — no pipeline repaints pixels. The failure is not that images stay English; it is discovering which ones only after launch. Inventory text-bearing images up front. Lokalizeit surfaces embedded images with AI-written descriptions precisely so that inventory takes minutes instead of a manual crawl through the course.
5. Navigation labels
Next, Back, Menu, Submit, Resume — player chrome strings live apart from lesson content, often in configuration files, and get skipped by naive extraction. A course body in Spanish wrapped in English navigation reads as unfinished to every learner. When reviewing, click through the player itself, not just the content, and confirm the chrome translated with the course.
6. Mixed encodings
A SCORM package that has been through several tools can mix character encodings across files. Translation output in UTF-8 pasted into a file declared as another encoding shows up as mojibake — garbled accents in French, question marks where Chinese or Arabic characters should be. The translation pipeline has to read and write each file in a consistent encoding, and any review pass should include a glance at accented and non-Latin characters rendering correctly.
7. Re-zip structure
An LMS expects imsmanifest.xml at the root of the archive. The classic manual mistake: unzip, translate, then re-zip the containing folder, burying the manifest one level deep — the LMS refuses the package. Folder layout, relative paths, and file names must come through byte-identical. Lokalizeit re-zips exports with the original structure automatically; if you ever re-zip by hand, zip the contents, not the folder.
The pattern behind the breakage
Every one of these failures comes from treating a SCORM package like a document when it is actually a small piece of software. The workflows that survive are the ones that respect that: translate strings where they live, never touch code, patch structured files programmatically, and verify the result. That is the design behind Lokalizeit's SCORM translation and its fidelity score. For the happy path, read the step-by-step walkthrough; translating into Arabic adds its own list.
Frequently asked questions
- What is the safest way to avoid most of these problems?
- Translate in place instead of round-tripping text through spreadsheets or documents. Most of the seven — broken code, missed strings, encoding drift, structure damage — are artifacts of extracting text from the package and pasting it back by hand.
- How do I check a translated package before it reaches learners?
- Import it into a test environment, launch it, click through the player, take a quiz and get one answer wrong, and confirm completion registers. That ten-minute pass covers manifest, navigation, feedback, and tracking in one go.
- Does Lokalizeit prevent these failures?
- The structural ones, by design: text is translated in place, code and assets are copied verbatim, the manifest is patched and validated, and exports keep the original zip structure. The fidelity score and warning list then point human review at anything that tripped a check. Embedded images remain a designer job — Lokalizeit finds them for you.
- Do these problems apply to Storyline and Rise 360 exports?
- Yes — they apply to any SCORM package regardless of authoring tool. The tool-specific pages for Articulate Storyline and Rise 360 cover the export flow for each.