Merge pull request #23822 from nextcloud/enh/parse_localse_only_once
Only parse the locales ones
This commit is contained in:
commit
ff08b10a89
|
@ -37,6 +37,7 @@
|
||||||
|
|
||||||
namespace OC\L10N;
|
namespace OC\L10N;
|
||||||
|
|
||||||
|
use Ds\Set;
|
||||||
use OCP\IConfig;
|
use OCP\IConfig;
|
||||||
use OCP\IRequest;
|
use OCP\IRequest;
|
||||||
use OCP\IUser;
|
use OCP\IUser;
|
||||||
|
@ -63,6 +64,11 @@ class Factory implements IFactory {
|
||||||
*/
|
*/
|
||||||
protected $availableLanguages = [];
|
protected $availableLanguages = [];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var Set
|
||||||
|
*/
|
||||||
|
protected $localeCache;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
|
@ -104,6 +110,7 @@ class Factory implements IFactory {
|
||||||
$this->request = $request;
|
$this->request = $request;
|
||||||
$this->userSession = $userSession;
|
$this->userSession = $userSession;
|
||||||
$this->serverRoot = $serverRoot;
|
$this->serverRoot = $serverRoot;
|
||||||
|
$this->localeCache = new Set();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -391,12 +398,14 @@ class Factory implements IFactory {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($this->localeCache->isEmpty()) {
|
||||||
$locales = $this->findAvailableLocales();
|
$locales = $this->findAvailableLocales();
|
||||||
$userLocale = array_filter($locales, function ($value) use ($locale) {
|
foreach ($locales as $l) {
|
||||||
return $locale === $value['code'];
|
$this->localeCache->add($l['code']);
|
||||||
});
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return !empty($userLocale);
|
return $this->localeCache->contains($locale);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue