---
title: "Feature: #84650 - Introduce fluid data processor for language menus"
manual: "TYPO3 Core Changelog"
version: "main"
permalink: "https://docs.typo3.org/permalink/changelog:feature-84650"
source: "Changelog/9.3/Feature-84650-IntroduceLanguageMenuProcessor.rst"
typo3-version: "9.3"
typo3-major: 9
type: "feature"
issue: 84650
forge: "https://forge.typo3.org/issues/84650"
tags: ["Fluid", "TypoScript", "Frontend"]
rendered: "2026-09-20T18:31:11+00:00"
---

# Feature: #84650 - Introduce fluid data processor for language menus {#feature-84650}

See [forge#84650](https://forge.typo3.org/issues/84650)

## Description {#description}

This feature introduces a new `LanguageMenuProcessor` for Fluid based
language menus based on the languages defined for the current site.

### Options {#options}

-   *\`if\`:* TypoScript if condition
-   *\`languages\`:*

    A list of comma separated language IDs (e.g. 0,1,2) to use for
    the menu creation or `auto` to load from site languages

-   *\`as\`:* The variable to be used within the result

### Example TypoScript configuration {#example-typoscript-configuration}

```typoscript
10 = TYPO3\CMS\Frontend\DataProcessing\LanguageMenuProcessor
10 {
   languages = auto
   as = languageNavigation
}
```

### Example Fluid-Template {#example-fluid-template}

```html
<f:if condition="{languageNavigation}">
   <ul id="language" class="language-menu">
      <f:for each="{languageNavigation}" as="item">
         <li class="{f:if(condition: item.active, then: 'active')}{f:if(condition: item.available, else: ' text-muted')}">
            <f:if condition="{item.available}">
               <f:then>
                  <a href="{item.link}" hreflang="{item.hreflang}" title="{item.navigationTitle}">
                     <span>{item.navigationTitle}</span>
                  </a>
               </f:then>
               <f:else>
                  <span>{item.navigationTitle}</span>
               </f:else>
            </f:if>
         </li>
      </f:for>
   </ul>
</f:if>
```
