[!!!][TASK] Remove deprecated LanguageService / label functionality 74/52474/6
authorBenni Mack <benni@typo3.org>
Tue, 18 Apr 2017 10:56:22 +0000 (12:56 +0200)
committerBenni Mack <benni@typo3.org>
Tue, 18 Apr 2017 21:51:42 +0000 (23:51 +0200)
Resolves: #80708
Releases: master
Change-Id: I9e3d67090b498c2087de8f70d6f44a21069704eb
Reviewed-on: https://review.typo3.org/52474
Tested-by: TYPO3com <no-reply@typo3.com>
Reviewed-by: Wouter Wolters <typo3@wouterwolters.nl>
Tested-by: Wouter Wolters <typo3@wouterwolters.nl>
Reviewed-by: Benni Mack <benni@typo3.org>
Tested-by: Benni Mack <benni@typo3.org>
16 files changed:
typo3/sysext/backend/Classes/Controller/AbstractFormEngineAjaxController.php
typo3/sysext/backend/Classes/Module/ModuleLoader.php
typo3/sysext/core/Classes/Localization/LanguageStore.php
typo3/sysext/core/Classes/Localization/LocalizationFactory.php
typo3/sysext/core/Classes/Localization/Parser/AbstractXmlParser.php
typo3/sysext/core/Classes/Localization/Parser/LocalizationParserInterface.php
typo3/sysext/core/Classes/Localization/Parser/LocallangXmlParser.php
typo3/sysext/core/Classes/Page/PageRenderer.php
typo3/sysext/core/Documentation/Changelog/master/Breaking-80700-DeprecatedFunctionalityRemoved.rst
typo3/sysext/core/Tests/Unit/Page/PageRendererTest.php
typo3/sysext/extbase/Classes/Utility/LocalizationUtility.php
typo3/sysext/fluid/Classes/ViewHelpers/TranslateViewHelper.php
typo3/sysext/form/Classes/Service/TranslationService.php
typo3/sysext/frontend/Classes/Controller/TypoScriptFrontendController.php
typo3/sysext/frontend/Classes/Plugin/AbstractPlugin.php
typo3/sysext/lang/Classes/LanguageService.php

index 8135d76..4801fed 100644 (file)
@@ -101,12 +101,7 @@ abstract class AbstractFormEngineAjaxController
         /** @var $languageFactory LocalizationFactory */
         $languageFactory = GeneralUtility::makeInstance(LocalizationFactory::class);
         $language = $GLOBALS['LANG']->lang;
