81 static public function translate($key, $extensionName, $arguments = NULL) {
83 if (\
TYPO3\CMS\Core\Utility\GeneralUtility::isFirstPartOfStr($key,
'LLL:')) {
84 $value = self::translateFileReference($key);
86 self::initializeLocalization($extensionName);
88 if (!empty(
self::$LOCAL_LANG[$extensionName][self::$languageKey][$key][0][
'target'])
89 || isset(self::$LOCAL_LANG_UNSET[$extensionName][self::$languageKey][$key])
92 $value =
self::$LOCAL_LANG[$extensionName][self::$languageKey][$key][0][
'target'];
93 if (!empty(self::$LOCAL_LANG_charset[$extensionName][self::$languageKey][$key])) {
94 $value = self::convertCharset($value, self::$LOCAL_LANG_charset[$extensionName][self::$languageKey][$key]);
96 } elseif (count(self::$alternativeLanguageKeys)) {
97 $languages = array_reverse(self::$alternativeLanguageKeys);
98 foreach ($languages as $language) {
100 || isset(self::$LOCAL_LANG_UNSET[$extensionName][$language][$key])
104 if (!empty(self::$LOCAL_LANG_charset[$extensionName][$language][$key])) {
105 $value = self::convertCharset($value, self::$LOCAL_LANG_charset[$extensionName][$language][$key]);
111 if ($value === NULL && (!empty(
self::$LOCAL_LANG[$extensionName][
'default'][$key][0][
'target'])
112 || isset(self::$LOCAL_LANG_UNSET[$extensionName][
'default'][$key]))
119 if (is_array($arguments) && $value !== NULL) {
120 return vsprintf($value, $arguments);
136 $value =
$GLOBALS[
'TSFE']->sL($key);
137 return $value !== FALSE ? $value : NULL;
138 } elseif (is_object(
$GLOBALS[
'LANG'])) {
139 $value =
$GLOBALS[
'LANG']->sL($key);
140 return $value !==
'' ? $value : NULL;
158 self::setLanguageKeys();
160 self::$LOCAL_LANG[$extensionName] = \TYPO3\CMS\Core\Utility\GeneralUtility::readLLfile($locallangPathAndFilename, self::$languageKey, $renderCharset);
161 foreach (self::$alternativeLanguageKeys as $language) {
162 $tempLL = \TYPO3\CMS\Core\Utility\GeneralUtility::readLLfile($locallangPathAndFilename, $language, $renderCharset);
163 if (self::$languageKey !==
'default' && isset($tempLL[$language])) {
167 self::loadTypoScriptLabels($extensionName);
176 static protected function setLanguageKeys() {
177 self::$languageKey =
'default';
178 self::$alternativeLanguageKeys = array();
180 if (isset(
$GLOBALS[
'TSFE']->config[
'config'][
'language'])) {
181 self::$languageKey =
$GLOBALS[
'TSFE']->config[
'config'][
'language'];
182 if (isset(
$GLOBALS[
'TSFE']->config[
'config'][
'language_alt'])) {
183 self::$alternativeLanguageKeys[] =
$GLOBALS[
'TSFE']->config[
'config'][
'language_alt'];
187 if (in_array(self::$languageKey,
$locales->getLocales())) {
188 foreach (
$locales->getLocaleDependencies(self::$languageKey) as $language) {
189 self::$alternativeLanguageKeys[] = $language;
194 } elseif (strlen(
$GLOBALS[
'BE_USER']->uc[
'lang']) > 0) {
195 self::$languageKey =
$GLOBALS[
'BE_USER']->uc[
'lang'];
209 $frameworkConfiguration =
$configurationManager->getConfiguration(\
TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface::CONFIGURATION_TYPE_FRAMEWORK, $extensionName);
210 if (!is_array($frameworkConfiguration[
'_LOCAL_LANG'])) {
213 self::$LOCAL_LANG_UNSET[$extensionName] = array();
214 foreach ($frameworkConfiguration[
'_LOCAL_LANG'] as
$languageKey => $labels) {
218 foreach ($labels as $labelKey => $labelValue) {
219 if (is_string($labelValue)) {
221 if ($labelValue ===
'') {
222 self::$LOCAL_LANG_UNSET[$extensionName][
$languageKey][$labelKey] =
'';
229 } elseif (is_array($labelValue)) {
230 $labelValue = self::flattenTypoScriptLabelArray($labelValue, $labelKey);
231 foreach ($labelValue as $key => $value) {
234 self::$LOCAL_LANG_UNSET[$extensionName][
$languageKey][$key] =
'';
255 foreach ($labelValues as $key => $labelValue) {
256 if (!empty($parentKey)) {
257 $key = $parentKey .
'.' . $key;
259 if (is_array($labelValue)) {
260 $labelValue = self::flattenTypoScriptLabelArray($labelValue, $key);
279 return $GLOBALS[
'TSFE']->csConv($value, $charset);
281 $convertedValue =
$GLOBALS[
'LANG']->csConvObj->conv($value,
$GLOBALS[
'LANG']->csConvObj->parse_charset($charset),
$GLOBALS[
'LANG']->charSet, 1);
282 return $convertedValue !== NULL ? $convertedValue : $value;
292 if (!is_null(static::$configurationManager)) {
293 return static::$configurationManager;
296 $configurationManager = $objectManager->get(
'TYPO3\\CMS\\Extbase\\Configuration\\ConfigurationManagerInterface');
static convertCharset($value, $charset)
static $configurationManager
static getConfigurationManager()
static camelCaseToLowerCaseUnderscored($string)
static makeInstance($className)
static $alternativeLanguageKeys
static translateFileReference($key)
static $LOCAL_LANG_charset
if($list_of_literals) if(!empty($literals)) if(!empty($literals)) $result
Analyse literals to prepend the N char to them if their contents aren't numeric.
static initializeLocalization($extensionName)
static flattenTypoScriptLabelArray(array $labelValues, $parentKey='')
static translate($key, $extensionName, $arguments=NULL)
if(!defined('TYPO3_MODE')) $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_userauth.php']['logoff_pre_processing'][]
static loadTypoScriptLabels($extensionName)