2 namespace TYPO3\CMS\Core\Localization;
80 public function getParsedData($fileReference, $languageKey, $charset =
'',
$errorMode = 0, $isLocalizationOverride =
false)
84 if (strpos($fileReference,
'EXT:cms') === 0) {
86 'cms/web_info/loallang.xlf' =>
'frontend/Resources/Private/Language/locallang_webinfo.xlf',
87 'cms/locallang_ttc.xlf' =>
'frontend/Resources/Private/Language/locallang_ttc.xlf',
88 'cms/locallang_tca.xlf' =>
'frontend/Resources/Private/Language/locallang_tca.xlf',
89 'cms/layout/locallang_db_new_content_el.xlf' =>
'backend/Resources/Private/Language/locallang_db_new_content_el.xlf',
90 'cms/layout/locallang.xlf' =>
'backend/Resources/Private/Language/locallang_layout.xlf',
91 'cms/layout/locallang_mod.xlf' =>
'backend/Resources/Private/Language/locallang_mod.xlf',
92 'cms/locallang_csh_webinfo.xlf' =>
'frontend/Resources/Private/Language/locallang_csh_webinfo.xlf',
93 'cms/locallang_csh_weblayout.xlf' =>
'frontend/Resources/Private/Language/locallang_csh_weblayout.xlf',
95 $filePath = substr($fileReference, 4);
96 GeneralUtility::deprecationLog(
'There is a reference to "' . $fileReference .
'", which has been moved to "EXT:' . $mapping[$filePath] .
'". This fallback will be removed with CMS 8.');
97 $fileReference =
'EXT:' . $mapping[$filePath];
100 $hash = md5($fileReference . $languageKey . $charset);
104 if (!$this->store->hasData($fileReference,
'default') && $languageKey !==
'default') {
105 $this->getParsedData($fileReference,
'default', $charset, $this->errorMode);
108 if ($this->store->hasData($fileReference, $languageKey)) {
109 return $this->store->getData($fileReference);
113 $data = $this->cacheInstance->get($hash);
114 if ($data !==
false) {
115 $this->store->setData($fileReference, $languageKey, $data);
116 return $this->store->getData($fileReference);
120 $this->store->setConfiguration($fileReference, $languageKey, $charset);
122 $parser = $this->store->getParserInstance($fileReference);
124 $LOCAL_LANG = $parser->getParsedData($this->store->getAbsoluteFileReference($fileReference), $languageKey, $charset);
125 }
catch (Exception\FileNotFoundException $exception) {
127 $this->store->setData($fileReference, $languageKey, array());
128 $LOCAL_LANG = $this->store->getData($fileReference);
132 if (!$isLocalizationOverride && isset(
$GLOBALS[
'TYPO3_CONF_VARS'][
'SYS'][
'locallangXMLOverride'])) {
137 $this->store->setData($fileReference, $languageKey, $LOCAL_LANG[$languageKey]);
140 $this->cacheInstance->set($hash, $this->store->getDataByLanguage($fileReference, $languageKey));
142 return $this->store->getData($fileReference);
159 $overrides = array();
160 $fileReferenceWithoutExtension = $this->store->getFileReferenceWithoutExtension($fileReference);
161 $locallangXMLOverride =
$GLOBALS[
'TYPO3_CONF_VARS'][
'SYS'][
'locallangXMLOverride'];
162 foreach ($this->store->getSupportedExtensions() as $extension) {
163 if (isset($locallangXMLOverride[$languageKey][$fileReferenceWithoutExtension .
'.' . $extension]) && is_array($locallangXMLOverride[$languageKey][$fileReferenceWithoutExtension .
'.' . $extension])) {
164 $overrides = array_merge($overrides, $locallangXMLOverride[$languageKey][$fileReferenceWithoutExtension .
'.' . $extension]);
165 }
elseif (isset($locallangXMLOverride[$fileReferenceWithoutExtension .
'.' . $extension]) && is_array($locallangXMLOverride[$fileReferenceWithoutExtension .
'.' . $extension])) {
166 $overrides = array_merge($overrides, $locallangXMLOverride[$fileReferenceWithoutExtension .
'.' . $extension]);
169 if (!empty($overrides)) {
170 foreach ($overrides as $overrideFile) {