]> BookStack Code Mirror - bookstack/blobdiff - app/Util/LanguageManager.php
Fix timestamp in API docs example response
[bookstack] / app / Util / LanguageManager.php
index fcc56b07e513434e042e611fe3f9eacf0fa37993..93c992fcc0871ff24d7e622609d389351ba82a78 100644 (file)
@@ -24,10 +24,12 @@ class LanguageManager
         'bg'          => ['iso' => 'bg_BG', 'windows' => 'Bulgarian'],
         'bs'          => ['iso' => 'bs_BA', 'windows' => 'Bosnian (Latin)'],
         'ca'          => ['iso' => 'ca', 'windows' => 'Catalan'],
+        'cs'          => ['iso' => 'cs_CZ', 'windows' => 'Czech'],
         'da'          => ['iso' => 'da_DK', 'windows' => 'Danish'],
         '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'],
@@ -116,18 +118,20 @@ class LanguageManager
      */
     public function setPhpDateTimeLocale(string $language): void
     {
-        $isoLang = $this->localeMap[$language]['iso'] ?? false;
+        $isoLang = $this->localeMap[$language]['iso'] ?? '';
+        $isoLangPrefix = explode('_', $isoLang)[0];
 
-        $locales = array_filter([
+        $locales = array_values(array_filter([
             $isoLang ? $isoLang . '.utf8' : false,
             $isoLang ?: false,
             $isoLang ? str_replace('_', '-', $isoLang) : false,
+            $isoLang ? $isoLangPrefix . '.UTF-8' : false,
             $this->localeMap[$language]['windows'] ?? false,
             $language,
-        ]);
+        ]));
 
         if (!empty($locales)) {
-            setlocale(LC_TIME, ...$locales);
+            setlocale(LC_TIME, $locales[0], ...array_slice($locales, 1));
         }
     }
 }