From 457bfb5765a0d65bd6a4942f821f4e3b1cba9e41 Mon Sep 17 00:00:00 2001
From: Georg Ringer <georg.ringer@gmail.com>
Date: Fri, 25 Sep 2020 22:19:38 +0200
Subject: [PATCH] [BUGFIX] Set typo3Language for new site languages if possible

If a sys_language record is properly filled with the language
information, the site language record can be filled as well.

Setting the typo3Language by default with the correct languages makes it
easier to setup languages.

Resolves: #92422
Releases: master, 10.4
Change-Id: I3c9e2322cd0aa3963ede36586cc97babe0f003a8
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/65897
Tested-by: TYPO3com <noreply@typo3.com>
Tested-by: Josef Glatz <josefglatz@gmail.com>
Tested-by: Oliver Bartsch <bo@cedev.de>
Tested-by: Andreas Fernandez <a.fernandez@scripting-base.de>
Reviewed-by: Josef Glatz <josefglatz@gmail.com>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
Reviewed-by: Andreas Fernandez <a.fernandez@scripting-base.de>
---
 .../Classes/Controller/SiteInlineAjaxController.php        | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/typo3/sysext/backend/Classes/Controller/SiteInlineAjaxController.php b/typo3/sysext/backend/Classes/Controller/SiteInlineAjaxController.php
index 75ad3b462d23..16f4d625a1d8 100644
--- a/typo3/sysext/backend/Classes/Controller/SiteInlineAjaxController.php
+++ b/typo3/sysext/backend/Classes/Controller/SiteInlineAjaxController.php
@@ -27,6 +27,7 @@ use TYPO3\CMS\Backend\Form\NodeFactory;
 use TYPO3\CMS\Core\Database\ConnectionPool;
 use TYPO3\CMS\Core\Database\Query\Restriction\HiddenRestriction;
 use TYPO3\CMS\Core\Http\JsonResponse;
+use TYPO3\CMS\Core\Localization\Locales;
 use TYPO3\CMS\Core\Utility\ArrayUtility;
 use TYPO3\CMS\Core\Utility\GeneralUtility;
 use TYPO3\CMS\Core\Utility\MathUtility;
@@ -98,6 +99,12 @@ class SiteInlineAjaxController extends AbstractFormEngineAjaxController
                 if (!empty($row['language_isocode'])) {
                     $defaultDatabaseRow['iso-639-1'] = $row['language_isocode'];
                     $defaultDatabaseRow['base'] = '/' . $row['language_isocode'] . '/';
+
+                    $locales = GeneralUtility::makeInstance(Locales::class);
+                    $allLanguages = $locales->getLanguages();
+                    if (isset($allLanguages[$row['language_isocode']])) {
+                        $defaultDatabaseRow['typo3Language'] = $row['language_isocode'];
+                    }
                 }
                 if (!empty($row['flag']) && $row['flag'] === 'multiple') {
                     $defaultDatabaseRow['flag'] = 'global';
-- 
GitLab