# Language Selector

The Language Selector allows users to change the language used within the application when multiple languages are supported.

![](language-selector/ls_preview.png)

:::note
Legacy Language Selector is still supported
:::

## Prerequisites

Before adding a Language Selector, make sure the app includes all the languages it needs to support.

1. Open **App Settings**
2. Add the relevant languages to the application
3. Create [endpoint](../../integrations/pipes2-endpoint-implementation-guide.md) and [feed](../../using-zapp/content/pipes2-feeds.md): `pipesv2://language_selector`

![](language-selector/app_setting.png)

![](language-selector/languages_setting.png)

:::info
In order to change the content that comes from your CMS, adjust your DSP according to this
[article](/integrations/pipes2-endpoint-implementation-guide#implementing-context-keys-for-language-selector)
:::

#### Customizing Language Labels

The Language Selector screen labels (such as the screen title or button texts) can be customized via the **Theme plugin**.

To update these labels:
1. Open the **Theme plugin**
2. Navigate to the localization section
3. Adjust the text as needed

### Option 1: Using the Default Language Selector Feed

1. Create a **General Screen**
2. Assign the feed: `pipesv2://language_selector`
3. Assign a cell style
4. Save and publish

### Option 2: Using a Custom Feed 

Custom feeds can be used when you want to display images or fully control the structure of the Language Selector.

```json
{
  "entry": [
    {
      "id": "b86703d5-8a66-4a65-a8f0-87143859c989",
      "title": "EN",
      "summary": "English",
      "extensions": {
        "tag": "en"
      },
      "type": {
        "value": "action"
      }
    },
    {
      "id": "8d9f3542-50b7-4566-be7d-422b40a7db6d",
      "title": "FR",
      "summary": "French",
      "extensions": {
        "tag": "fr"
      },
      "type": {
        "value": "action"
      }
    }
  ],
  "extensions": {
    "role": "language_selector"
  },
  "type": {
    "value": "feed"
  }
}
````

When using a manual feed, the `action` type must be selected from the drop-down list.
This type does not need to be mapped in the CMS like other type values.

![](./language-selector/action_selection.png)
