Multilingual Fields

Eclarion supports up to 7 languages for product data. Multilingual fields are returned as objects keyed by locale, and you write them the same way. For the full technical schema, see the API v3 Reference.

Supported locales

LocaleLanguage
enEnglish
nlDutch
deGerman
frFrench
esSpanish
itItalian
daDanish

Which locales are active depends on your account settings. You only need to provide the locales that are enabled for your account.

Reading multilingual fields

Multilingual fields are returned as an object with locale keys:

{
  "recipe": {
    "productname": {
      "en": "Chocolate Cake",
      "nl": "Chocoladetaart",
      "de": "Schokoladenkuchen"
    },
    "labeldescription": {
      "en": "Chocolate flavoured cake",
      "nl": "Cake met chocoladesmaak"
    }
  }
}

Locales without a translation are either omitted or returned as an empty string.

Writing multilingual fields

When creating or updating, provide translations as an object. At minimum, you must include your account's primary locale:

{
  "recipe": {
    "productname": {
      "nl": "Vruchtenyoghurt",
      "en": "Fruit Yoghurt"
    }
  }
}

You can provide one language or all — only send what you have.

Multilingual fields on recipes

The following recipe fields support translations:

  • productname
  • labeldescription
  • functional_name
  • ingredientdeclaration
  • usagestorageinstruction
  • best_before_date
  • use_by_date
  • date_of_freezing
  • product_description
  • allergen_statement
  • nutrition_statement
  • physiochemical_statement
  • microbiology_information
  • claims_statement
  • ingredientdeclaration_statement
  • preparation_information
  • packaging_information

Multilingual fields in nested collections

Some nested collections also have multilingual fields:

  • Organoleptic values: value
  • Preparation instruction values: value
  • Packages: name, description
  • Steps: name, instructions

Categories

Category names are also multilingual:

{
  "category": {
    "id": 1,
    "name": {
      "en": "Recipes",
      "nl": "Recepturen"
    }
  }
}

Tips

  • Always include the primary locale. Your account has a primary language (visible in account settings). This locale is required for productname and ingredientdeclaration. Other fields are optional.
  • Only send what you have. You don't need to provide all 7 locales. Just send the languages you have translations for.
  • Missing locales are empty. If a locale has no translation, it's either omitted or returned as an empty string.
  • Partial updates work. When updating a recipe, you can send a multilingual field with just one locale — it updates that locale without affecting others.

API version differences

The multilingual behavior differs between API versions:

  • v3 and v2: Multilingual fields always return a translations object, even for accounts with a single language.
  • v1: Returns a plain string for single-language accounts, and a translations object for multi-language accounts.

If you're migrating from v1 to v3, make sure your code handles the translations object format consistently. See the Migration Guide for all breaking changes between versions.

Next steps