From 1a331dc3bae47cd46992fb50f6cd2f485bea38a9 Mon Sep 17 00:00:00 2001 From: the-djmaze <> Date: Sun, 17 Dec 2023 22:42:48 +0100 Subject: [PATCH] Some fixes for #1362 --- plugins/nextcloud/index.php | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/plugins/nextcloud/index.php b/plugins/nextcloud/index.php index 2fdc144e6..cabd8a474 100644 --- a/plugins/nextcloud/index.php +++ b/plugins/nextcloud/index.php @@ -4,8 +4,8 @@ class NextcloudPlugin extends \RainLoop\Plugins\AbstractPlugin { const NAME = 'Nextcloud', - VERSION = '2.27', - RELEASE = '2023-12-11', + VERSION = '2.28', + RELEASE = '2023-12-17', CATEGORY = 'Integrations', DESCRIPTION = 'Integrate with Nextcloud v20+', REQUIRED = '2.27.0'; @@ -248,11 +248,10 @@ class NextcloudPlugin extends \RainLoop\Plugins\AbstractPlugin public function FilterLanguage(&$sLanguage, $bAdmin) : void { if (!\RainLoop\Api::Config()->Get('webmail', 'allow_languages_on_settings', true)) { - $aResultLang = \SnappyMail\L10n::getLanguages(false); - $user = \OC::$server->getUserSession()->getUser(); - $userId = $user->getUID(); - $userLang = \OC::$server->getConfig()->getUserValue($userId, 'core', 'lang','en'); - $sLanguage = $this->determineLocale($userLang,$aResultLang); + $aResultLang = \SnappyMail\L10n::getLanguages($bAdmin); + $userId = \OC::$server->getUserSession()->getUser()->getUID(); + $userLang = \OC::$server->getConfig()->getUserValue($userId, 'core', 'lang', 'en'); + $sLanguage = $this->determineLocale($userLang, $aResultLang); // Check if $sLanguage is null if ($sLanguage === null) { $sLanguage = 'en'; // Assign 'en' if $sLanguage is null @@ -266,23 +265,24 @@ class NextcloudPlugin extends \RainLoop\Plugins\AbstractPlugin * @param string $langCode The name of the input. * @param array $languagesArray The value of the array. * - * @return string return locale + * @return string return locale */ - private function determineLocale (string $langCode, array $languagesArray) : string { + private function determineLocale(string $langCode, array $languagesArray) : ?string + { // Direct check for the language code - if (in_array($langCode, $languagesArray)) { + if (\in_array($langCode, $languagesArray)) { return $langCode; } - + // Check with uppercase country code - $langCodeWithUpperCase = $langCode . '-' . strtoupper($langCode); - if (in_array($langCodeWithUpperCase, $languagesArray)) { + $langCodeWithUpperCase = $langCode . '-' . \strtoupper($langCode); + if (\in_array($langCodeWithUpperCase, $languagesArray)) { return $langCodeWithUpperCase; } - + // Iterating to find a match starting with langCode foreach ($languagesArray as $localeValue) { - if (strpos($localeValue, $langCode) === 0) { + if (\str_starts_with($localeValue, $langCode)) { return $localeValue; } }