localization
GET /v1/i18n/document-sets/{locale}
Get several marketing documents' finished translations in one call.
Упълномощаване
Този крайpoint е публичен. Той не изисква данни за удостоверяване и организация — това е съдържанието, което нашият собствен маркетинг сайт и AI машини за отговори четат.
Този ендпойнт не изисква идентификатор на организация. Вашият ключ вече идентифицира организацията, към която принадлежи, и отговорът е ограничен до нея.
Опитайте
Заменете всичко в квадратни скоби със собствени стойности, а ключовия заместващ символ – с ключ от вашето табло за управление.
curl -X GET https://api.zinndigital.com/v1/i18n/document-sets/{locale}?object_ref=<object_ref>Влязохте ли в профила си? API конзолата във вашето табло за управление попълва действителното идентификационно число на вашата организация и вашия собствен ключ и изпълнява заявката спрямо реалното API, за да можете да видите действителния отговор. Отворете този крайpoint в API конзолата
Детайли
The batched form of getPublicDocumentTranslations: name up to 50 documents with a repeated object_ref, get all of their finished translations in one round trip. Why it exists (D13732). marketplace-web prerenders every (locale × page) route, and asking for one document at a time cost 100 documents × 58 locales = 5,800 requests per prerender pass — about 23,200 per build once next build's worker processes are counted, against a 600/min budget. Measured in one 20-minute build window on the live engine: 38,322 × 429 against 20,142 served — 65% of the build's document fetches refused, each one silently degrading a freshly deployed page to the copy committed in content/site/. Batched, a locale costs ceil(100/50) = 2 calls, so a whole build is ~464 requests. ⛔ The remedy is a bulk read, never a bigger limit (CLAUDE.md §2.10). The call count is ceil(documents/50), so it does not move when marketing pages are added — a raised limit would have to be re-derived on the next content push. ⛔ object_ref is required and bounded at 50. One locale's whole page surface is ~7,879 entries; an unbounded read of it on a public URL is the thing this parameter exists to prevent, and a batch is not an exemption from that. A document with no finished translations is present and empty, never omitted — a caller cannot otherwise distinguish "nothing translated yet" from "I forgot to ask for it", and the second silently serves English. Public and non-tenant, up_to_date only, and cacheable with a strong ETag plus Cache-Control: public, max-age=300, stale-while-revalidate=86400 — all for the same reasons as the single-document read.
Параметри
| Име | Тип | Задължително | Какво представлява |
|---|---|---|---|
locale (path) | LocaleCode | Да | The target locale (docs/28 registry code). |
object_ref (query) | string[] | Да | A document, e.g. page:hosting. Repeat it to ask for several; at most 50 per call. Duplicates are charged once. |
If-None-Match (header) | string | Не | A previously returned ETag; a match responds 304. |
Отговор
| Име | Тип | Задължително | Какво представлява |
|---|---|---|---|
locale | LocaleCode | Да | BCP-47 / ISO locale code from the language registry (docs/28). |
documents | object | Да | object_ref -> (field -> translated text). Every object_ref the caller asked for is a key, even when its inner object is empty — an omitted key would be indistinguishable… |
Грешки, които този крайpoint може да върне
422 · 429