> ## Documentation Index
> Fetch the complete documentation index at: https://docs.truenroll.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Translation & digitization

> How TruEnroll converts academic documents into readable, page-structured HTML.

When a document is submitted with the `translation` feature enabled, TruEnroll produces a
readable, page-structured HTML representation of the original file. This makes documents
accessible for human review, downstream processing, or archiving, regardless of the original
language or file format.

## What translation produces

<CardGroup cols={2}>
  <Card title="Full document" icon="file-lines">
    `htmlRepresentation`: the entire document as a single HTML string, suitable for
    rendering, searching, or passing to downstream systems.
  </Card>

  <Card title="Page-by-page" icon="table-list">
    `htmlPages`: an array of HTML strings, one per page, preserving the original page
    structure and order for paginated display or per-page processing.
  </Card>

  <Card title="Language handling" icon="language">
    Documents in non-Latin scripts (Arabic, Chinese, Korean, Hindi, and others) are
    transliterated and translated into English within the HTML output.
  </Card>

  <Card title="Layout preservation" icon="object-group">
    Tables, lists, and multi-column layouts are preserved in the HTML structure so the
    output reflects the original document's organization.
  </Card>
</CardGroup>

## Translation result shape

The translation result is returned per source file. Each entry includes:

```json theme={null}
{
  "uploadId": "6850def456ghi789abc123",
  "credentialId": "6850ghi789abc123def456",
  "fileId": "file_abc",
  "fileName": "transcript.pdf",
  "status": "completed",
  "htmlRepresentation": "<html>...</html>",
  "htmlPages": ["<html>page 1</html>", "<html>page 2</html>"]
}
```

`htmlRepresentation` and `htmlPages` are `null` until `status` is `completed`. `credentialId`
is `null` for raw files (uploads submitted with `classify: false`).

<Note>
  Translation and extraction run independently. A translation failure does not block
  extraction from completing, and vice versa.
</Note>

## When translation runs

Translation timing depends on whether classification is enabled for the upload:

* **`classify: true` (default):** translation starts after classification completes, so
  each file's HTML reflects the classification-aware document boundaries.
* **`classify: false`:** translation starts immediately when the upload is received.

## Enabling translation

Translation is an opt-in feature at the case level. Include it in the `features` array when
submitting a case:

```bash theme={null}
curl -X POST https://api.truenroll.com/partner/v1/cases \
  -H "x-api-key: $TRUENROLL_API_KEY" \
  -F "files=@transcript.pdf" \
  -F 'features=["extraction","translation"]'
```

Your organization must have the `translation` feature enabled. Requesting it without the
feature fails synchronously with a `403` before any files are stored or processed.

<Card title="Translation feature limits" icon="sliders" href="/partner-api/features-and-limits">
  Organization feature requirements and behavior when the feature is unavailable.
</Card>
