Add native language names to language selector

This commit is contained in:
Balázs Úr 2022-01-05 00:33:04 +01:00
parent 322b7c856c
commit b08718fcc3

View File

@ -340,9 +340,10 @@ class L10n
* *
* Scans the view/lang directory for the existence of "strings.php" files, and * Scans the view/lang directory for the existence of "strings.php" files, and
* returns an alphabetical list of their folder names (@-char language codes). * returns an alphabetical list of their folder names (@-char language codes).
* Adds the english language if it's missing from the list. * Adds the english language if it's missing from the list. Folder names are
* replaced by nativ language names.
* *
* Ex: array('de' => 'de', 'en' => 'en', 'fr' => 'fr', ...) * Ex: array('de' => 'Deutsch', 'en' => 'English', 'fr' => 'Français', ...)
* *
* @return array * @return array
*/ */
@ -350,6 +351,33 @@ class L10n
{ {
$langs = []; $langs = [];
$strings_file_paths = glob('view/lang/*/strings.php'); $strings_file_paths = glob('view/lang/*/strings.php');
$lang_names = [
'ar' => 'العربية',
'bg' => 'Български',
'ca' => 'Català',
'cs' => 'Česky',
'de' => 'Deutsch',
'en-gb' => 'English (United Kingdom)',
'en-us' => 'English (United States)',
'en' => 'English (Default)',
'eo' => 'Esperanto',
'es' => 'Español',
'et' => 'Eesti',
'fi-fi' => 'Suomi',
'fr' => 'Français',
'hu' => 'Magyar',
'is' => 'Íslenska',
'it' => 'Italiano',
'ja' => '日本語',
'nb-no' => 'Norsk bokmål',
'nl' => 'Nederlands',
'pl' => 'Polski',
'pt-br' => 'Português Brasileiro',
'ro' => 'Română',
'ru' => 'Русский',
'sv' => 'Svenska',
'zh-cn' => '简体中文',
];
if (is_array($strings_file_paths) && count($strings_file_paths)) { if (is_array($strings_file_paths) && count($strings_file_paths)) {
if (!in_array('view/lang/en/strings.php', $strings_file_paths)) { if (!in_array('view/lang/en/strings.php', $strings_file_paths)) {
@ -358,7 +386,7 @@ class L10n
asort($strings_file_paths); asort($strings_file_paths);
foreach ($strings_file_paths as $strings_file_path) { foreach ($strings_file_paths as $strings_file_path) {
$path_array = explode('/', $strings_file_path); $path_array = explode('/', $strings_file_path);
$langs[$path_array[2]] = $path_array[2]; $langs[$path_array[2]] = isset($lang_names[$path_array[2]]) ? $lang_names[$path_array[2]] : $path_array[2];
} }
} }
return $langs; return $langs;