TYPO3 v10 has reached end-of-life as of April 30th 2023 and is no longer being maintained. Use the version switcher on the top left of this page to select documentation for a supported version of TYPO3.

Need more time before upgrading? You can purchase Extended Long Term Support (ELTS) for TYPO3 v10 here: TYPO3 ELTS.

The $TCA_DESCR Array

The global array $TCA_DESCR is reserved to contain CSH labels. CSH labels are loaded as they are needed. Thus the class rendering the form will make an API call to the global language object to have the CSH labels loaded - if any - for the relevant table.

Basically, the $TCA_DESCR array contains references to the registered language files. As it gets used, it is filled with the actual labels. This task is performed by method \TYPO3\CMS\Core\Localization\LanguageService::loadSingleTableDescription().

The content of the $TCA_DESCR array can be reviewed in the SYSTEM > Configuration module:

Content of the $TCA\_DESCR array

List of file references for the CSH labels of the "pages" table

As can be seen, several files can be registered for the same table. This makes it possible to:

  • override existing CSH labels (e.g. for providing more dedicated help)

  • extending existing labels

  • add CSH labels for fields added by the extension

Keys in $TCA_DESCR

Each file is registered with $TCA_DESCR using a key. For a database table, this is simple the table name. For backend modules you can use the following syntax:

_MOD_[main module]_[module name]

For the WEB > Info module, the key is:


The loaded labels will be available in $TCA_DESCR[(key)]['columns'].