diff --git a/phpBB/adm/style/installer_header.html b/phpBB/adm/style/installer_header.html index a3b8eda825..39d86da179 100644 --- a/phpBB/adm/style/installer_header.html +++ b/phpBB/adm/style/installer_header.html @@ -20,7 +20,7 @@
- diff --git a/phpBB/phpbb/install/controller/helper.php b/phpBB/phpbb/install/controller/helper.php index 25cde9239d..7048145565 100644 --- a/phpBB/phpbb/install/controller/helper.php +++ b/phpBB/phpbb/install/controller/helper.php @@ -339,6 +339,14 @@ class helper protected function render_language_select($selected_language = null) { $langs = $this->lang_helper->get_available_languages(); + + // The first language will be selected by default. Unless a user has consciously included + // other languages in the installation process, it will be British English anyway. + if ($selected_language === null && count($langs)) + { + $selected_language = $langs[0]['iso']; + } + foreach ($langs as $lang) { $this->template->assign_block_vars('language_select_item', array( diff --git a/phpBB/phpbb/language/language_file_helper.php b/phpBB/phpbb/language/language_file_helper.php index 83244d674f..809df8728e 100644 --- a/phpBB/phpbb/language/language_file_helper.php +++ b/phpBB/phpbb/language/language_file_helper.php @@ -65,6 +65,8 @@ class language_file_helper $available_languages[] = $this->get_language_data_from_json($data); } + usort($available_languages, [$this, 'sort_by_local_name']); + return $available_languages; } @@ -123,4 +125,14 @@ class language_file_helper 'turnstile_lang' => $data['extra']['turnstile-lang'] ?? '', ]; } + + /** + * Sorts the languages by their name instead of iso code + * + * @return array + */ + private static function sort_by_local_name($a, $b) + { + return $a['local_name'] > $b['local_name']; + } }