profound-logoProfound CMS
⌘K
Admin
Theme
DocsTutorialBlogPhilosophy
DocsTutorialBlogPhilosophy

Hybrid

Collection of Pages with ComponentsTypy komponentówSetup server sent events (SSE) content refetchInstall Profound CMS as a proxySkrypty w kreatorze szablonówProject ScaffoldingBiblioteka multimediów

Headless

Szybki startSplit Screen JSON Component Builder with LLMComponent Zod Pull

REST API

Przegląd REST APIgetConnect your websitegetGET /routesgetGET /routegetGET /blocksgetGET /blocks/with-cel-cachegetGET /blocks/generatedgetGET /componentsgetGET /components/{name}getGET /dataset/{schema_name}getGET /content-changes (SSE)patchPATCH /dataset/{schema_name}postTłumaczenie postapatchKorekty tłumaczeńgetGET /usagepostPOST /csvpatchPATCH /csv
All Systems Operational
Powered Byprofound-logo
Theme

Tłumaczenie posta

Rozpocznij masowe tłumaczenie w tle opublikowanych dokumentów schematu na języki docelowe.

Kolejkowanie w tle tłumaczenia wszystkich opublikowanych dokumentów z jednego lub większej liczby schematów komponentów na zestaw języków docelowych. Wyniki są zapisywane za pomocą operacji upsert w tabeli translations po zakończeniu każdego tłumaczenia.

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

Treść żądania

{
  "websiteId": "<uuid>",
  "schemaNames": ["post", "hero"],
  "languages": ["fr", "es", "de"]
}
PoleTypWymaganeUwagi
websiteIduuidtakWitryna zawierająca dokumenty źródłowe.
schemaNamesstring[]tak*Schematy komponentów do przetłumaczenia. Zduplikowane nazwy są usuwane.
schemaNamestringtak*Starsza alternatywa umożliwiająca przesłanie pojedynczego schematu.
languagesstring[]takObsługiwane kody języków docelowych. Zduplikowane kody są usuwane.

* Należy podać schemaNames albo schemaName.

Uwzględniane są wyłącznie opublikowane dokumenty z niepustą opublikowaną treścią.

Odpowiedź

{
  "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"
}

Zwraca:

  • 202 Accepted — gdy tłumaczenia zostaną umieszczone w kolejce
  • 200 OK — gdy każde tłumaczenie jest już aktualne
  • istniejące aktywne zadanie — gdy identyczne żądanie jest już realizowane
PoleOpis
job_idIdentyfikator używany do pobierania postępu zadania.
statusBieżący status zadania.
documents_processedLiczba znalezionych kwalifikujących się dokumentów źródłowych.
translations_scheduledLiczba par dokument-język umieszczonych w kolejce.
translations_skippedLiczba pominiętych, ponieważ ich hasze źródłowe są aktualne.
translations_completedLiczba pomyślnie przetłumaczonych elementów.
translations_failedLiczba elementów, których tłumaczenie się nie powiodło.
reusedCzy odpowiedź odnosi się do istniejącego aktywnego zadania.

Możliwe statusy zadania:

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

Pomijanie aktualnych tłumaczeń

Każda para dokument-język przechowuje skrót SHA-256 opublikowanej treści dokumentu źródłowego.

Tłumaczenie jest pomijane, gdy zapisany skrót źródłowy odpowiada bieżącej opublikowanej treści. Dzięki temu endpoint można wywoływać wielokrotnie bez ponownego tłumaczenia niezmienionej treści.

Jeśli opublikowana treść zmieni się, gdy równoważne zadanie będzie aktywne, usługa odrzuci nowe żądanie. Należy przesłać je ponownie po zakończeniu aktywnego zadania.

Sposób przetwarzania

Tłumaczenie jest wykonywane asynchronicznie po udzieleniu początkowej odpowiedzi.

  • Praca jest przetwarzana przy ograniczonej współbieżności.
  • Błędy przejściowe są ponawiane z zastosowaniem mechanizmu narastających opóźnień.
  • Pomyślne wyniki są zapisywane po ich ukończeniu.
  • Pojedyncze błędy wnioskowania lub zapisu są rejestrowane w zadaniu.
  • Częściowo pomyślne zadanie kończy się statusem completed_with_errors.

Przykład

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"]
  }'

Błędy

  • 400 Bad Request — brakuje schematów lub języków, język nie jest obsługiwany albo partia przekracza skonfigurowany limit
  • 401 Unauthorized — token bearer nie został podany lub jest nieprawidłowy
  • 409 Conflict — istnieją pasujące aktywne zadania, ale opublikowana treść źródłowa uległa zmianie
  • 500 Internal Server Error — nie można było przygotować dokumentów źródłowych lub operacja na bazie danych nie powiodła się

Pobieranie zadania tłumaczeniowego

Pobieranie najnowszych informacji o postępie zadania tłumaczeniowego.

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

Odpowiedź

Odpowiedź korzysta z tego samego obiektu zadania, który jest zwracany przez POST /translation, ze zaktualizowanym statusem i licznikami postępu.

{
  "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"
}

Przykład

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

Błędy

  • 401 Unauthorized — token bearer nie został podany lub jest nieprawidłowy
  • 404 Not Found — zadanie nie istnieje lub nie jest już przechowywane

Zadania tłumaczeniowe są obecnie przechowywane w pamięci. Status zadania zostaje utracony po ponownym uruchomieniu usługi tłumaczeniowej, a wdrożenia wieloinstancyjne wymagają kierowania żądań do tej samej instancji.

Continue Reading
Previous‹PATCH /dataset/{schema_name}NextKorekty tłumaczeń›