diff --git a/src/ClassificationStore/Service/SearchHelperService.php b/src/ClassificationStore/Service/SearchHelperService.php index 65345e1d0..a91298827 100644 --- a/src/ClassificationStore/Service/SearchHelperService.php +++ b/src/ClassificationStore/Service/SearchHelperService.php @@ -22,7 +22,6 @@ use Pimcore\Model\DataObject\Classificationstore\KeyConfig\Dao as KeyConfigDao; use Pimcore\Model\DataObject\Classificationstore\KeyConfig\Listing as KeyConfigListing; use Pimcore\Model\DataObject\Classificationstore\KeyGroupRelation\Listing as KeyGroupRelationListing; -use Pimcore\Model\Translation; /** * @internal @@ -85,8 +84,7 @@ public function getTranslatedSearchFilterTerms(string $searchTerm): array $translatedSearchKeys = $this->translationRepository->getTranslationKeysWithTextFilter( $searchTerm, - $user->getLanguage(), - Translation::DOMAIN_ADMIN + $user->getLanguage() ); $searchTerms = array_merge([$searchTerm], $translatedSearchKeys); diff --git a/src/DataObject/Legacy/PreviewGenerator.php b/src/DataObject/Legacy/PreviewGenerator.php index 4ce25aca0..b88d34aaf 100644 --- a/src/DataObject/Legacy/PreviewGenerator.php +++ b/src/DataObject/Legacy/PreviewGenerator.php @@ -19,11 +19,11 @@ use Pimcore\Bundle\StaticResolverBundle\Lib\ToolResolverInterface; use Pimcore\Bundle\StaticResolverBundle\Models\Site\SiteResolverInterface; use Pimcore\Bundle\StudioBackendBundle\Security\Service\SecurityServiceInterface; +use Pimcore\Bundle\StudioBackendBundle\Translation\Service\TranslatorServiceInterface; use Pimcore\Model\DataObject\ClassDefinition\LinkGeneratorInterface; use Pimcore\Model\DataObject\ClassDefinition\PreviewGeneratorInterface; use Pimcore\Model\DataObject\Concrete; use Pimcore\Model\Site\Listing; -use Pimcore\Model\Translation; use Symfony\Contracts\Translation\TranslatorInterface; use function array_key_exists; use function in_array; @@ -119,7 +119,7 @@ private function getLocalePreviewConfig(): array return [ 'name' => PreviewGeneratorInterface::PARAMETER_LOCALE, - 'label' => $this->translator->trans('preview_generator_locale', [], Translation::DOMAIN_ADMIN), + 'label' => $this->translator->trans('preview_generator_locale', [], TranslatorServiceInterface::DOMAIN), 'values' => $locales, 'defaultValue' => $defaultValue, ]; @@ -135,7 +135,7 @@ protected function getSitePreviewConfig(): array } $sitesOptions = [ - $this->translator->trans('main_site', [], Translation::DOMAIN_ADMIN) => '0', + $this->translator->trans('main_site', [], TranslatorServiceInterface::DOMAIN) => '0', ]; $preSelectedSite = null; @@ -160,7 +160,7 @@ protected function getSitePreviewConfig(): array return [ 'name' => PreviewGeneratorInterface::PARAMETER_SITE, - 'label' => $this->translator->trans('preview_generator_site', [], Translation::DOMAIN_ADMIN), + 'label' => $this->translator->trans('preview_generator_site', [], TranslatorServiceInterface::DOMAIN), 'values' => $sitesOptions, 'defaultValue' => $preSelectedSite ?: reset($sitesOptions), ]; diff --git a/src/Translation/Service/TranslatorService.php b/src/Translation/Service/TranslatorService.php index a0bfc7ac1..e1a64373d 100644 --- a/src/Translation/Service/TranslatorService.php +++ b/src/Translation/Service/TranslatorService.php @@ -33,8 +33,8 @@ use Pimcore\Bundle\StudioBackendBundle\Translation\Schema\CreateTranslation; use Pimcore\Bundle\StudioBackendBundle\Translation\Schema\Translation; use Pimcore\Bundle\StudioBackendBundle\Util\Constant\PublicTranslations; +use Pimcore\Config; use Pimcore\Model\Exception\NotFoundException; -use Pimcore\Model\Translation as TranslationModel; use Pimcore\Model\Translation\Listing; use Pimcore\Translation\Translator; use Symfony\Component\EventDispatcher\EventDispatcherInterface; @@ -53,6 +53,7 @@ private TranslatorBagInterface $translatorBag; public function __construct( + private Config $config, private TranslatorInterface $translator, private TranslationRepositoryInterface $translationRepository, private SecurityServiceInterface $securityService, @@ -150,12 +151,9 @@ public function translateApiDocs(string $message, string $locale = 'en'): string public function getAvailableDomains(): array { - $translation = new TranslationModel(); - - $domains = $translation->getDao()->getAvailableDomains(); + $domains = array_values(array_unique($this->config['translations']['domains'] ?? [])); $availableDomains = []; - foreach ($domains as $domain) { $availableDomains[] = [ 'domain' => $domain, diff --git a/tests/Unit/Service/Translator/TranslatorServiceTest.php b/tests/Unit/Service/Translator/TranslatorServiceTest.php index 544930200..90a89bd9a 100644 --- a/tests/Unit/Service/Translator/TranslatorServiceTest.php +++ b/tests/Unit/Service/Translator/TranslatorServiceTest.php @@ -26,6 +26,7 @@ use Pimcore\Bundle\StudioBackendBundle\Translation\Service\TranslatorService; use Pimcore\Bundle\StudioBackendBundle\Translation\Service\TranslatorServiceInterface; use Pimcore\Bundle\StudioBackendBundle\Util\Constant\PublicTranslations; +use Pimcore\Config; use Pimcore\Translation\Translator; use Symfony\Component\EventDispatcher\EventDispatcherInterface; use function count; @@ -93,6 +94,7 @@ private function mockTranslatorService(bool $loggedIn = true): TranslatorService $toolResolver = $this->makeEmpty(ToolResolverInterface::class); return new TranslatorService( + new Config(), $translator, $repository, $securityService, diff --git a/translations/studio.de.yaml b/translations/studio.de.yaml index 426630638..0a7cfbc76 100644 --- a/translations/studio.de.yaml +++ b/translations/studio.de.yaml @@ -71,3 +71,6 @@ studio_ee_job_step_object_brick_importing: Objektbaustein-Import studio_ee_job_step_bulk_import_cleanup: Massenimport-Bereinigung studio_ee_bulk_import_failed: 'Massenimport von %type% „%name%" fehlgeschlagen: %message%' studio_ee_job_element_usage_replace: Elementverwendung ersetzen +preview_generator_locale: Sprache +main_site: Hauptseite +preview_generator_site: Seite diff --git a/translations/studio.en.yaml b/translations/studio.en.yaml index e4e9fbade..4947e4c42 100644 --- a/translations/studio.en.yaml +++ b/translations/studio.en.yaml @@ -70,4 +70,7 @@ studio_ee_job_step_custom_layout_importing: Custom Layout Importing studio_ee_job_step_object_brick_importing: Object Brick Importing studio_ee_job_step_bulk_import_cleanup: Bulk Import Cleanup studio_ee_bulk_import_failed: 'Bulk import of %type% "%name%" failed: %message%' -studio_ee_job_element_usage_replace: Element Usage Replace \ No newline at end of file +studio_ee_job_element_usage_replace: Element Usage Replace +preview_generator_locale: Language +main_site: 'Main Site' +preview_generator_site: Site \ No newline at end of file diff --git a/translations/studio.es.yaml b/translations/studio.es.yaml index 17f9049ee..8c4ae9f97 100644 --- a/translations/studio.es.yaml +++ b/translations/studio.es.yaml @@ -71,3 +71,6 @@ studio_ee_job_step_object_brick_importing: Importación de bloques de objetos studio_ee_job_step_bulk_import_cleanup: Limpieza de la importación masiva studio_ee_bulk_import_failed: 'La importación masiva de %type% «%name%» falló: %message%' studio_ee_job_element_usage_replace: Reemplazar uso del elemento +preview_generator_locale: Idioma +main_site: Sitio Principal +preview_generator_site: Web diff --git a/translations/studio.fr.yaml b/translations/studio.fr.yaml index a05d9f722..2b178b206 100644 --- a/translations/studio.fr.yaml +++ b/translations/studio.fr.yaml @@ -71,3 +71,6 @@ studio_ee_job_step_object_brick_importing: Import des briques d'objets studio_ee_job_step_bulk_import_cleanup: Nettoyage de l'import en masse studio_ee_bulk_import_failed: "L'import en masse de %type% « %name% » a échoué : %message%" studio_ee_job_element_usage_replace: Remplacer l'utilisation de l'élément +preview_generator_locale: Language +main_site: Site principal +preview_generator_site: Site diff --git a/translations/studio.it.yaml b/translations/studio.it.yaml index 7acfd9267..5df5de7e2 100644 --- a/translations/studio.it.yaml +++ b/translations/studio.it.yaml @@ -71,3 +71,6 @@ studio_ee_job_step_object_brick_importing: Importazione dei mattoni oggetto studio_ee_job_step_bulk_import_cleanup: Pulizia dell'importazione in blocco studio_ee_bulk_import_failed: "L'importazione in blocco di %type% «%name%» non è riuscita: %message%" studio_ee_job_element_usage_replace: Sostituisci utilizzo dell'elemento +preview_generator_locale: Language +main_site: Sito principale +preview_generator_site: Site diff --git a/translations/studio.no.yaml b/translations/studio.no.yaml index 6f36450fc..b900b64ec 100644 --- a/translations/studio.no.yaml +++ b/translations/studio.no.yaml @@ -71,3 +71,6 @@ studio_ee_job_step_object_brick_importing: Import av objektblokker studio_ee_job_step_bulk_import_cleanup: Opprydding av masseimport studio_ee_bulk_import_failed: 'Masseimport av %type% «%name%» mislyktes: %message%' studio_ee_job_element_usage_replace: Erstatt elementbruk +preview_generator_locale: Language +main_site: 'Main Site' +preview_generator_site: Site diff --git a/translations/studio.sv.yaml b/translations/studio.sv.yaml index 9b9d45f73..5b62e8acd 100644 --- a/translations/studio.sv.yaml +++ b/translations/studio.sv.yaml @@ -71,3 +71,6 @@ studio_ee_job_step_object_brick_importing: Import av objektblock studio_ee_job_step_bulk_import_cleanup: Rensning av massimport studio_ee_bulk_import_failed: 'Massimport av %type% "%name%" misslyckades: %message%' studio_ee_job_element_usage_replace: Ersätt elementanvändning +preview_generator_locale: Language +main_site: Huvudsajt +preview_generator_site: Site