Skip to content
This repository has been archived by the owner on Nov 4, 2024. It is now read-only.

Commit

Permalink
Merge pull request #1362 from Murena-SAS/dev/lang-fix-nexcloud
Browse files Browse the repository at this point in the history
make nextcloud language work with snappy
  • Loading branch information
the-djmaze authored Dec 17, 2023
2 parents adaac29 + 0a4f83f commit 4400af0
Showing 1 changed file with 40 additions and 1 deletion.
41 changes: 40 additions & 1 deletion plugins/nextcloud/index.php
Original file line number Diff line number Diff line change
Expand Up @@ -248,8 +248,47 @@ public function FilterAppData($bAdmin, &$aResult) : void
public function FilterLanguage(&$sLanguage, $bAdmin) : void
{
if (!\RainLoop\Api::Config()->Get('webmail', 'allow_languages_on_settings', true)) {
$sLanguage = \strtr(\OC::$server->getL10N('core')->getLocaleCode(), '_', '-');
$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);
// Check if $sLanguage is null
if ($sLanguage === null) {
$sLanguage = 'en'; // Assign 'en' if $sLanguage is null
}
}
}

/**
* Determine locale from user language.
*
* @param string $langCode The name of the input.
* @param array $languagesArray The value of the array.
*
* @return string return locale
*/
private function determineLocale (string $langCode, array $languagesArray) : string {
// Direct check for the language code
if (in_array($langCode, $languagesArray)) {
return $langCode;
}

// Check with uppercase country code
$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) {
return $localeValue;
}
}

// If no match is found
return null;
}

/**
Expand Down

0 comments on commit 4400af0

Please sign in to comment.