For teams building with Adapt Learning

Adapt Learning AI Translation & Localization Tool

Translate the course. Keep the build green.

Translate Adapt course exports instantly with context-aware AI. Human-level language, protected JSON, CSV and XLIFF 1.2, and 100% valid syntax. No translation-induced build errors. No days lost fixing brackets.

Adapt Authoring Tool + Adapt Framework. No Qopywriter plugin.
3protected formats:
JSON, CSV, XLIFF 1.2
100+target languages.
One consistent course.

Syntax is not up for translation

Great translation.
Not a broken bracket.

You have the translation. Then Adapt refuses to build. One missing comma, an unescaped quote or a renamed system key is all it takes. A rushed copy-and-paste into a general-purpose AI tool turns into days of tracing errors through JSON instead of publishing training. XLIFF inline tags and CSV column mappings are just as unforgiving.

Qopywriter.ai separates the lesson from its scaffolding. Learner-facing text goes to the AI. Property names, IDs, component references and configuration values stay protected. The output is checked before it comes back to you.

100% valid syntax. Guaranteed.

Valid, supported JSON, CSV and XLIFF 1.2 exports stay valid. Zero build errors caused by translated file syntax. Existing plugin, theme, dependency and asset issues are outside this guarantee.

JSON syntax & key protection
components.json · EN → ES Structure locked
Locked: keys, quotes, commas Translated: learner-facing text

The beam edits the string, not the structure. Even the system value text stays out of its path.

Three formats. One protected workflow.

Bring the export your team already uses.

Adapt course translation should fit your toolchain, not force a new one. Each format gets its own structural rules. The AI never treats your course as a wall of plain text.

.json

Translate Adapt JSON.
Leave the config alone.

Titles, body copy, instructions and feedback get translated. Keys such as _id, _parentId and _component stay put, along with nesting, arrays, booleans and asset paths.

IDs stay IDs. A text component stays a text component.

Inspect a protected example
{
  "_id": "co-05",
  "_parentId": "b-01",
  "title": "Bienvenido al curso"
}
Illustrative content fragment. Only the title value changes.
.csv

Every string stays
in its column.

Adapt Learning CSV translation preserves headers, row identifiers, delimiters and column mappings. A comma in a sentence belongs inside the cell, not at the start of an accidental new column.

Quoted commas and embedded line breaks remain correctly contained.

Inspect a protected example
_id,title,body
co-05,Bienvenido al curso,"Aprende, practica y aplica."
Three headers. Three cells. The comma in the body is quoted.
.xlf · 1.2

Translate the segment.
Protect the inline tags.

Adapt XLIFF localization keeps source segments and translation-unit IDs intact. Inline elements such as <g>, <x/> and paired <bpt>/<ept> tags retain their relationships.

Target text changes. Formatting and placeholders survive the round trip.

Inspect a protected example
<trans-unit id="co-05-title">
  <source>Start <g id="1">course</g></source>
  <target>Iniciar <g id="1">curso</g></target>
</trans-unit>
Illustrative XLIFF 1.2 segment, not a complete document.

Export options depend on your Adapt version and localization extension. Qopywriter.ai translates the exported files; your existing Adapt importer remains part of the workflow. Check compatibility details.

Language quality, not just file repair

Fluent isn't enough.
The instruction has to be right.

“Resume” on a course button is a verb, not a CV. Assessment feedback has to make sense beside the question, not just as a sentence on its own. Context matters.

Our AI reads across segments instead of translating each line in isolation. It keeps corporate terminology consistent, respects the learning objective and carries the same instructional voice across the entire Adapt project. The result is human-level linguistic accuracy that rivals professional translation agencies, without an agency handoff for every update.

For legal, medical or high-stakes compliance training, keep a qualified in-language reviewer in your sign-off process. File validation and instructional review do different jobs.

Course-wide context EN → ES
learning path ruta de aprendizaje
Course title

Your learning path

Tu ruta de aprendizaje

Learner instruction

Choose a learning path to continue.

Elige una ruta de aprendizaje para continuar.

Completion feedback

Learning path completed.

Ruta de aprendizaje completada.

Illustrative Spanish course copy. One term, three connected learning moments, the same instructional voice.

Keep your open-source workflow

Export. Translate. Build.

