profound-logoProfound CMS
⌘K
Admin
Theme
DocsTutorialBlogPhilosophy
DocsTutorialBlogPhilosophy

Hybrid

Collection of Pages with ComponentsTypes of ComponentsSetup server sent events (SSE) content refetchInstall Profound CMS as a proxyCEL Scripting in Template BuilderProject ScaffoldingBibliotecă media

Fără interfață

Pornire rapidăSplit Screen JSON Component Builder with LLMComponent Zod Pull

API REST

Prezentare generală API RESTgetConnect your websitegetGET /routesgetGET /routegetGET /blocksgetObține blocuri cu cache CELgetGET /blocks/generatedgetGET /componentsgetGET /components/{name}getGET /dataset/{schema_name}getGET /content-changes (SSE)patchPATCH /dataset/{schema_name}postPOST /translationpatchPATCH /translationsgetGET /usagepostPOST /csvpatchPATCH /csv
All Systems Operational
Powered Byprofound-logo
Theme

POST /translation

Pornește traducerea în bloc, în fundal, a documentelor publicate ale unei scheme în limbile țintă.

Pune în coadă pentru traducere în fundal toate documentele publicate din una sau mai multe scheme de componente într-un set de limbi țintă. Rezultatele sunt inserate sau actualizate în tabelul translations pe măsură ce fiecare traducere este finalizată.

Endpoint: POST /translation Autentificare: Bearer JWT (WorkOS)

Corpul solicitării

{
  "websiteId": "<uuid>",
  "schemaNames": ["post", "hero"],
  "languages": ["fr", "es", "de"]
}
CâmpTipObligatoriuNote
websiteIduuiddaSite-ul web care conține documentele sursă.
schemaNamesstring[]da*Schemele de componente care trebuie traduse. Numele duplicate sunt eliminate.
schemaNamestringda*Alternativă moștenită pentru trimiterea unei singure scheme.
languagesstring[]daCodurile limbilor țintă acceptate. Codurile duplicate sunt eliminate.

* Furnizați fie schemaNames, fie schemaName.

Sunt luate în considerare numai documentele publicate cu conținut publicat nenul.

Răspuns

{
  "job_id": "<uuid>",
  "website_id": "<uuid>",
  "schema_name": null,
  "schema_names": ["post", "hero"],
  "languages": ["fr", "es", "de"],
  "status": "queued",
  "documents_processed": 12,
  "translations_scheduled": 30,
  "translations_skipped": 6,
  "translations_completed": 0,
  "translations_failed": 0,
  "reused": false,
  "created_at": "2026-07-15T18:00:00Z",
  "updated_at": "2026-07-15T18:00:00Z"
}

Returnează:

  • 202 Accepted când traducerile sunt puse în coadă
  • 200 OK când fiecare traducere este deja actualizată
  • lucrarea activă existentă când o solicitare identică rulează deja
CâmpDescriere
job_idIdentificator utilizat pentru a prelua progresul lucrării.
statusStarea curentă a lucrării.
documents_processedNumărul documentelor sursă eligibile găsite.
translations_scheduledNumărul perechilor document-limbă puse în coadă.
translations_skippedNumărul elementelor omise deoarece hash-urile sursă sunt actualizate.
translations_completedNumărul traducerilor finalizate cu succes.
translations_failedNumărul traducerilor eșuate.
reusedIndică dacă răspunsul se referă la o lucrare activă existentă.

Stările posibile ale lucrării sunt:

  • preparing
  • queued
  • running
  • completed
  • completed_with_errors
  • failed

Omiterea traducerilor actualizate

Fiecare pereche document-limbă stochează un hash SHA-256 al conținutului publicat al documentului sursă.

O traducere este omisă atunci când hash-ul sursă stocat corespunde conținutului publicat actual. Astfel, endpointul poate fi apelat în mod repetat fără a retraduce conținutul neschimbat.

Dacă conținutul publicat se modifică în timp ce o lucrare echivalentă este activă, serviciul respinge noua solicitare. Trimiteți-o din nou după finalizarea lucrării active.

Comportamentul procesării

Traducerea rulează asincron după răspunsul inițial.

  • Lucrările sunt procesate cu concurență limitată.
  • Erorile tranzitorii sunt reîncercate cu backoff.
  • Rezultatele reușite sunt persistate pe măsură ce sunt finalizate.
  • Erorile individuale de inferență sau persistență sunt înregistrate în cadrul lucrării.
  • O lucrare parțial reușită se încheie cu completed_with_errors.

Exemplu

curl -X POST '{TRANSLATION_API_URL}/translation' \
  -H 'Authorization: Bearer <workos-jwt>' \
  -H 'Content-Type: application/json' \
  -d '{
    "websiteId": "<uuid>",
    "schemaNames": ["post", "hero"],
    "languages": ["fr", "es"]
  }'

Erori

  • 400 Bad Request — schemele sau limbile lipsesc, o limbă nu este acceptată sau lotul depășește limita configurată
  • 401 Unauthorized — tokenul bearer lipsește sau este invalid
  • 409 Conflict — există o lucrare corespunzătoare activă, dar conținutul sursă publicat s-a modificat
  • 500 Internal Server Error — documentele sursă nu au putut fi pregătite sau o operațiune asupra bazei de date a eșuat

Obținerea lucrării de traducere

Preia cel mai recent progres al unei lucrări de traducere.

Endpoint: GET /translation-jobs/{job_id} Autentificare: Bearer JWT (WorkOS)

Răspuns

Răspunsul utilizează același obiect de lucrare returnat de POST /translation, cu starea și valorile progresului actualizate.

{
  "job_id": "<uuid>",
  "website_id": "<uuid>",
  "schema_name": null,
  "schema_names": ["post", "hero"],
  "languages": ["fr", "es"],
  "status": "running",
  "documents_processed": 12,
  "translations_scheduled": 24,
  "translations_skipped": 0,
  "translations_completed": 16,
  "translations_failed": 1,
  "reused": false,
  "created_at": "2026-07-15T18:00:00Z",
  "updated_at": "2026-07-15T18:01:30Z"
}

Exemplu

curl '{TRANSLATION_API_URL}/translation-jobs/<job-id>' \
  -H 'Authorization: Bearer <workos-jwt>'

Erori

  • 401 Unauthorized — tokenul bearer lipsește sau este invalid
  • 404 Not Found — lucrarea nu există sau nu mai este păstrată

Lucrările de traducere sunt păstrate momentan în memorie. Starea lucrării se pierde la repornirea serviciului de traducere, iar implementările cu mai multe instanțe necesită rutare persistentă.

Continue Reading
Previous‹PATCH /dataset/{schema_name}NextPATCH /translations›