Deprecation: #100721 - Label-related methods and arguments 

See forge#100721

Description 

The method \TYPO3\CMS\Core\Localization\LanguageService->getLL() has been marked as deprecated.

Along with the deprecation the method \TYPO3\CMS\Core\Localization\LanguageService->includeLLFile() has been marked as internal, as it is still used in TYPO3 Core for backwards-compatibility internally, but not part of TYPO3's Core API anymore.

With the introduction of Locales, it is also now not recommended anymore to use custom alternative language keys.

For this reason the argument "alternativeLanguageKeys" of the <f:translate> ViewHelper has been deprecated as well, along with the method argument of the same name in \TYPO3\CMS\Extbase\Utility\LocalizationUtility::translate() .

Impact 

Calling the method \TYPO3\CMS\Core\Localization\LanguageService->getLL() will trigger a PHP deprecation warning.

Calling \TYPO3\CMS\Extbase\Utility\LocalizationUtility::translate() with the argument "alternativeLanguageKeys" will also trigger a PHP deprecation warning, which is the underlying deprecation warning when using the argument "alternativeLanguageKeys" of the <f:translate> ViewHelper.

Affected installations 

TYPO3 installations within backend modules using the method getLL() or extensions or templates using the translate methods.

The former usually happens in extensions which have been migrated from older TYPO3 versions with legacy functionality in backend modules along with $GLOBALS['LANG'] as LanguageService object.

Migration 

It is highly recommended to use the full path to a label file along with the sL() method of \TYPO3\CMS\Core\Localization\LanguageService :

Before:

$GLOBALS['LANG']->includeLLfile('EXT:my_extension/Resources/Private/Language/db.xlf');
$label = htmlspecialchars($GLOBALS['LANG']->getLL('my_label'));
Copied!

After:

$label = $GLOBALS['LANG']->sL('LLL:EXT:my_extension/Resources/Private/Language/db.xlf:my_label');
$label = htmlspecialchars($label);
Copied!