Open-source e-learning localization does not need a framework fork or a week of manual repairs. Keep Adapt where it is. Replace the risky copy-and-paste step.

  1. Export your course content

    Use the localization export available in your Adapt Authoring Tool installation, or collect the content JSON from your framework project. Keep an untouched source copy and confirm that the original course builds.

  2. Let the AI handle the language

    Upload JSON, CSV or XLIFF 1.2 and select your target language. Context-aware translation handles the lesson text; format-specific checks protect the keys, column mappings and tags around it.

  3. Reimport, build and review

    Reimport through your matching localization workflow. To translate Adapt Framework content directly, place the translated JSON in the intended src/course/<locale>/ folder and set the project language. Build, then check text length, feedback and course layout.

A small but important CLI detail: CSV and XLIFF are interchange formats. Import them back through the matching workflow before building. The CLI compiles the Adapt course project, not a standalone CSV or XLF file.

$ grunt build

Pricing for course teams

Choose the volume.
Keep every format protected.

Every plan includes context-aware AI, JSON syntax protection, CSV column preservation and XLIFF 1.2 tag protection. Start with a trial, test your import, then pick your allowance.

Lite

For individual IDs and smaller course updates.

$9/ month
400.000 charactersper month
  • Context-aware AI translation
  • JSON, CSV & XLIFF 1.2
  • 100+ target languages
Start free trial

Starter

For regular multilingual course production.

$19/ month
1.000.000 charactersper month
  • Context-aware AI translation
  • JSON, CSV & XLIFF 1.2
  • 100+ target languages
Start free trial
For teams

Business

For agencies and in-house learning teams.

$49/ month
3.000.000 charactersper month
  • All translation features
  • Unlimited team members
  • Priority support
Start free trial

Yearly

An annual allowance for planned course releases.

$169/ year
12.000.000 charactersper year, billed annually
  • All translation features
  • Unlimited team collaboration
  • Priority support
Start free trial

Before your first import

The technical questions, answered.

Working with a custom component or an unusual export? Start with a small sample, not your entire course library.

Ask about your Adapt workflow

Does this work with the Adapt Authoring Tool and the Adapt Framework?

Yes. Adapt Authoring translation works through your existing export and import setup. Upload a supported JSON, CSV or XLIFF 1.2 export, translate it, then reimport through the matching workflow. For framework projects, translate the learner-facing content in your course JSON files. Export options depend on your Adapt version and installed localization extensions. No Qopywriter plugin or framework fork is required.

How do you translate Adapt JSON without changing system keys?

The tool separates learner-facing text from structural data before translation. Titles, instructions and feedback are translated; property names, IDs, component references and configuration values remain protected. Quotes are escaped correctly and the output is checked as JSON. It is not a prompt asking a chatbot to rewrite your entire file.

Can I use CSV or XLIFF 1.2 for Adapt course translation?

Yes. CSV translation preserves headers, delimiters, row identifiers and column mappings, including quoted commas and line breaks. XLIFF 1.2 translation preserves source segments, translation-unit IDs and inline tag relationships while translating target content. Use the same localization extension or importer that produced the export.

How does the translation compare with a human agency?

The AI delivers human-level linguistic accuracy by reading cross-segment context, maintaining corporate terms and preserving the intent of instructions and assessment feedback. That is the difference between a coherent course and a collection of individually translated strings. The quality rivals professional translation agencies; qualified human review remains part of sign-off for regulated or high-stakes content.

What does the 100% valid syntax guarantee cover?

Valid, supported exports stay structurally valid: parseable JSON with protected keys, CSV with intact column mappings, and XLIFF 1.2 with valid XML and protected inline tags. That means zero build errors caused by translated file syntax. The guarantee does not cover pre-existing project errors, incompatible plugins, theme issues, missing assets or broken dependencies. Your normal import, build and course review still apply.

Should I upload a SCORM ZIP or the localization files?

Upload the JSON, CSV or XLIFF 1.2 localization files, not a published SCORM ZIP. After translation, import the files into your source course and publish a fresh package through Adapt. Narration, video subtitles and text baked into images need their own localization work.

Can I test an Adapt export before paying?

Yes. The free trial includes a limited character allowance, with no credit card required. Start with one representative module, including a custom component or tagged segment if your project uses them. Translate it, reimport it and run your usual build before choosing a plan.

What should I check if Adapt still fails to build?

First, build the untouched source course. If that fails too, check the reported dependency, plugin or asset error before changing the translation. Next, confirm that the importer matches the export format, the target locale is configured and the files are in the expected location. Read the first build error, not the cascade after it.

Still stuck? Send the error message, your Adapt version and the affected file format to support@qopywriter.ai. Remove confidential course content from any sample you share.

Keep your build green

Ship the next language.
Not another syntax fix.

Start with one module. Translate it, reimport it, run your build. Then move on to the rest.