# Analysis, sample and real run

The road to the first translation always passes three stations: look at the scope, review and approve a sample, then the run — the **wizard** leads through them in order (steps 5, 6 and 8). After that the run alone suffices, or the scheduled task takes it over. The analysis page shows the same findings at any time as a pure report.

## The scope (and the analysis page)

Step 5 of the wizard — and in more detail the analysis page — only reads and shows per target language:

- What is **new**, what has **changed** since its last translation, what is **unchanged** and current, and what gets **skipped** (language "All", excluded articles) — with the reason per article.
- The **cost estimate** for the next batch: in USD for token-billed providers, as tokens against the monthly quota for flat plans.
- **Orphaned translations** — translations whose source no longer exists. They are only reported, never deleted: a source may sit in the trash only temporarily.
- The card "What this run translates — and what not".

## The sample

The quality sample translates a few articles (selectable, 1–10) for real through the configured provider but **writes nothing**. Source and translation appear side by side: title, intro, meta description. Review the sample for tone, terminology and glossary compliance — that is exactly what it is for.

## The approval

When the sample hits the tone, click "Approve profile". The approval applies to exactly this combination of translation profile, provider and model. When any of them changes, it expires — and the next real run requires a new sample. This way no unreviewed configuration can write into your content, not even through the scheduled task.

## Step 7: check and run it

Step 7 shows every decision on one page — provider and model, languages, profile, scope, approval — and lists underneath what the run will do, in order. From there you start either the **dry run** (shows in full what would happen — free, no API calls, nothing gets written) or the **live run**.

The live run does both parts in one go: it first translates every outstanding article and then creates the menu, module and — on YOOtheme — footer and template twins on its own. The order is not a choice but a dependency: only what is already translated can be mirrored. That is why the wizard handles it and you do not have to.

<div class="callout info" id="bkmrk-if-the-time-runs-out">If the time runs out or you stop, nothing is lost — the next start carries on from exactly there. What is already translated is not translated again.

</div>## The live run

The real run translates the next batch and writes the translations as regular Joomla articles — with the language association to the source, correct permissions and, where present, transferred field values and tags. Three mechanisms come first:

- **Backup confirmation:** per real run you confirm with a checkbox that a current backup of the site exists.
- **Cost gate:** when the run's estimate exceeds the cost limit from the options, the run aborts before anything is translated. The limit protects against the most expensive accident — an unintended retranslation of the whole stock.
- **Batch limit:** at most the configured number of articles per run (default 20).

## Large stocks: just click again

A web run has a time budget. When it runs out, the run stops cleanly — the state is recorded per article, and the next click on "Translate next batch" continues exactly there. Nothing gets lost, nothing gets translated twice.

## The logs

Every run writes a log. As of 0.17.0 they can be read in the backend, without going onto the server: on the overview, the **Logs** entry leads to a list of the finished runs, and one click shows the full text beside it.

Dry runs and real runs stand side by side, most recent first. Very long logs are cut off after 500 KB — the complete file stays in the log folder.

## Continuation

After the initial translation, TranslatePilot detects changes by itself: a changed title, text, meta value or field value makes exactly that article appear as "changed"; the next run continues its translation. Unchanged articles cost nothing.

[Deutsche Fassung](https://docs.graup-it.de/link/272)