Publish & distribute

Languages

Translating the catalog: what first, and the workflow.

Translating the catalog: what first, and the workflow. This page is the Product-data-guide entry point; the full treatment lives in the Localization & classification guide.

A catalog is not a website. A website has fifty pages to translate once. A catalog has thousands of products with several text fields each, and a share of them changes every quarter. Catalog translation therefore has to be a process that runs alongside the data, and the data model has to be built so the process stays small.

Where language lives in the model

Three places, and they are set up in three different screens:

WhatWhere it is setWhat it decides
Locale (de_DE, en_GB, fr_CH)Configuration › Markets, on the market, under LocalesWhich languages exist at all. A locale is a language plus a country, and it belongs to a market. A market with no locale has no language to render in.
Localizable flagPIM › Data model › Attributes, per attributeWhether the attribute holds one value per locale or one value for everyone.
Labels (i18n)On families, categories, attribute options, channelsThe names buyers see in navigation and facets, per locale.

The localizable flag is the decision the whole workload rests on. name, description and application_notes are localizable; sku, weight, thread_size and a date are not. The test: would a translator change this value? If it is a number, a code or a SKU, no.

Marking too much as localizable is the expensive mistake. Every localizable attribute, multiplied by every locale and every product, is a cell somebody fills or leaves empty. Changing the flag on an attribute that already holds data is a migration, not a toggle. Decide it while the catalog is small.

What to translate first

The order decides how quickly a market becomes usable, and it is the reverse of what most teams start with:

  1. Category and family labels. A few hundred strings. Without them the navigation is in the wrong language and the shop looks untranslated whatever else you do.
  2. Option labels. Also a few hundred, and they localise the facet panel of the entire catalog. Translating the twelve options of material once serves every product that uses it.
  3. Product names. Thousands, but short, and what buyers scan and search for. Translated names with untranslated descriptions work; the reverse does not.
  4. Short descriptions, then long descriptions, and only for the products that justify it.

Translate what is short, structured and reused before what is long, unique and rarely read. Cut the scope by product as well: your top articles by revenue fully, the tail's names and option labels only.

Steps

  1. Under Configuration › Markets, open the market and select Add locale. Enter the Locale code (BCP 47), the Language (ISO 639-1) and the Country (ISO 3166-1 alpha-2). Mark one locale per market as the Default locale of the market.
  2. Under PIM › Data model › Attributes, check that every attribute a translator should touch is Localizable, and nothing else is.
  3. Fill Labels (i18n) on families, categories and attribute options for the new locale. This is the step that makes the shop look translated.
  4. Translate product values, either in the product workbench with the locale switched, or through an import with one column per locale: name-fr_CH, description-fr_CH.
  5. Set the tenant setting Label locale order to the locales the grid should prefer when it shows a product name, your main market first. Left empty, the grid picks alphabetically and will not prefer your main market.

Category labels fall back on their own: a locale left blank shows the next one that is filled. Product values do not; an empty French description is empty and completeness reports it as such. How fallback chains are designed, and why a German product name in a French list is acceptable while three paragraphs of German prose are not, is covered in Add a language.

What to check

  • Switch the storefront to the new locale and walk one category: navigation, listing, facets, product page. Facets still in German means the option labels were missed.
  • Open a product with no translation and confirm it behaves as you intended, blank where you expect blank.
  • Read completeness for the new locale. The number will be low. That is correct, and it is the work list.
  • Import a ten-row test file with the new locale columns before the full one, and check that the values landed under the right locale.

Next