Feature: #99694 - Unified Locale handling for translation files (XLF)¶
TYPO3 now internally uses a "locale" format following the IETF RFC 5646 language tag standard.
A locale supported by TYPO3 consists of the following parts (tags and subtags):
ISO 639-1 / ISO 639-2 compatible language key in lowercase (such as "fr" French, or "de" for German)
optionally the ISO 15924 compatible language script system (4 letter, such as "Hans" as in "zh_Hans")
optionally the region / country code according to ISO 3166-1 standard in upper camelcase such as "AT" for Austria.
Examples for a locale string are:
"en" for English
"pt" for Portuguese
"da-DK" for Danish as used in Denmark
"de-CH" for German as used in Switzerland
"zh-Hans-CN" for Chinese with the simplified script as spoken in China (mainland)
A new PHP object
Locale automatically separates each tag and subtag into
\TYPO3\CMS\Core\Localization\Locale object can now be used to instantiate a new
\TYPO3\CMS\Core\Localization\LanguageService object for translating labels.
Previously, TYPO3 used the
default language key instead of the locale
identify the English language. Both are supported, but it is encouraged to use
en-GB with the region subtag to identify the chosen language more
Example for using the
Locale class for creating a
object for translations:
$languageService = $languageServiceFactory->create(new Locale('de-AT')); $myTranslatedString = $languageService->sL( 'LLL:EXT:my_extension/Resources/Private/Language/myfile.xlf:my-label' );
Using this service is highly recommended, as the wrappers
$GLOBALS['TSFE']->sL() will be
deprecated in the future.