[FEATURE] Allow multiple locales for config.locale_all 58/47458/3
authorBenni Mack <benni@typo3.org>
Thu, 31 Mar 2016 11:16:26 +0000 (13:16 +0200)
committerAndreas Fernandez <typo3@scripting-base.de>
Thu, 31 Mar 2016 15:48:32 +0000 (17:48 +0200)
The PHP function setlocale() allows to define multiple locales
as fallbacks when the first locale is not available in the system.

The TypoScript option config.locale_all now allows a
comma-separated list of locales which are thrown
into setlocale() as additional parameters to use fallback options.

Resolves: #39597
Releases: master
Change-Id: Ia09564f0fdf82120254598d6d55e9d2d35d8c5f1
Reviewed-on: https://review.typo3.org/47458
Reviewed-by: Wouter Wolters <typo3@wouterwolters.nl>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Xavier Perseguers <xavier@typo3.org>
Tested-by: Xavier Perseguers <xavier@typo3.org>
Reviewed-by: Andreas Fernandez <typo3@scripting-base.de>
Tested-by: Andreas Fernandez <typo3@scripting-base.de>
typo3/sysext/core/Documentation/Changelog/master/Feature-39597-MultipleLocaleNamesForTypoScriptConfiglocale_all.rst [new file with mode: 0644]
typo3/sysext/frontend/Classes/Controller/TypoScriptFrontendController.php

diff --git a/typo3/sysext/core/Documentation/Changelog/master/Feature-39597-MultipleLocaleNamesForTypoScriptConfiglocale_all.rst b/typo3/sysext/core/Documentation/Changelog/master/Feature-39597-MultipleLocaleNamesForTypoScriptConfiglocale_all.rst
new file mode 100644 (file)
index 0000000..377c831
--- /dev/null
@@ -0,0 +1,13 @@
+========================================================================
+Feature: #39597 - Multiple locale names for TypoScript config.locale_all
+========================================================================
+
+Description
+===========
+
+The TypoScript option ``config.locale_all`` now allows to set locale fallbacks as a comma-separated list, as the
+underlying PHP function ``setlocale()`` does as well.
+
+.. code-block:: typoscript
+
+       config.locale_all = de_AT@euro, de_AT, de_DE, deu_deu
\ No newline at end of file
index fa38983..91b9a38 100644 (file)
@@ -2732,7 +2732,8 @@ class TypoScriptFrontendController
     {
         // Setting locale
         if ($this->config['config']['locale_all']) {
-            $locale = setlocale(LC_ALL, $this->config['config']['locale_all']);
+            $availableLocales = GeneralUtility::trimExplode(',', $this->config['config']['locale_all'], true);
+            $locale = setlocale(LC_ALL, ...$availableLocales);
             if (!$locale) {
                 $this->getTimeTracker()->setTSlogMessage('Locale "' . htmlspecialchars($this->config['config']['locale_all']) . '" not found.', 3);
             }