diff --git a/installation/forms/setup.xml b/installation/forms/setup.xml index 3f9c6ba350309..1d72aa0df472b 100644 --- a/installation/forms/setup.xml +++ b/installation/forms/setup.xml @@ -7,6 +7,7 @@ label="INSTL_SELECT_LANGUAGE_TITLE" class="required" default="en-GB" + labelclass="hidden" /> getDocument()->getWebAssetManager(); + +$wa->useScript('joomla.dialog-autocreate'); ?>
-
-
- - - -
-
- form->renderField('language'); ?> -
- - - -
-
-
@@ -134,5 +123,26 @@ +
+
+ + 'languageForm-current', 'data-joomla-dialog' => '###dialogattr###', 'class' => 'btn btn-link ps-1']); + + // Dialog needs single quotes for attributes, so use single quotes... + $link = str_replace('"###dialogattr###', '\'{"textHeader": "' . Text::_('INSTL_SELECT_INSTALL_LANG') . '", "iconHeader":"icon-language"}\'', $link); + + echo Text::sprintf('INSTL_SELECTED_INSTALL_LANGUAGE', $link); + ?> +
+ + + + +
diff --git a/libraries/src/Language/LanguageHelper.php b/libraries/src/Language/LanguageHelper.php index 6dfa9afbba8b8..c4753acafa2cd 100644 --- a/libraries/src/Language/LanguageHelper.php +++ b/libraries/src/Language/LanguageHelper.php @@ -111,6 +111,11 @@ public static function detectLanguage() $browserLang = substr($browserLang, 0, strcspn($browserLang, ';')); $primary_browserLang = substr($browserLang, 0, 2); + // Some browser return only "fr" or "de", so let's try to use it like "fr-fr" or "de-de" + if (\strlen($browserLang) == 2) { + $browserLang = $browserLang . '-' . $browserLang; + } + foreach ($systemLangs as $systemLang) { // Take off 3 letters iso code languages as they can't match browsers' languages and default them to en $Jinstall_lang = $systemLang->lang_code;