Save one locale's translation (owner only)
Replace the whole overlay for one locale; origin becomes author.
Saving a translation never creates a Release — translations hang off
the app identity and apply to every version.
Hard checks (400): locale must be valid and must not equal the app’s
source_locale (locale-is-source); entries must map paths to strings
/ string arrays (translation-invalid); at most 20 locales per app
(translation-locale-limit); 413 above 4MB. Path-level problems
(unknown path, wrong type, enum_titles length not matching enum,
duplicate event/example ids) are warnings, not rejections —
consumers skip those entries. The hash basis is the workspace
(what the author sees while translating), falling back to the
latest Release when there is no draft; stale in the response is
computed against the latest Release, so a translation saved for a
not-yet-published draft change reports stale=true until that change
ships. expected_revision mismatch → 409 revision-conflict.
Authorizations
DataHub API Key
Body
Response
Successful Response