['label' => 'DeepL', 'enabled_path' => 'esun_multilocale_translation/deepl/enabled'], 'google' => [ 'label' => 'Google Cloud Translation V3', 'enabled_path' => 'esun_multilocale_translation/google/enabled', ], ]; public function __construct(private readonly ScopeConfigInterface $scopeConfig) { } /** * @return array */ public function getEnabledOptions(): array { $result = []; foreach (self::PROVIDERS as $code => $provider) { if (!$this->scopeConfig->isSetFlag($provider['enabled_path'])) { continue; } $result[] = ['code' => $code, 'label' => $provider['label']]; } return $result; } public function getDefaultProvider(): string { $configured = (string)$this->scopeConfig->getValue(self::XML_PATH_DEFAULT_PROVIDER); foreach ($this->getEnabledOptions() as $provider) { if ($provider['code'] === $configured) { return $configured; } } return (string)($this->getEnabledOptions()[0]['code'] ?? ''); } }