|
|
|
|
@ -40,6 +40,8 @@ declare(strict_types=1); |
|
|
|
|
|
|
|
|
|
namespace OC\L10N; |
|
|
|
|
|
|
|
|
|
use OCP\ICache; |
|
|
|
|
use OCP\ICacheFactory; |
|
|
|
|
use OCP\IConfig; |
|
|
|
|
use OCP\IRequest; |
|
|
|
|
use OCP\IUser; |
|
|
|
|
@ -94,7 +96,9 @@ class Factory implements IFactory { |
|
|
|
|
protected $request; |
|
|
|
|
|
|
|
|
|
/** @var IUserSession */ |
|
|
|
|
protected $userSession; |
|
|
|
|
protected IUserSession $userSession; |
|
|
|
|
|
|
|
|
|
private ICache $cache; |
|
|
|
|
|
|
|
|
|
/** @var string */ |
|
|
|
|
protected $serverRoot; |
|
|
|
|
@ -109,11 +113,13 @@ class Factory implements IFactory { |
|
|
|
|
IConfig $config, |
|
|
|
|
IRequest $request, |
|
|
|
|
IUserSession $userSession, |
|
|
|
|
ICacheFactory $cacheFactory, |
|
|
|
|
$serverRoot |
|
|
|
|
) { |
|
|
|
|
$this->config = $config; |
|
|
|
|
$this->request = $request; |
|
|
|
|
$this->userSession = $userSession; |
|
|
|
|
$this->cache = $cacheFactory->createLocal('L10NFactory'); |
|
|
|
|
$this->serverRoot = $serverRoot; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -338,6 +344,10 @@ class Factory implements IFactory { |
|
|
|
|
$key = 'null'; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if ($availableLanguages = $this->cache->get($key)) { |
|
|
|
|
$this->availableLanguages[$key] = $availableLanguages; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// also works with null as key |
|
|
|
|
if (!empty($this->availableLanguages[$key])) { |
|
|
|
|
return $this->availableLanguages[$key]; |
|
|
|
|
@ -374,6 +384,7 @@ class Factory implements IFactory { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$this->availableLanguages[$key] = $available; |
|
|
|
|
$this->cache->set($key, $available, 60); |
|
|
|
|
return $available; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|