---
title: "Language fallback and publishing"
slug: "language-fallback-and-publishing"
abstract: "Learn the rules according to which Sitecore Experience Edge Connector supports language fallback dependencies when you publish items to a delivery platform."
---
# Language fallback and publishing

The Experience Edge Connector supports [language fallback](https://doc.sitecore.com/xp/en/developers/104/sitecore-experience-manager/language-fallback.html) when you publish items to a delivery platform. 

> [!note]
> When you publish items that use language fallback to Edge, each fallback language version must be published at least once to create the necessary dependencies on Edge. Until a fallback version has been published, its content will not appear when accessed in that language, for example through sitemap links or API responses.
>
> After all fallback versions have been published once, you only need to publish the primary language, such as English. During subsequent publishing operations, the Edge publishing process automatically maintains dependencies for the fallback languages, so their content stays up to date without re-publishing each version individually.

The publishing items procedure depends on whether you are publishing for the first time, or republishing an item that has language fallback dependencies:

- When you publish fallback language versions *for the first time*, you must publish each version to ensure that they are saved on Edge. 
- Later, when you publish the fallback language version of an item, the Experience Edge Connector checks for other dependent language versions and publishes them as well. This ensures static content for the item is available for all dependent languages on Experience Edge.

This topic explains how automatic publishing of fallback language versions is performed *after the initial publication of each item independently of each other*.

## Item-level language fallback

The following diagram shows an example of item-level language fallback with a fallback chain of three languages:

![How item-level language fallback works.](https://doc.sitecore.com/api/markdown-image/xp/en/developers/hd/23/sitecore-headless-development/images/lang-fallback-1.png)

In the diagram, Sitecore has only one English version for Item 3.

When Sitecore renders dynamically, it uses the `en` fallback version when it tries to render the item for `en-nz` (which does not have a version).

When rendering statically, the Experience Edge Connector publishes this item, using the fallback version for all dependent languages (`en-au`, `en-nz`) to get a similar result in Experience Edge. The next sections describe how the Experience Edge Connector supports language fallback in detail.

When the Experience Edge Connector publishes the fallback language version of an item, it gets other dependent languages and identifies languages without a version for that item and publishes these as well.

The languages in the diagram have these dependencies:

- `en-nz` has a direct dependency on `en-au`.
- `en-au` has a direct dependency on `en`.
- `en-nz` has an indirect dependency on `en`.

The Experience Edge Connector takes the following actions when publishing:

- Publishing the `en` version of Item 1

    All dependent languages have versions of Item 1. No language fallback is necessary, and only the `en` version of Item 1 is published.

- Publishing the `en` version of Item 2

    There is a version of Item 2 in the directly dependent language `en-au`. No language fallback is necessary, and only the `en` version of Item 2 published.

- Publishing the `en-au` version of Item 2

    Item 2 does not have a version in all dependent languages. Language fallback is used, and the `en-nz` version is Item 2 as well.

- Publishing the `en` version of Item 3

    Item 3 does not have a version in all dependent languages. Language fallback is used, and the `en-au` and `en-nz` versions are published for Item 3 as well.

## Field-level language fallback

When the Experience Edge Connector publishes the fallback language version of an item, the connector also retrieves the dependent languages and identifies which ones have versions with fallback field values for that item, and then publishes these as well. The example setup in the following diagram shows items with field language fallback:

![How field-level language fallback works.](https://doc.sitecore.com/api/markdown-image/xp/en/developers/hd/23/sitecore-headless-development/images/lang-fallback-2.png)

The languages in the diagram have these dependencies:

- `en-nz` has direct dependency on `en-au`.
- `en-au` has direct dependency on `en`.
- `en-nz` has indirect dependency on `en`.

The Experience Edge Connector takes the following actions when publishing:

- Publishing the `en` version of Item 1

    All dependent languages have versions of Item 1 and fallback fields have their own values in each language. No language fallback is necessary, and only the `en` version of Item 1 is published.

- Publishing the `en` version of Item 2

    There is a version for Item 2 in direct dependent language `en-au` and fallback field has its own value, language fallback is not applied and only Item 2 `en` version is published

- Publishing the `en-au` version of Item 2

    There are versions of Item 2 in all dependent languages and fallback fields have fallback values. Language fallback is used, and the `en-nz` version is published as well.

- Publishing the `en` version of Item 3

    There are versions of Item 3 in all dependent languages and fallback fields have fallback values. Language fallback is used, and the `en-au` and `en-nz` versions are published as well.

## Identifying dependencies between languages

This section explains the process Experience Edge Connector follows to identify the dependent language versions that it must publish.

The process is as follows:

1. The connector prepares the fallback dependency relation between the system languages (`en` <- `en-au` <- `en-nz` in the diagrams).
2. When the connector publishes a version of an item, it prepares a list of dependent languages from the fallback dependency relation, based on the published version.
3. The connector verifies whether item-level language fallback is applicable for the dependent languages. Item-based fallback is available if:
    - The item is [item-fallback enabled](https://doc.sitecore.com/xp/en/developers/104/sitecore-experience-manager/enable-and-set-up-language-fallback.html).
    - The item does not have a version in the dependent language.
4. The connector verifies whether field-level language fallback is applicable for the dependent languages. Field-level fallback is available if:
    - The item has one or more fields with field-level language fallback enabled.
    - The item has a version in the dependent language and the value of the field (or fields) are from the fallback language (the published version).