---
title: "Language fields"
manual: "TCA Reference"
version: "13.4"
permalink: "https://docs.typo3.org/permalink/t3tca:fields-language@13.4"
source: "BestPractises/LanguageFields.rst"
modified: "2026-09-15T18:49:03+00:00"
---

# Language fields

> [!NOTE]
> **Changed in version 13.3**
>
> The column definitions for these settings are
> [auto-created](https://docs.typo3.org/permalink/t3tca:ctrl-auto-created-columns@13.4).
> See also [](https://docs.typo3.org/permalink/t3tca:ctrl-reference-languagefield-migration@13.4).

See also the [Frontend Localization Guide](https://docs.typo3.org/m/typo3/guide-frontendlocalization/13.4/en-us/CoreSupport/Tca/Index.html#core-support-tca).

> [!NOTE]
> It is possible to change the names of the following fields, however this is
> strongly discouraged as it breaks convention and may lead to compatibility
> issues with third party extensions.

All columns mentioned below get [auto-created](https://docs.typo3.org/permalink/t3tca:ctrl-auto-created-columns@13.4)
in the TCA and added to the database automatically. It is
not recommended to define them in the TCA overrides or `ext_tables.sql`. Doing so
with incompatible settings can lead to problems later on.

## Language fields in detail

-   **`sys_language_uid`**

    This field gets defined in
    [ctrl->languageField](https://docs.typo3.org/permalink/t3tca:ctrl-reference-languagefield@13.4). If this field is
    defined a record in this table can be translated into another language.

    ![A typical sys_language_uid field](../Images/AutomaticScreenshots/SysLanguageUid.png)

-   **`l10n_parent`**

    This field gets defined in
    [ctrl->transOrigPointerField](https://docs.typo3.org/permalink/t3tca:ctrl-reference-transorigpointerfield@13.4).

    If this value is found being set together with
    [languageField](https://docs.typo3.org/permalink/t3tca:ctrl-reference-languagefield@13.4) then
    FormEngine will show the default translation value under the fields in
    the main form.

    ![Header field showing values from two other languages](../Images/ManualScreenshots/OtherLanguageContent.png)

    > [!NOTE]
    > Sometimes `l18n_parent` is used for this field in Core tables. This
    > is for historic reasons.

-   **`l10n_source`**

    This field gets defined in
    [ctrl->translationSource](https://docs.typo3.org/permalink/t3tca:ctrl-reference-translationsource@13.4).

    This field contains the uid of the record the translation was created from.
    For example if your default language is English and you already translated a
    record into German you can base the Suisse-German translation on the German
    record. In this case `l10n_parent` would contain the uid of the English
    record while `l10n_source` contains the uid of the German record.

-   **`l10n_diffsource`**

    This field gets defined in
    [ctrl->transOrigPointerField](https://docs.typo3.org/permalink/t3tca:ctrl-reference-transorigpointerfield@13.4).

    This
    information is used later on to compare the current values of the default
    record with those stored in this field. If they differ, there will
    be a display in the form of the difference visually:

    > [!NOTE]
    > Sometimes `l18n_diffsource` is used for this field in Core tables. This
    > has historic reasons.

## Example: Enable table for localization and translation:

**EXT:my_extension/Configuration/TCA/tx_myextension_domain_model_something.php**

```php
<?php

return [
  'ctrl' => [
    'transOrigPointerField' => 'l10n_parent',
    'transOrigDiffSourceField' => 'l10n_diffsource',
    'languageField' => 'sys_language_uid',
    'translationSource' => 'l10n_source',
    // ...
  ],
  'palettes' => [
    'language' => [
      'showitem' => '
                sys_language_uid,l10n_parent,
            ',
    ],
  ],
  'types' => [
    0 => [
      'showitem' => '
                --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general,
                    [...],
                --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:language,
                    --palette--;;language,
            ',
    ],
  ],
];

```
