Language 

Contains Language resources.

In the folder EXT:my_extension/Resources/Private/Language/ language files are stored in the format .xlf.

Changed in version 14.0

TYPO3 v14 and newer support both XLIFF 1.2 and XLIFF 2.x files. The loader automatically detects which version is used.

This folder contains all language labels supplied by the extension in the default language English.

If the extension provides additional translations into other languages, store them in language files of the same name with a language prefix. For example, the German translation of locallang.xlf must be stored in the same folder as de.locallang.xlf, and the French translation as fr.locallang.xlf. If the translations are stored under a different filename, they will not be found.

Any arbitrary filename ending with .xlf can be used.

Resources/Private/Language/locallang.xlf

locallang.xlf
Scope
extension
Path (Composer)
packages/my_extension/Resources/Private/Language/locallang.xlf
Path (Classic)
typo3conf/ext/my_extension/Resources/Private/Language/locallang.xlf

This file commonly contains translated labels to be used in the frontend.

In the templates of Extbase plugins all labels in the file EXT:my_extension/Resources/Private/Language/locallang.xlf can be accessed without using the complete path:

EXT:my_extension/Resources/Private/Templates/MyTemplate.html
<f:translate key="key1" extensionName="MyExtension"/>
Copied!

From other template contexts the labels can be used by using the complete LLL:EXT path:

EXT:my_extension/Resources/Private/Templates/MyTemplate.html
<f:translate key="LLL:EXT:my_extension/Resources/Private/Language/locallang.xlf:key1" />
Copied!

The documentation for the ViewHelper can be found at Translate ViewHelper <f:translate>.

Language labels to be used in PHP, TypoScript etc. must also be prefixed with the complete path.

Resources/Private/Language/locallang_db.xlf

locallang_db.xlf
Scope
extension
Path (Composer)
packages/my_extension/Resources/Private/Language/locallang_db.xlf
Path (Classic)
typo3conf/ext/my_extension/Resources/Private/Language/locallang_db.xlf

By convention, this file should contain all localized labels used for the TCA labels, descriptions etc.

These labels need to be always accessed by their complete path in the TCA configuration:

EXT:examples/Configuration/TCA/tx_examples_dummy.php
return [
   'ctrl' => [
       'title' => 'LLL:EXT:examples/Resources/Private/Language/locallang_db.xlf:tx_examples_dummy',
       // ...
   ],
   // ...
];
Copied!