-        $localizationArray = $languageFactory->getParsedData(
-            $file,
-            $language,
-            'utf-8',
-            1
-        );
+        $localizationArray = $languageFactory->getParsedData($file, $language);
         if (is_array($localizationArray) && !empty($localizationArray)) {
             if (!empty($localizationArray[$language])) {
                 $xlfLabelArray = $localizationArray['default'];
index e03b01f..f2671b2 100644 (file)
@@ -385,18 +385,6 @@ class ModuleLoader
                 $language = 'default';
             }
 
-            if (empty($labels)) {
-                if (isset($this->getLanguageService()->moduleLabels['labels'][$moduleName . '_tablabel'])) {
-                    $labels[$language]['labels']['tablabel'] = $this->getLanguageService()->moduleLabels['labels'][$moduleName . '_tablabel'];
-                }
-                if (isset($this->getLanguageService()->moduleLabels['labels'][$moduleName . '_tabdescr'])) {
-                    $labels[$language]['labels']['tabdescr'] = $this->getLanguageService()->moduleLabels['labels'][$moduleName . '_tabdescr'];
-                }
-                if (isset($this->getLanguageService()->moduleLabels['tabs'][$moduleName . '_tab'])) {
-                    $labels[$language]['tabs']['tab'] = $this->getLanguageService()->moduleLabels['tabs'][$moduleName . '_tab'];
-                }
-            }
-
             if (isset($labels[$language]['ll_ref'])) {
                 $this->addLabelsForModule($moduleName, $labels[$language]['ll_ref']);
             } elseif (isset($labels['default']['ll_ref'])) {
index 97abc47..728e4f1 100644 (file)
@@ -139,19 +139,17 @@ class LanguageStore implements \TYPO3\CMS\Core\SingletonInterface
      *
      * @param string $fileReference File reference
      * @param string $languageKey Valid language key
-     * @param string $charset Rendering charset
      * @return \TYPO3\CMS\Core\Localization\LanguageStore This instance to allow method chaining
      * @throws \TYPO3\CMS\Core\Localization\Exception\InvalidParserException
      * @throws \TYPO3\CMS\Core\Localization\Exception\FileNotFoundException
      */
-    public function setConfiguration($fileReference, $languageKey, $charset)
+    public function setConfiguration($fileReference, $languageKey)
     {
         $this->configuration[$fileReference] = [
             'fileReference' => $fileReference,
             'fileExtension' => false,
             'parserClass' => null,
-            'languageKey' => $languageKey,
-            'charset' => $charset
+            'languageKey' => $languageKey
         ];
         $fileWithoutExtension = GeneralUtility::getFileAbsFileName($this->getFileReferenceWithoutExtension($fileReference));
         foreach ($this->supportedExtensions as $extension) {
index 46c365a..a6263d5 100644 (file)
@@ -29,11 +29,6 @@ class LocalizationFactory implements \TYPO3\CMS\Core\SingletonInterface
     protected $cacheInstance;
 
     /**
-     * @var int
-     */
-    protected $errorMode;
-
-    /**
      * @var \TYPO3\CMS\Core\Localization\LanguageStore
      */
     public $store;
@@ -60,58 +55,18 @@ class LocalizationFactory implements \TYPO3\CMS\Core\SingletonInterface
      *
      * @param string $fileReference Input is a file-reference (see \TYPO3\CMS\Core\Utility\GeneralUtility::getFileAbsFileName). That file is expected to be a supported locallang file format
      * @param string $languageKey Language key
-     * @param string $charset Character set (option); if not set, determined by the language key
-     * @param int $errorMode Error mode (when file could not be found): 0 - syslog entry, 1 - do nothing, 2 - throw an exception$
+     * @param string $charset Character set (option); not in use anymore
+     * @param int $errorMode Error mode (when file could not be found): not in use anymore
      * @param bool $isLocalizationOverride TRUE if $fileReference is a localization override
      * @return array|bool
      */
-    public function getParsedData($fileReference, $languageKey, $charset = '', $errorMode = 0, $isLocalizationOverride = false)
+    public function getParsedData($fileReference, $languageKey, $charset = '', $errorMode = null, $isLocalizationOverride = false)
     {
-        // @deprecated since TYPO3 v8, will be removed with TYPO3 v9
-        // this is a fallback to convert references to old 'lang' locallang files to the new location
-        if (strpos($fileReference, 'EXT:lang/locallang_') === 0) {
-            $mapping = [
-                'lang/locallang_alt_doc.xlf' => 'lang/Resources/Private/Language/locallang_alt_doc.xlf',
-                'lang/locallang_alt_intro.xlf' => 'lang/Resources/Private/Language/locallang_alt_intro.xlf',
-                'lang/locallang_browse_links.xlf' => 'lang/Resources/Private/Language/locallang_browse_links.xlf',
-                'lang/locallang_common.xlf' => 'lang/Resources/Private/Language/locallang_common.xlf',
-                'lang/locallang_core.xlf' => 'lang/Resources/Private/Language/locallang_core.xlf',
-                'lang/locallang_general.xlf' => 'lang/Resources/Private/Language/locallang_general.xlf',
-                'lang/locallang_login.xlf' => 'lang/Resources/Private/Language/locallang_login.xlf',
-                'lang/locallang_misc.xlf' => 'lang/Resources/Private/Language/locallang_misc.xlf',
-                'lang/locallang_mod_admintools.xlf' => 'lang/Resources/Private/Language/locallang_mod_admintools.xlf',
-                'lang/locallang_mod_file_list.xlf' => 'lang/Resources/Private/Language/locallang_mod_file_list.xlf',
-                'lang/locallang_mod_file.xlf' => 'lang/Resources/Private/Language/locallang_mod_file.xlf',
-                'lang/locallang_mod_help_about.xlf' => 'about/Resources/Private/Language/Modules/about.xlf',
-                'lang/locallang_mod_help_cshmanual.xlf' => 'lang/Resources/Private/Language/locallang_mod_help_cshmanual.xlf',
-                'lang/locallang_mod_help.xlf' => 'lang/Resources/Private/Language/locallang_mod_help.xlf',
-                'lang/locallang_mod_system.xlf' => 'lang/Resources/Private/Language/locallang_mod_system.xlf',
-                'lang/locallang_mod_usertools.xlf' => 'lang/Resources/Private/Language/locallang_mod_usertools.xlf',
-                'lang/locallang_mod_user_ws.xlf' => 'lang/Resources/Private/Language/locallang_mod_user_ws.xlf',
-                'lang/locallang_mod_web_func.xlf' => 'lang/Resources/Private/Language/locallang_mod_web_func.xlf',
-                'lang/locallang_mod_web_info.xlf' => 'lang/Resources/Private/Language/locallang_mod_web_info.xlf',
-                'lang/locallang_mod_web_list.xlf' => 'lang/Resources/Private/Language/locallang_mod_web_list.xlf',
-                'lang/locallang_mod_web.xlf' => 'lang/Resources/Private/Language/locallang_mod_web.xlf',
-                'lang/locallang_show_rechis.xlf' => 'lang/Resources/Private/Language/locallang_show_rechis.xlf',
-                'lang/locallang_t3lib_fullsearch.xlf' => 'lang/Resources/Private/Language/locallang_t3lib_fullsearch.xlf',
-                'lang/locallang_tca.xlf' => 'lang/Resources/Private/Language/locallang_tca.xlf',
-                'lang/locallang_tcemain.xlf' => 'lang/Resources/Private/Language/locallang_tcemain.xlf',
-                'lang/locallang_tsfe.xlf' => 'lang/Resources/Private/Language/locallang_tsfe.xlf',
-                'lang/locallang_tsparser.xlf' => 'lang/Resources/Private/Language/locallang_tsparser.xlf',
-                'lang/locallang_view_help.xlf' => 'lang/Resources/Private/Language/locallang_view_help.xlf',
-                'lang/locallang_wizards.xlf' => 'lang/Resources/Private/Language/locallang_wizards.xlf',
-            ];
-            $filePath = substr($fileReference, 4);
-            GeneralUtility::deprecationLog('There is a reference to "' . $fileReference . '", which has been moved to "EXT:' . $mapping[$filePath] . '". This fallback will be removed with TYPO3 v9.');
-            $fileReference = 'EXT:' . $mapping[$filePath];
-        }
-
-        $hash = md5($fileReference . $languageKey . $charset);
-        $this->errorMode = $errorMode;
+        $hash = md5($fileReference . $languageKey);
 
         // Check if the default language is processed before processing other language
         if (!$this->store->hasData($fileReference, 'default') && $languageKey !== 'default') {
-            $this->getParsedData($fileReference, 'default', $charset, $this->errorMode);
+            $this->getParsedData($fileReference, 'default');
         }
         // If the content is parsed (local cache), use it
         if ($this->store->hasData($fileReference, $languageKey)) {
@@ -126,7 +81,7 @@ class LocalizationFactory implements \TYPO3\CMS\Core\SingletonInterface
         }
 
         try {
-            $this->store->setConfiguration($fileReference, $languageKey, $charset);
+            $this->store->setConfiguration($fileReference, $languageKey);
             /** @var $parser \TYPO3\CMS\Core\Localization\Parser\LocalizationParserInterface */
             $parser = $this->store->getParserInstance($fileReference);
             // Get parsed data
@@ -139,7 +94,7 @@ class LocalizationFactory implements \TYPO3\CMS\Core\SingletonInterface
 
         // Override localization
         if (!$isLocalizationOverride && isset($GLOBALS['TYPO3_CONF_VARS']['SYS']['locallangXMLOverride'])) {
-            $this->localizationOverride($fileReference, $languageKey, $charset, $errorMode, $LOCAL_LANG);
+            $this->localizationOverride($fileReference, $languageKey, $LOCAL_LANG);
         }
 
         // Save parsed data in cache
@@ -158,11 +113,9 @@ class LocalizationFactory implements \TYPO3\CMS\Core\SingletonInterface
      *
      * @param string $fileReference
      * @param string $languageKey
-     * @param string $charset
-     * @param int $errorMode
      * @param array $LOCAL_LANG
      */
-    protected function localizationOverride($fileReference, $languageKey, $charset, $errorMode, array &$LOCAL_LANG)
+    protected function localizationOverride($fileReference, $languageKey, array &$LOCAL_LANG)
     {
         $overrides = [];
         $fileReferenceWithoutExtension = $this->store->getFileReferenceWithoutExtension($fileReference);
@@ -177,7 +130,7 @@ class LocalizationFactory implements \TYPO3\CMS\Core\SingletonInterface
         if (!empty($overrides)) {
             foreach ($overrides as $overrideFile) {
                 $languageOverrideFileName = GeneralUtility::getFileAbsFileName($overrideFile);
-                ArrayUtility::mergeRecursiveWithOverrule($LOCAL_LANG, $this->getParsedData($languageOverrideFileName, $languageKey, $charset, $errorMode, true));
+                ArrayUtility::mergeRecursiveWithOverrule($LOCAL_LANG, $this->getParsedData($languageOverrideFileName, $languageKey, null, null, true));
             }
         }
     }
index 4dba8e2..88cdd45 100644 (file)
@@ -38,11 +38,10 @@ abstract class AbstractXmlParser implements LocalizationParserInterface
      *
      * @param string $sourcePath Source file path
      * @param string $languageKey Language key
-     * @param string $charset File charset, not in use anymore and deprecated since TYPO3 v8, will be removed in TYPO3 v9 as UTF-8 is expected for all language files
      * @return array
      * @throws \TYPO3\CMS\Core\Localization\Exception\FileNotFoundException
      */
-    public function getParsedData($sourcePath, $languageKey, $charset = '')
+    public function getParsedData($sourcePath, $languageKey)
     {
         $this->sourcePath = $sourcePath;
         $this->languageKey = $languageKey;
index 91bc3de..6e4e93c 100644 (file)
@@ -24,8 +24,7 @@ interface LocalizationParserInterface
      *
      * @param string $sourcePath Source file path
      * @param string $languageKey Language key
-     * @param string $charset Charset, not in use anymore since TYPO3 v8, will be removed in TYPO3 v9 as UTF-8 is expected for all language files
      * @return array
      */
-    public function getParsedData($sourcePath, $languageKey, $charset = '');
+    public function getParsedData($sourcePath, $languageKey);
 }
index 3cf0508..1d8dd52 100644 (file)
@@ -36,10 +36,9 @@ class LocallangXmlParser extends AbstractXmlParser
      *
      * @param string $sourcePath Source file path
      * @param string $languageKey Language key
-     * @param string $charset File charset, not in use anymore and deprecated since TYPO3 v8, will be removed in TYPO3 v9 as UTF-8 is expected for all language files
      * @return array
      */
-    public function getParsedData($sourcePath, $languageKey, $charset = '')
+    public function getParsedData($sourcePath, $languageKey)
     {
         $this->sourcePath = $sourcePath;
         $this->languageKey = $languageKey;
index 194bbff..5660b88 100644 (file)
@@ -1656,17 +1656,15 @@ class PageRenderer implements \TYPO3\CMS\Core\SingletonInterface
      * @param string $fileRef Input is a file-reference (see GeneralUtility::getFileAbsFileName). That file is expected to be a 'locallang.xlf' file containing a valid XML TYPO3 language structure.
      * @param string $selectionPrefix Prefix to select the correct labels (default: '')
      * @param string $stripFromSelectionName String to be removed from the label names in the output. (default: '')
-     * @param int $errorMode Error mode (when file could not be found): 0 - syslog entry, 1 - do nothing, 2 - throw an exception
      */
-    public function addInlineLanguageLabelFile($fileRef, $selectionPrefix = '', $stripFromSelectionName = '', $errorMode = 0)
+    public function addInlineLanguageLabelFile($fileRef, $selectionPrefix = '', $stripFromSelectionName = '')
     {
         $index = md5($fileRef . $selectionPrefix . $stripFromSelectionName);
         if ($fileRef && !isset($this->inlineLanguageLabelFiles[$index])) {
             $this->inlineLanguageLabelFiles[$index] = [
                 'fileRef' => $fileRef,
                 'selectionPrefix' => $selectionPrefix,
-                'stripFromSelectionName' => $stripFromSelectionName,
-                'errorMode' => $errorMode
+                'stripFromSelectionName' => $stripFromSelectionName
             ];
         }
     }
@@ -2086,7 +2084,7 @@ class PageRenderer implements \TYPO3\CMS\Core\SingletonInterface
     {
         if (!empty($this->inlineLanguageLabelFiles)) {
             foreach ($this->inlineLanguageLabelFiles as $languageLabelFile) {
-                $this->includeLanguageFileForInline($languageLabelFile['fileRef'], $languageLabelFile['selectionPrefix'], $languageLabelFile['stripFromSelectionName'], $languageLabelFile['errorMode']);
+                $this->includeLanguageFileForInline($languageLabelFile['fileRef'], $languageLabelFile['selectionPrefix'], $languageLabelFile['stripFromSelectionName']);
             }
         }
         $this->inlineLanguageLabelFiles = [];
@@ -2389,16 +2387,15 @@ class PageRenderer implements \TYPO3\CMS\Core\SingletonInterface
      * @param string $fileRef
      * @param string $selectionPrefix
      * @param string $stripFromSelectionName
-     * @param int $errorMode
      * @throws \RuntimeException
      */
-    protected function includeLanguageFileForInline($fileRef, $selectionPrefix = '', $stripFromSelectionName = '', $errorMode = 0)
+    protected function includeLanguageFileForInline($fileRef, $selectionPrefix = '', $stripFromSelectionName = '')
     {
         if (!isset($this->lang) || !isset($this->charSet)) {
             throw new \RuntimeException('Language and character encoding are not set.', 1284906026);
         }
         $labelsFromFile = [];
-        $allLabels = $this->readLLfile($fileRef, $errorMode);
+        $allLabels = $this->readLLfile($fileRef);
         if ($allLabels !== false) {
             // Merge language specific translations:
             if ($this->lang !== 'default' && isset($allLabels[$this->lang])) {
@@ -2423,10 +2420,9 @@ class PageRenderer implements \TYPO3\CMS\Core\SingletonInterface
      * Reads a locallang file.
      *
      * @param string $fileRef Reference to a relative filename to include.
-     * @param int $errorMode Error mode (when file could not be found): 0 - syslog entry, 1 - do nothing, 2 - throw an exception
      * @return array Returns the $LOCAL_LANG array found in the file. If no array found, returns empty array.
      */
-    protected function readLLfile($fileRef, $errorMode = 0)
+    protected function readLLfile($fileRef)
     {
         /** @var $languageFactory LocalizationFactory */
         $languageFactory = GeneralUtility::makeInstance(LocalizationFactory::class);
@@ -2443,7 +2439,7 @@ class PageRenderer implements \TYPO3\CMS\Core\SingletonInterface
 
         $localLanguage = [];
         foreach ($languages as $language) {
-            $tempLL = $languageFactory->getParsedData($fileRef, $language, $this->charSet, $errorMode);
+            $tempLL = $languageFactory->getParsedData($fileRef, $language);
 
             $localLanguage['default'] = $tempLL['default'];
             if (!isset($localLanguage[$this->lang])) {
index 8ca4f32..2598768 100644 (file)
@@ -40,12 +40,32 @@ The following PHP class methods that have been previously deprecated for v8 have
 * TYPO3\CMS\Core\Utility\GeneralUtility::strtolower()
 * TYPO3\CMS\Core\Utility\GeneralUtility::strtoupper()
 * TYPO3\CMS\Core\Utility\GeneralUtility::xmlGetHeaderAttribs()
+* TYPO3\CMS\Lang\LanguageService->addModuleLabels()
+* TYPO3\CMS\Lang\LanguageService->getParserFactory()
+* TYPO3\CMS\Lang\LanguageService->makeEntities()
+* TYPO3\CMS\Lang\LanguageService->overrideLL()
 
 The following methods changed signature according to previous deprecations in v8:
+* TYPO3\CMS\Core\Localization\LanguageStore->setConfiguration() - Third argument dropped
+* TYPO3\CMS\Core\Localization\LocalizationFactory->getParsedData() - Third and fourth argument unused
+* TYPO3\CMS\Core\Localization\Parser\AbstractXmlParser->getParsedData() - Third argument dropped
+* TYPO3\CMS\Core\Localization\Parser\LocalizationParserInterface->getParsedData() - Third argument dropped
+* TYPO3\CMS\Core\Localization\Parser\LocallangXmlParser->getParsedData() - Third argument dropped
+* TYPO3\CMS\Core\Page\PageRenderer->addInlineLanguageLabelFile() - Fourth argument dropped
+* TYPO3\CMS\Core\Page\PageRenderer->includeLanguageFileForInline() - Fourth argument dropped
 * TYPO3\CMS\Core\Utility\GeneralUtility::callUserFunction() - Persistent or file prefix in first argument removed
 * TYPO3\CMS\Core\Utility\GeneralUtility::getFileAbsFileName() - Second and thrird argument dropped
 * TYPO3\CMS\Core\Utility\GeneralUtility::getUserObj() - File reference prefix in first argument removed
 * TYPO3\CMS\Core\Utility\GeneralUtility::wrapJS() - Second argument dropped
+* TYPO3\CMS\Lang\LanguageService->getLL() - Second argument dropped
+* TYPO3\CMS\Lang\LanguageService->getLLL() - Third argument dropped
+* TYPO3\CMS\Lang\LanguageService->getsL() - Second argument dropped
+
+The following class properties have been dropped:
+* TYPO3\CMS\Lang\LanguageService->charSet
+* TYPO3\CMS\Lang\LanguageService->csConvObj
+* TYPO3\CMS\Lang\LanguageService->moduleLabels
+* TYPO3\CMS\Lang\LanguageService->parserFactory
 
 The following configuration options are not evaluated anymore:
 * $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['GLOBAL']['cliKeys']
index 77879f4..5bbe9ab 100644 (file)
@@ -93,16 +93,14 @@ class PageRendererTest extends \TYPO3\TestingFramework\Core\Unit\UnitTestCase
         $fileReference = $this->getUniqueId('file_');
         $selectionPrefix = $this->getUniqueId('prefix_');
         $stripFromSelectionName = $this->getUniqueId('strip_');
-        $errorMode = 0;
 
         $expectedInlineLanguageLabelFile = [
             'fileRef' => $fileReference,
             'selectionPrefix' => $selectionPrefix,
-            'stripFromSelectionName' => $stripFromSelectionName,
-            'errorMode' => $errorMode
+            'stripFromSelectionName' => $stripFromSelectionName
         ];
 
-        $subject->addInlineLanguageLabelFile($fileReference, $selectionPrefix, $stripFromSelectionName, $errorMode);
+        $subject->addInlineLanguageLabelFile($fileReference, $selectionPrefix, $stripFromSelectionName);
         $actualResult = $subject->getInlineLanguageLabelFiles();
 
         $this->assertSame($expectedInlineLanguageLabelFile, array_pop($actualResult));
@@ -118,26 +116,22 @@ class PageRendererTest extends \TYPO3\TestingFramework\Core\Unit\UnitTestCase
         $fileReference1 = $this->getUniqueId('file1_');
         $selectionPrefix1 = $this->getUniqueId('prefix1_');
         $stripFromSelectionName1 = $this->getUniqueId('strip1_');
-        $errorMode1 = 0;
         $expectedInlineLanguageLabelFile1 = [
             'fileRef' => $fileReference1,
             'selectionPrefix' => $selectionPrefix1,
-            'stripFromSelectionName' => $stripFromSelectionName1,
-            'errorMode' => $errorMode1
+            'stripFromSelectionName' => $stripFromSelectionName1
         ];
         $fileReference2 = $this->getUniqueId('file2_');
         $selectionPrefix2 = $this->getUniqueId('prefix2_');
         $stripFromSelectionName2 = $this->getUniqueId('strip2_');
-        $errorMode2 = 0;
         $expectedInlineLanguageLabelFile2 = [
             'fileRef' => $fileReference2,
             'selectionPrefix' => $selectionPrefix2,
-            'stripFromSelectionName' => $stripFromSelectionName2,
-            'errorMode' => $errorMode2
+            'stripFromSelectionName' => $stripFromSelectionName2
         ];
 
-        $subject->addInlineLanguageLabelFile($fileReference1, $selectionPrefix1, $stripFromSelectionName1, $errorMode1);
-        $subject->addInlineLanguageLabelFile($fileReference2, $selectionPrefix2, $stripFromSelectionName2, $errorMode2);
+        $subject->addInlineLanguageLabelFile($fileReference1, $selectionPrefix1, $stripFromSelectionName1);
+        $subject->addInlineLanguageLabelFile($fileReference2, $selectionPrefix2, $stripFromSelectionName2);
         $actualResult = $subject->getInlineLanguageLabelFiles();
 
         $this->assertSame($expectedInlineLanguageLabelFile2, array_pop($actualResult));
@@ -154,10 +148,9 @@ class PageRendererTest extends \TYPO3\TestingFramework\Core\Unit\UnitTestCase
         $fileReference = $this->getUniqueId('file2_');
         $selectionPrefix = $this->getUniqueId('prefix2_');
         $stripFromSelectionName = $this->getUniqueId('strip2_');
-        $errorMode = 0;
 
-        $subject->addInlineLanguageLabelFile($fileReference, $selectionPrefix, $stripFromSelectionName, $errorMode);
-        $subject->addInlineLanguageLabelFile($fileReference, $selectionPrefix, $stripFromSelectionName, $errorMode);
+        $subject->addInlineLanguageLabelFile($fileReference, $selectionPrefix, $stripFromSelectionName);
+        $subject->addInlineLanguageLabelFile($fileReference, $selectionPrefix, $stripFromSelectionName);
         $this->assertSame(1, count($subject->getInlineLanguageLabelFiles()));
     }
 
index 25abcf1..99647c7 100644 (file)
@@ -156,9 +156,9 @@ class LocalizationUtility
         /** @var $languageFactory LocalizationFactory */
         $languageFactory = GeneralUtility::makeInstance(LocalizationFactory::class);
 
-        self::$LOCAL_LANG[$extensionName] = $languageFactory->getParsedData($locallangPathAndFilename, self::$languageKey, 'utf-8');
+        self::$LOCAL_LANG[$extensionName] = $languageFactory->getParsedData($locallangPathAndFilename, self::$languageKey);
         foreach (self::$alternativeLanguageKeys as $language) {
-            $tempLL = $languageFactory->getParsedData($locallangPathAndFilename, $language, 'utf-8');
+            $tempLL = $languageFactory->getParsedData($locallangPathAndFilename, $language);
             if (self::$languageKey !== 'default' && isset($tempLL[$language])) {
                 self::$LOCAL_LANG[$extensionName][$language] = $tempLL[$language];
             }
index 736685b..0d3eaac 100644 (file)
@@ -13,7 +13,6 @@ namespace TYPO3\CMS\Fluid\ViewHelpers;
  *
  * The TYPO3 project - inspiring people to share!
  */
-use TYPO3\CMS\Core\Utility\GeneralUtility;
 use TYPO3\CMS\Extbase\Utility\LocalizationUtility;
 use TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper;
 use TYPO3\CMS\Fluid\Core\ViewHelper\Exception\InvalidVariableException;
@@ -90,7 +89,6 @@ class TranslateViewHelper extends AbstractViewHelper
         $this->registerArgument('key', 'string', 'Translation Key');
         $this->registerArgument('id', 'string', 'Translation Key compatible to TYPO3 Flow');
         $this->registerArgument('default', 'string', 'If the given locallang key could not be found, this value is used. If this argument is not set, child nodes will be used to render the default');
-        $this->registerArgument('htmlEscape', 'bool', 'TRUE if the result should be htmlescaped. This won\'t have an effect for the default value');
         $this->registerArgument('arguments', 'array', 'Arguments to be replaced in the resulting string');
         $this->registerArgument('extensionName', 'string', 'UpperCamelCased extension key (for example BlogExample)');
     }
@@ -123,18 +121,9 @@ class TranslateViewHelper extends AbstractViewHelper
         $key = $arguments['key'];
         $id = $arguments['id'];
         $default = $arguments['default'];
-        $htmlEscape = $arguments['htmlEscape'];
         $extensionName = $arguments['extensionName'];
         $arguments = $arguments['arguments'];
 
-        if ($htmlEscape !== null) {
-            GeneralUtility::logDeprecatedViewHelperAttribute(
-                'htmlEscape',
-                $renderingContext,
-                'Please wrap the view helper in <f:format.raw> if you want to disable HTML escaping, which is enabled by default now.'
-            );
-        }
-
         // Wrapper including a compatibility layer for TYPO3 Flow Translation
         if ($id === null) {
             $id = $key;
index d1e5e71..e3ff661 100644 (file)
@@ -486,10 +486,10 @@ class TranslationService implements SingletonInterface
         if (!empty($locallangPathAndFilename)) {
             /** @var $languageFactory LocalizationFactory */
             $languageFactory = GeneralUtility::makeInstance(LocalizationFactory::class);
-            $this->LOCAL_LANG = $languageFactory->getParsedData($locallangPathAndFilename, $this->languageKey, 'utf-8');
+            $this->LOCAL_LANG = $languageFactory->getParsedData($locallangPathAndFilename, $this->languageKey);
 
             foreach ($this->alternativeLanguageKeys as $language) {
-                $tempLL = $languageFactory->getParsedData($locallangPathAndFilename, $language, 'utf-8');
+                $tempLL = $languageFactory->getParsedData($locallangPathAndFilename, $language);
                 if ($this->languageKey !== 'default' && isset($tempLL[$language])) {
                     $this->LOCAL_LANG[$language] = $tempLL[$language];
                 }
index 5afbc40..39e207e 100644 (file)
@@ -4395,7 +4395,7 @@ class TypoScriptFrontendController
 
         $localLanguage = [];
         foreach ($languages as $language) {
-            $tempLL = $languageFactory->getParsedData($fileRef, $language, 'utf-8');
+            $tempLL = $languageFactory->getParsedData($fileRef, $language);
             $localLanguage['default'] = $tempLL['default'];
             if (!isset($localLanguage[$this->lang])) {
                 $localLanguage[$this->lang] = $localLanguage['default'];
index b0b50e0..d5e1c0f 100644 (file)
@@ -1007,8 +1007,7 @@ class AbstractPlugin
         if ($languageFilePath !== '') {
             /** @var $languageFactory LocalizationFactory */
             $languageFactory = GeneralUtility::makeInstance(LocalizationFactory::class);
-            // Read the strings in the required charset (since TYPO3 4.2)
-            $this->LOCAL_LANG = $languageFactory->getParsedData($languageFilePath, $this->LLkey, 'utf-8');
+            $this->LOCAL_LANG = $languageFactory->getParsedData($languageFilePath, $this->LLkey);
             $alternativeLanguageKeys = GeneralUtility::trimExplode(',', $this->altLLkey, true);
             foreach ($alternativeLanguageKeys as $languageKey) {
                 $tempLL = $languageFactory->getParsedData($languageFilePath, $languageKey);
index 7f3dfc5..dc1c0bc 100644 (file)
@@ -14,7 +14,6 @@ namespace TYPO3\CMS\Lang;
  * The TYPO3 project - inspiring people to share!
  */
 
-use TYPO3\CMS\Core\Charset\CharsetConverter;
 use TYPO3\CMS\Core\Localization\Locales;
 use TYPO3\CMS\Core\Localization\LocalizationFactory;
 use TYPO3\CMS\Core\Utility\ArrayUtility;
@@ -38,14 +37,6 @@ class LanguageService
     public $lang = 'default';
 
     /**
-     * Default charset in backend, is always UTF-8, option is not in use anymore, but is kept for third-party extensions
-     * using this option. Will be removed in future versions
-     *
-     * @var string
-     */
-    public $charSet = 'utf-8';
-
-    /**
      * If TRUE, will show the key/location of labels in the backend.
      *
      * @var bool
@@ -53,15 +44,6 @@ class LanguageService
     public $debugKey = false;
 
     /**
-     * Can contain labels and image references from the backend modules.
-     * Relies on \TYPO3\CMS\Backend\Module\ModuleLoader to initialize modules after a global instance of $LANG has been created.
-     * @deprecated since TYPO3 v8, will be removed in TYPO3 v9 - use ModuleLoader directly instead.
-     *
-     * @var array
-     */
-    public $moduleLabels = [];
-
-    /**
      * Internal cache for read LL-files
      *
      * @var array
@@ -76,23 +58,6 @@ class LanguageService
     public $LL_labels_cache = [];
 
     /**
-     * instance of the "\TYPO3\CMS\Core\Charset\CharsetConverter" class. May be used by any application.
-     *
-     * @var \TYPO3\CMS\Core\Charset\CharsetConverter
-     * @deprecated since TYPO3 v8, will be removed in TYPO3 v9. Charset is a singleton, load it via GeneralUtility directly
-     */
-    public $csConvObj;
-
-    /**
-     * instance of the parser factory
-     *
-     * @var LocalizationFactory
-     * @deprecated since TYPO3 v8, will be removed in TYPO3 v9, as LocalizationFactory is a singleton, load it via
-     * GeneralUtility directly
-     */
-    public $parserFactory;
-
-    /**
      * List of language dependencies for actual language. This is used for local variants of a language
      * that depend on their "main" language, like Brazilian Portuguese or Canadian French.
      *
@@ -105,13 +70,7 @@ class LanguageService
      */
     public function __construct()
     {
-        // Initialize the conversion object
-        $this->csConvObj = GeneralUtility::makeInstance(CharsetConverter::class);
-        // Initialize the localization factory object
-        $this->parserFactory = GeneralUtility::makeInstance(LocalizationFactory::class);
-        if ($GLOBALS['TYPO3_CONF_VARS']['BE']['languageDebug']) {
-            $this->debugKey = true;
-        }
+        $this->debugKey = (bool)$GLOBALS['TYPO3_CONF_VARS']['BE']['languageDebug'];
     }
 
     /**
@@ -140,63 +99,6 @@ class LanguageService
     }
 
     /**
-     * Gets the parser factory.
-     *
-     * @return LocalizationFactory
-     * @deprecated since TYPO3 v8, will be removed in TYPO3 v9
-     */
-    public function getParserFactory()
-    {
-        GeneralUtility::logDeprecatedFunction();
-        return $this->parserFactory;
-    }
-
-    /**
-     * Adds labels and image references from the backend modules to the internal moduleLabels array
-     *
-     * @param array $arr Array with references to module labels, keys: ['labels']['table'],
-     * @param string $prefix Module name prefix
-     * @see \TYPO3\CMS\Backend\Module\ModuleLoader
-     * @deprecated since TYPO3 v8, will be removed in TYPO3 v9 - use ModuleLoader instead.
-     */
-    public function addModuleLabels($arr, $prefix)
-    {
-        GeneralUtility::logDeprecatedFunction();
-        if (is_array($arr)) {
-            foreach ($arr as $k => $larr) {
-                if (!isset($this->moduleLabels[$k])) {
-                    $this->moduleLabels[$k] = [];
-                }
-                if (is_array($larr)) {
-                    foreach ($larr as $l => $v) {
-                        $this->moduleLabels[$k][$prefix . $l] = $v;
-                    }
-                }
-            }
-        }
-    }
-
-    /**
-     * Will convert the input strings special chars (all above 127) to entities.
-     * The string is expected to be encoded in UTF-8
-     * This function is used to create strings that can be used in the Click Menu
-     * (Context Sensitive Menus). The reason is that the values that are dynamically
-     * written into the <div> layer is decoded as iso-8859-1 no matter what charset
-     * is used in the document otherwise (only MSIE, Mozilla is OK).
-     * So by converting we by-pass this problem.
-     *
-     * @param string $str Input string
-     * @return string Output string
-     * @deprecated since TYPO3 v8, will be removed in TYPO3 v9
-     */
-    public function makeEntities($str)
-    {
-        GeneralUtility::logDeprecatedFunction();
-        // Convert string back again, but using the full entity conversion:
-        return $this->csConvObj->utf8_to_entities($str);
-    }
-
-    /**
      * Debugs localization key.
      *
      * @param string $value value to debug
@@ -212,12 +114,11 @@ class LanguageService
      * Mostly used from modules with only one LOCAL_LANG file loaded into the global space.
      *
      * @param string $index Label key
-     * @param bool $hsc DEPRECATED If set, the return value is htmlspecialchar'ed
      * @return string
      */
-    public function getLL($index, $hsc = false)
+    public function getLL($index)
     {
-        return $this->getLLL($index, $GLOBALS['LOCAL_LANG'], $hsc);
+        return $this->getLLL($index, $GLOBALS['LOCAL_LANG']);
     }
 
     /**
@@ -225,18 +126,10 @@ class LanguageService
      *
      * @param string $index Label key
      * @param array $localLanguage $LOCAL_LANG array to get label key from
-     * @param bool $hsc DEPRECATED If set, the return value is htmlspecialchar'ed
      * @return string
      */
-    public function getLLL($index, $localLanguage, $hsc = false)
+    public function getLLL($index, $localLanguage)
     {
-        // @deprecated since TYPO3 v8, will be removed in TYPO3 v9
-        if ($hsc) {
-            GeneralUtility::deprecationLog(
-                'Calling getLLL() with argument \'hsc\' has been deprecated.'
-            );
-        }
-
         // Get Local Language. Special handling for all extensions that
         // read PHP LL files and pass arrays here directly.
         if (isset($localLanguage[$this->lang][$index])) {
@@ -250,9 +143,6 @@ class LanguageService
         } else {
             $value = '';
         }
-        if ($hsc) {
-            $value = htmlspecialchars($value);
-        }
         return $value . $this->debugLL($index);
     }
 
@@ -264,19 +154,11 @@ class LanguageService
      * Refer to 'Inside TYPO3' for more details
      *
      * @param string $input Label key/reference
-     * @param bool $hsc DEPRECATED If set, the return value is htmlspecialchar'ed
      * @return string
      */
-    public function sL($input, $hsc = false)
+    public function sL($input)
     {
-        // @deprecated since TYPO3 v8, will be removed in TYPO3 v9
-        if ($hsc) {
-            GeneralUtility::deprecationLog(
-                'Calling sL() with argument \'hsc\' has been deprecated.'
-            );
-        }
-
-        $identifier = $input . '_' . (int)$hsc . '_' . (int)$this->debugKey;
+        $identifier = $input . '_' . (int)$this->debugKey;
         if (isset($this->LL_labels_cache[$this->lang][$identifier])) {
             return $this->LL_labels_cache[$this->lang][$identifier];
         }
@@ -299,9 +181,6 @@ class LanguageService
             // Use a constant non-localizable label
             $output = $input;
         }
-        if ($hsc) {
-            $output = htmlspecialchars($output, ENT_COMPAT, 'UTF-8', false);
-        }
         $output .= $this->debugLL($input);
         $this->LL_labels_cache[$this->lang][$identifier] = $output;
         return $output;
@@ -428,7 +307,7 @@ class LanguageService
         }
         $localLanguage = [];
         foreach ($languages as $language) {
-            $tempLL = $languageFactory->getParsedData($fileRef, $language, 'utf-8');
+            $tempLL = $languageFactory->getParsedData($fileRef, $language);
             $localLanguage['default'] = $tempLL['default'];
             if (!isset($localLanguage[$this->lang])) {
                 $localLanguage[$this->lang] = $localLanguage['default'];
@@ -443,26 +322,6 @@ class LanguageService
     }
 
     /**
-     * Overrides a label.
-     *
-     * @param string $index
-     * @param string $value
-     * @param bool $overrideDefault Overrides default language
-     * @deprecated since TYPO3 v8, will be removed in TYPO3 v9
-     */
-    public function overrideLL($index, $value, $overrideDefault = true)
-    {
-        GeneralUtility::logDeprecatedFunction();
-        if (!isset($GLOBALS['LOCAL_LANG'])) {
-            $GLOBALS['LOCAL_LANG'] = [];
-        }
-        $GLOBALS['LOCAL_LANG'][$this->lang][$index][0]['target'] = $value;
-        if ($overrideDefault) {
-            $GLOBALS['LOCAL_LANG']['default'][$index][0]['target'] = $value;
-        }
-    }
-
-    /**
      * Gets labels with a specific fetched from the current locallang file.
      * This is useful for e.g gathering javascript labels.
      *