$precedence = json_decode($json, true);
$newProviders = [];
foreach ($precedence as $className) {
- $provider = current(array_filter($providers, fn ($provider) =>
- $provider instanceof ITranslationProviderWithId ? $provider->getId() === $className : $provider::class === $className))
- ;
+ $provider = current(array_filter($providers, function ($provider) use ($className) {
+ return $provider instanceof ITranslationProviderWithId ? $provider->getId() === $className : $provider::class === $className;
+ }));
if ($provider !== false) {
$newProviders[] = $provider;
}
}
// Add all providers that haven't been added so far
- $newProviders += array_udiff($providers, $newProviders, fn ($a, $b) =>
- ($a instanceof ITranslationProviderWithId ? $a->getId() : $a::class) <=> ($b instanceof ITranslationProviderWithId ? $b->getId() : $b::class)
- );
+ $newProviders += array_udiff($providers, $newProviders, function ($a, $b) {
+ return ($a instanceof ITranslationProviderWithId ? $a->getId() : $a::class) <=> ($b instanceof ITranslationProviderWithId ? $b->getId() : $b::class);
+ });
$providers = $newProviders;
}
foreach ($providers as $provider) {
try {
- if ($provider instanceof ITranslationProviderWithUserId) {
+ if ($provider instanceof ITranslationProviderWithUserId) {
$provider->setUserId($this->userSession->getUser()?->getUID());
}
return $provider->translate($fromLanguage, $toLanguage, $text);