localization
GET /v1/i18n/documents/{locale}
Get one marketing document's finished translations.
ማረጋገጫ
ይህ ማቆሚያ (endpoint)ይፋዊ ነው። ምንም ምስክርነት (credential) ወይም ድርጅት አይወስድም — የራሳችን የግብይት ጣቢያ እና የAI መልስ ሞተሮች የሚያነቡት ነው።
ይህ ኤንድፖይ መክፈቻ (endpoint) የድርጅት መታወቂያ (organisation id) አይወስድም። የእርስዎ ቁልፍ (key) እሱ የሚመለከተውን ድርጅት አስቀድሞ ይለያል፣ እና ምላሹም ለዚሁ የተወሰነ ነው።
ሞክሩት
በቅንፍ ውስጥ ያለውን ማንኛውንም ነገር በራስዎ እሴቶች ይተኩ፣ እና ቁልፍ ቦታ ያዢውን ከዳሽቦርድዎ በመጣ ቁልፍ ይተኩ።
curl -X GET https://api.zinndigital.com/v1/i18n/documents/{locale}?object_ref=<object_ref>ገብተዋል? የመቆጣጠሪያ ማዕከልዎ ውስጥ ያለው የኤፒአይ ኮንሶል ትክክለኛውን የድርጅት መታወቂያዎን እና የራስዎን ቁልፍ ይሞላል፣ እና ትክክለኛውን ምላሽ ማየት እንዲችሉ ጥያቄውን በቀጥታ ከሚሰራው ኤፒአይ ጋር ያካሂደዋል። ይህን ኤንድፖይንት በAPI ኮንሶል ውስጥ ይክፈቱ
ዝርዝሮች
Returns the finished translations for a **single** document, as `field -> text` across the surfaces a rendered page is built from (`page`, `meta_title`, `meta_description`, `alt_text`) — the read the public site performs on the server, per page, at render time. **Why a second public endpoint next to `getPublicMessageCatalogue`.** They are cached on different keys and answer different questions. The catalogue is one response per locale covering the shell (nav, footer, meta) and is read on every page; this is one response per document per locale, read only by the page it belongs to. Folding them together would churn the shell's cache entry whenever any of 60 marketing pages was retranslated. **⛔ `object_ref` is required.** One locale's whole `page` surface is ~7,879 entries — the read `scripts/i18n-pages.mjs` batches at build time, and the one that OOM-killed the engine on 2026-08-05. Making the parameter optional would re-create that on a public, unauthenticated URL. A single document is ~131 leaves, which is what makes this safe on a render path behind an edge cache. **Public and non-tenant**, for the same reasons as the catalogue: the text is already in the page's HTML, and an `Authorization` header suppresses shared caching. **`up_to_date` only** — the site applies this *over* the document the current deploy already serves, so stale text could only replace a good translation with an older one. **An untranslated document is a `200` with an empty `fields` object, never a `404`** — the caller treats any failure as "use the build-time document", so a `404` would be indistinguishable from an outage. Cacheable: strong `ETag` plus `Cache-Control: public, max-age=300, stale-while-revalidate=86400`.
መለኪያዎች
| ስም | ዓይነት | የሚያስፈልግ | ምንነቱ |
|---|---|---|---|
locale (path) | LocaleCode | አዎ | The target locale (docs/28 registry code). |
object_ref (query) | string | አዎ | The document, e.g. `page:hosting`. Required — see the description. |
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). |
object_ref | string | አዎ | The document these fields belong to, echoed back. |
fields | object | አዎ | `field -> translated text`, flat. The field names are the ones the CMS walker (`cms/src/lib/snapshotKeys.ts`) assigns when it collects a document's translatable leaves, so the c… |
ይህ ማብቂያ ሊመልሳቸው የሚችሉ ስህተቶች
422 · 429