]> BookStack Code Mirror - bookstack/blobdiff - app/Util/LanguageManager.php
Guest create page: name field autofocus
[bookstack] / app / Util / LanguageManager.php
index c33c73ad5ce64123d594be6aff9084a404170a89..ed68f647c400386a264b78dcaefa7150f2fee356 100644 (file)
@@ -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);
+        }
     }
 }