X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/ee1e9366601d5cb9d2dd981b272341039d4f2fb9..refs/pull/3918/head:/app/Util/LanguageManager.php diff --git a/app/Util/LanguageManager.php b/app/Util/LanguageManager.php index c33c73ad5..ed68f647c 100644 --- a/app/Util/LanguageManager.php +++ b/app/Util/LanguageManager.php @@ -28,6 +28,7 @@ class LanguageManager 'de' => ['iso' => 'de_DE', 'windows' => 'German'], 'de_informal' => ['iso' => 'de_DE', 'windows' => 'German'], 'en' => ['iso' => 'en_GB', 'windows' => 'English'], + 'el' => ['iso' => 'el_GR', 'windows' => 'Greek'], 'es' => ['iso' => 'es_ES', 'windows' => 'Spanish'], 'es_AR' => ['iso' => 'es_AR', 'windows' => 'Spanish'], 'et' => ['iso' => 'et_EE', 'windows' => 'Estonian'], @@ -48,6 +49,7 @@ class LanguageManager 'pl' => ['iso' => 'pl_PL', 'windows' => 'Polish'], 'pt' => ['iso' => 'pt_PT', 'windows' => 'Portuguese'], 'pt_BR' => ['iso' => 'pt_BR', 'windows' => 'Portuguese'], + 'ro' => ['iso' => 'ro_RO', 'windows' => 'Romanian'], 'ru' => ['iso' => 'ru', 'windows' => 'Russian'], 'sk' => ['iso' => 'sk_SK', 'windows' => 'Slovak'], 'sl' => ['iso' => 'sl_SI', 'windows' => 'Slovenian'], @@ -113,18 +115,22 @@ class LanguageManager * Set the system date locale for localized date formatting. * Will try both the standard locale name and the UTF8 variant. */ - public function setPhpDateTimeLocale(string $language) + public function setPhpDateTimeLocale(string $language): void { - $isoLang = $this->localeMap[$language]['iso'] ?? false; + $isoLang = $this->localeMap[$language]['iso'] ?? ''; + $isoLangPrefix = explode('_', $isoLang)[0]; $locales = array_filter([ $isoLang ? $isoLang . '.utf8' : false, $isoLang ?: false, $isoLang ? str_replace('_', '-', $isoLang) : false, + $isoLang ? $isoLangPrefix . '.UTF-8' : false, $this->localeMap[$language]['windows'] ?? false, $language, ]); - setlocale(LC_TIME, ...$locales); + if (!empty($locales)) { + setlocale(LC_TIME, ...$locales); + } } }