mirror of
https://github.com/phpbb/phpbb.git
synced 2025-07-26 20:08:55 +00:00
Compare commits
5 commits
e53683cd21
...
9b49a13927
Author | SHA1 | Date | |
---|---|---|---|
|
9b49a13927 | ||
|
9c49a2b86b | ||
|
d017eff8f1 | ||
|
d4a3311b76 | ||
|
8411da1819 |
3 changed files with 34 additions and 1 deletions
|
@ -20,7 +20,7 @@
|
||||||
<form method="post" action="#" id="language_selector">
|
<form method="post" action="#" id="language_selector">
|
||||||
<fieldset class="nobg">
|
<fieldset class="nobg">
|
||||||
<label for="language">{L_SELECT_LANG}{L_COLON}</label>
|
<label for="language">{L_SELECT_LANG}{L_COLON}</label>
|
||||||
<select id="language" name="language">
|
<select id="language" name="language">
|
||||||
<!-- BEGIN language_select_item -->
|
<!-- BEGIN language_select_item -->
|
||||||
<option value="{language_select_item.VALUE}"<!-- IF language_select_item.SELECTED --> selected="selected"<!-- ENDIF -->>{language_select_item.NAME}</option>
|
<option value="{language_select_item.VALUE}"<!-- IF language_select_item.SELECTED --> selected="selected"<!-- ENDIF -->>{language_select_item.NAME}</option>
|
||||||
<!-- END language_select_item -->
|
<!-- END language_select_item -->
|
||||||
|
|
|
@ -339,6 +339,14 @@ class helper
|
||||||
protected function render_language_select($selected_language = null)
|
protected function render_language_select($selected_language = null)
|
||||||
{
|
{
|
||||||
$langs = $this->lang_helper->get_available_languages();
|
$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)
|
foreach ($langs as $lang)
|
||||||
{
|
{
|
||||||
$this->template->assign_block_vars('language_select_item', array(
|
$this->template->assign_block_vars('language_select_item', array(
|
||||||
|
|
|
@ -65,6 +65,8 @@ class language_file_helper
|
||||||
$available_languages[] = $this->get_language_data_from_json($data);
|
$available_languages[] = $this->get_language_data_from_json($data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
usort($available_languages, [$this, 'sort_by_local_name']);
|
||||||
|
|
||||||
return $available_languages;
|
return $available_languages;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -123,4 +125,27 @@ class language_file_helper
|
||||||
'turnstile_lang' => $data['extra']['turnstile-lang'] ?? '',
|
'turnstile_lang' => $data['extra']['turnstile-lang'] ?? '',
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sorts the languages by their name instead of iso code
|
||||||
|
*
|
||||||
|
* @param mixed $a First language data
|
||||||
|
* @param mixed $b Second language data
|
||||||
|
* @return int
|
||||||
|
*/
|
||||||
|
private static function sort_by_local_name(mixed $a, mixed $b): int
|
||||||
|
{
|
||||||
|
if ($a['local_name'] > $b['local_name'])
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
else if ($a['local_name'] < $b['local_name'])
|
||||||
|
{
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue