diff --git a/Resources/translations/webfactory-newsletter-registration+intl-icu.de.xlf b/Resources/translations/webfactory-newsletter-registration+intl-icu.de.xlf index 8f5a2b8..e05d9e6 100644 --- a/Resources/translations/webfactory-newsletter-registration+intl-icu.de.xlf +++ b/Resources/translations/webfactory-newsletter-registration+intl-icu.de.xlf @@ -37,6 +37,14 @@ confirm.registration.complete Ihr Newsletter-Abo ist nun aktiv. + + start.registration.label.email.address + E-Mail-Adresse + + + registration.label.categories + Kategorien + diff --git a/Resources/translations/webfactory-newsletter-registration+intl-icu.en.xlf b/Resources/translations/webfactory-newsletter-registration+intl-icu.en.xlf index fe634eb..9603775 100644 --- a/Resources/translations/webfactory-newsletter-registration+intl-icu.en.xlf +++ b/Resources/translations/webfactory-newsletter-registration+intl-icu.en.xlf @@ -37,6 +37,14 @@ confirm.registration.complete Your newsletter registration is now active. + + start.registration.label.email.address + Email address + + + registration.label.categories + Categories + diff --git a/src/EditRegistration/TypeHasCategoriesElementTrait.php b/src/EditRegistration/TypeHasCategoriesElementTrait.php index 4f7a204..d5282c5 100644 --- a/src/EditRegistration/TypeHasCategoriesElementTrait.php +++ b/src/EditRegistration/TypeHasCategoriesElementTrait.php @@ -19,7 +19,8 @@ protected function addCategoriesElementToForm(FormBuilderInterface $builder, arr self::ELEMENT_CATEGORIES, ChoiceType::class, [ - 'label' => 'Categories', + 'label' => 'registration.label.categories', + 'translation_domain' => 'webfactory-newsletter-registration', 'multiple' => true, 'expanded' => true, 'choices' => $choices, diff --git a/src/StartRegistration/EmailAddressType.php b/src/StartRegistration/EmailAddressType.php index d084d5b..8f66ca0 100644 --- a/src/StartRegistration/EmailAddressType.php +++ b/src/StartRegistration/EmailAddressType.php @@ -78,7 +78,8 @@ public function configureOptions(OptionsResolver $resolver): void 'empty_data' => null, 'required' => true, 'compound' => false, - 'label' => 'Email address', + 'label' => 'start.registration.label.email.address', + 'translation_domain' => 'webfactory-newsletter-registration', 'constraints' => [ new NotBlank(), new Email(), diff --git a/tests/Resources/TranslationsTest.php b/tests/Resources/TranslationsTest.php new file mode 100644 index 0000000..37f44c8 --- /dev/null +++ b/tests/Resources/TranslationsTest.php @@ -0,0 +1,32 @@ +load($file, $locale, self::DOMAIN); + + $this->assertTrue($catalogue->has($key, self::DOMAIN), "Missing translation for '$key' in locale '$locale'."); + $this->assertNotEquals($key, $catalogue->get($key, self::DOMAIN)); + } +} diff --git a/tests/StartRegistration/EmailAddressTypeTest.php b/tests/StartRegistration/EmailAddressTypeTest.php index 7c510d4..b7f5148 100644 --- a/tests/StartRegistration/EmailAddressTypeTest.php +++ b/tests/StartRegistration/EmailAddressTypeTest.php @@ -152,6 +152,15 @@ public function provides_EmailAddress_if_submitted_with_valid_data() $this->assertEquals('webfactory@example.com', $emailAddress->getEmailAddress()); } + #[Test] + public function has_translatable_label() + { + $view = $this->form->createView(); + + $this->assertEquals('start.registration.label.email.address', $view['emailAddress']->vars['label']); + $this->assertEquals('webfactory-newsletter-registration', $view['emailAddress']->vars['translation_domain']); + } + protected function getExtensions(): array { return [ diff --git a/tests/StartRegistration/TypeTest.php b/tests/StartRegistration/TypeTest.php index 9bc6d2b..234f95b 100644 --- a/tests/StartRegistration/TypeTest.php +++ b/tests/StartRegistration/TypeTest.php @@ -86,6 +86,17 @@ public function view_contains_category_choice_element_if_there_is_more_than_one_ $this->assertEquals($this->category2->getName(), $categoriesVars['choices'][1]->label); } + #[Test] + public function category_choice_element_has_translatable_label(): void + { + $this->setUpTwoCategories(); + + $formView = $this->factory->create(StartRegistrationType::class)->createView(); + $categoriesVars = $formView->vars['form']->children[StartRegistrationType::ELEMENT_CATEGORIES]->vars; + $this->assertEquals('registration.label.categories', $categoriesVars['label']); + $this->assertEquals('webfactory-newsletter-registration', $categoriesVars['translation_domain']); + } + #[Test] public function does_not_validate_without_honeypot() {