localization
GET /v1/i18n/catalogues/{locale}
Get the public site's UI message catalogue for one locale.
Pagpapatotoo
Ang endpoint na ito ay pampubliko. Wala itong kinukuha na kredensyal at organisasyon — ito ang binabasa ng aming sariling marketing site at mga AI answer engine.
Ang endpoint na ito ay hindi nangangailangan ng id ng organisasyon. Natutukoy na ng iyong key ang organisasyong kinabibilangan nito, at nakatuon ang tugon dito.
Subukan ito
Palitan ang anuman sa loob ng mga panaklong na may anggulo ng iyong sariling mga halaga, at ang placeholder ng key na may key mula sa iyong dashboard.
curl -X GET https://api.zinndigital.com/v1/i18n/catalogues/{locale}Nakalagda? Ang API console sa iyong dashboard ay awtomatikong naglalagay ng iyong tunay na ID ng organisasyon at sariling susi, at pinapatakbo ang kahilingan laban sa live na API upang makita mo ang aktwal na tugon. Buksan ang endpoint na ito sa console ng API
Mga Detalye
Returns the Zinn® marketing site's own UI strings for `locale`, **nested** in the shape `next-intl` consumes directly — the read `marketplace-web` performs on the server at render time. **Public, and non-tenant.** Unlike `getTranslationBundle` this needs no credential and has no organization scope: it returns the platform's own strings, which are already present in the public HTML of every page in that language. That is also what makes it cacheable by URL at the edge — an `Authorization` header suppresses shared caching, which would put a network round trip on every page render. **Why it exists next to `getTranslationBundle`.** The bundle is the *build-time* read: authenticated, tenant-scoped, and shaped as `object_ref → field → {text, status}` for a script that re-nests it and commits `messages/<locale>.json`. That made a finished translation wait for a commit, a rebuild and a deploy. This is the *render-time* read, so a finished translation goes live on its own. **`up_to_date` only** — deliberately stricter than the bundle's last-good-while-stale rule. The site layers this response *over* its committed catalogue, so an omitted key falls back to the committed translation rather than to English; serving stale text here could only replace a good translation with an older one. **An unknown-to-the-pipeline locale is a `200` with an empty `messages` object, never a `404`.** The caller treats any failure as "use the committed catalogue", so a `404` would be indistinguishable from an outage and would report a locale that simply has not been translated yet as the engine being broken. Cacheable: strong `ETag` plus `Cache-Control: public, max-age=300, stale-while-revalidate=86400`. Send `If-None-Match` for a `304`.
Mga Parameter
| Pangalan | Uri | Kailangan | Ano ito |
|---|---|---|---|
locale (path) | LocaleCode | Oo | The target locale (docs/28 registry code). |
If-None-Match (header) | string | Hindi | A previously returned `ETag`; a match responds `304`. |
Tugon
| Pangalan | Uri | Kailangan | Ano ito |
|---|---|---|---|
locale | LocaleCode | Oo | BCP-47 / ISO locale code from the language registry (docs/28). |
messages | object | Oo | The catalogue, **nested** — `nav.link.pbn` arrives as three levels of object, not as a dotted key — because the consumer is `next-intl`, which reads this shape directly. It is t… |
Mga error na maibabalik ng endpoint na ito
422 · 429