Translate catalog content

Outcome: the Copenhagen Lamp resolves translated content for one active locale and predictable fallback for a missing value.

Prerequisites

Use an Admin credential and an existing product. Confirm the exact public translation keys for the product entity; keys are part of the translatable contract and must not be invented.

1. Configure the locale

Create or update the required locale through the Admin locale mutations. Make it active, and set the project’s intended default through the supported locale input. Query locales and retain the locale code returned by the API.

2. Write translations

Code in graphql

Build the input from the TranslationsUpsertBulkInput contract using the product ID, verified field key, locale code, and translated value. Inspect typed errors for an inactive locale, unsupported entity, or invalid key.

3. Read and test fallback

Query the Storefront product with the new locale and confirm the translated field. Repeat with the project default, then remove one nonessential translated value and confirm the documented fallback or absence rather than assuming every field is populated.

For large data sets, use the asynchronous translation import/export jobs in Bulk operations and import/export jobs. See Locales and translations for lifecycle rules.