Terms and translations

Auto-translate

How LangSync's AI translation works — the batch job, the single-cell suggestion, what the AI sees, and what it costs.

Not verified yet

LangSync's AI translation appears in three places, all driven by the same engine:

FlavourWhereStored?
Batch auto-translateTranslate missing dialog, term creation, bulk import, sync jobsYes — fills empty translations
Single-cell suggestionSparkle button in the side-by-side editorOnly when you save
Manual translationThe Manual translation pageNever

What the AI actually sees

Understanding the inputs tells you how to get better output:

  • The source text — the term's value in the source language. For a namespace this is the default language, unless a sync job overrides the source language.
  • The language pair — source and target language, by name and code.
  • The namespace's default custom prompt, if it has one, or a prompt named in the request. It shapes tone and style.
  • Your glossary — on every term translation, batch or single-cell, automatically. Items are pre-filtered to the source → target pair, so a glossary entry only influences translations it has values for (non-translatable entries apply everywhere).
  • A fixed instruction set — preserve meaning, tone, and formatting; adapt idioms; follow target-language grammar. The model runs deterministically (temperature 0) and must answer in a strict JSON schema, so the output is exactly one translation, never commentary.

Note what's not in that list: the term's context field and the namespace description are notes for humans reviewing the namespace — they aren't fed into the AI. To steer the AI, use the glossary for terminology and the namespace's default prompt for register and style.

A term needs a source value before the AI can translate it. A term whose source-language value is empty is skipped by batch runs, and the single-cell button is disabled for it (the API returns a NO_TRANSLATION_SOURCE error).

Batch auto-translate

  1. Open the namespace (either view) and click Translate missing.
  2. In the dialog, choose:
    • Translate all missing translations (default) — every empty term × language cell in the namespace, or
    • Select specific languages to translate — check just the languages you want filled.
  3. Confirm. The dialog notes it may take a while for large namespaces.

The job runs in the background: "Translation started! You will receive an email when it completes." The email ("Batch translation is complete") reports how many terms were processed and how many failed. Refresh the terms list to watch progress in the meantime.

Batch runs only ever fill empty cells — existing translations, human or AI, are never overwritten. That makes it safe to re-run any time; a batch after a no-op is itself a no-op.

The same batch engine runs automatically when:

  • you create a term with Translate automatically enabled,
  • a bulk import finishes with Translate automatically checked,
  • a sync job's autotranslate phase runs.

Single-cell suggestion

In the side-by-side editor, every target field has a sparkle button ("Generate AI translation"). Click it and the AI's suggestion is placed into the textarea — review it, edit it if needed, and it's only persisted when you hit Save Changes. The button is disabled while the term has no source value.

This is the right tool when you want AI speed with human sign-off on every string, rather than trusting a batch.

The AI label

A translation written by AI shows a small AI badge in the editor (both the term dialog and the side-by-side view), with the hint "Translated by AI. Edit the text to mark it as reviewed." It marks text nobody has changed since the AI wrote it, so reviewers can see what still needs a human look.

  • Batch runs, new terms with Translate automatically, bulk imports and CLI sync mark the translations the AI fills in. Values that come from your import file or your local files are yours and aren't marked.
  • A suggestion you save without changing it keeps the label. Change the text and save, and the label goes away.
  • Saving the same text again doesn't remove the label; only a change does.
  • The Public API returns the flag as ai_generated on each item of GET /api/v1/namespaces/{namespaceName}/terms/translations.

Translations saved before the label existed show no badge: LangSync doesn't know who wrote them.

Rate limits

Requests that start AI translation share one budget:

  • 200 requests per hour per organization, and
  • 50 requests per hour per user.

Both limits must pass; exceeding either returns 429 TOO_MANY_REQUESTS. A batch counts as one request however many cells it fills, so many small batches use the budget faster than one large one. See Limits and errors for which requests count.

What gets billed

  • A term × language pair is billed once it stores a non-empty translation — regardless of whether a human or the AI wrote it.
  • AI calls themselves have no separate per-call charge; the rate limits above are the throttle.
  • Single-cell suggestions and manual translations don't store anything by themselves, so they add nothing to storage billing — but they do count against the rate limit.

Before you run a big batch

  1. Set up the glossary first. Fixing brand names after translating 5,000 strings into eight languages means re-reviewing everything.
  2. Spot-check with single-cell suggestions in a couple of languages you can read, to sanity-check tone.
  3. Remember: re-running is safe, but a batch never replaces wrong translations — fix those by hand or clear them first.

On this page