diff --git a/apps/e2e/config/packages/translation.yaml b/apps/e2e/config/packages/translation.yaml
index 490bfc2c29e..d23b79e7be8 100644
--- a/apps/e2e/config/packages/translation.yaml
+++ b/apps/e2e/config/packages/translation.yaml
@@ -1,5 +1,6 @@
framework:
default_locale: en
+ enabled_locales: ['en', 'fr']
translator:
default_path: '%kernel.project_dir%/translations'
providers:
diff --git a/apps/e2e/config/packages/ux_translator.yaml b/apps/e2e/config/packages/ux_translator.yaml
index 1c1c70608ce..06502e5e8db 100644
--- a/apps/e2e/config/packages/ux_translator.yaml
+++ b/apps/e2e/config/packages/ux_translator.yaml
@@ -1,3 +1,7 @@
ux_translator:
# The directory where the JavaScript translations are dumped
dump_directory: '%kernel.project_dir%/var/translations'
+
+ # The translation domains to include in the dump
+ domains:
+ - messages
diff --git a/apps/e2e/src/Controller/TranslatorController.php b/apps/e2e/src/Controller/TranslatorController.php
index c30ecc24254..0d3ecf2611c 100644
--- a/apps/e2e/src/Controller/TranslatorController.php
+++ b/apps/e2e/src/Controller/TranslatorController.php
@@ -9,11 +9,51 @@
#[Route('/ux-translator')]
final class TranslatorController extends AbstractController
{
- #[Route('/')]
- public function index(): Response
+ #[Route('/basic')]
+ public function basic(): Response
{
- return $this->render('ux_translator/index.html.twig', [
- 'controller_name' => 'TranslatorController',
- ]);
+ return $this->render('ux_translator/basic.html.twig');
+ }
+
+ #[Route('/with-parameter')]
+ public function withParameter(): Response
+ {
+ return $this->render('ux_translator/with_parameter.html.twig');
+ }
+
+ #[Route('/icu-select')]
+ public function icuSelect(): Response
+ {
+ return $this->render('ux_translator/icu_select.html.twig');
+ }
+
+ #[Route('/icu-plural')]
+ public function icuPlural(): Response
+ {
+ return $this->render('ux_translator/icu_plural.html.twig');
+ }
+
+ #[Route('/icu-selectordinal')]
+ public function icuSelectOrdinal(): Response
+ {
+ return $this->render('ux_translator/icu_selectordinal.html.twig');
+ }
+
+ #[Route('/icu-date-time')]
+ public function icuDateTime(): Response
+ {
+ return $this->render('ux_translator/icu_date_time.html.twig');
+ }
+
+ #[Route('/icu-number-percent')]
+ public function icuNumberPercent(): Response
+ {
+ return $this->render('ux_translator/icu_number_percent.html.twig');
+ }
+
+ #[Route('/icu-number-currency')]
+ public function icuNumberCurrency(): Response
+ {
+ return $this->render('ux_translator/icu_number_currency.html.twig');
}
}
diff --git a/apps/e2e/src/Repository/ExampleRepository.php b/apps/e2e/src/Repository/ExampleRepository.php
index fcd908ec20c..51f3e2a3f9b 100644
--- a/apps/e2e/src/Repository/ExampleRepository.php
+++ b/apps/e2e/src/Repository/ExampleRepository.php
@@ -43,6 +43,14 @@ public function __construct() {
new Example(UxPackage::Map, 'With rectangles (Google)', 'A map with two rectangles: one from Paris to Lille, the other from Lyon to Bordeaux', '/ux-map/with-rectangles?renderer=google'),
new Example(UxPackage::React, 'Basic React Component', 'A basic React component that displays a welcoming message', '/ux-react/'),
new Example(UxPackage::Svelte, 'Basic Svelte Component', 'A basic Svelte component that displays a welcoming message', '/ux-svelte/'),
+ new Example(UxPackage::Translator, 'Basic translation', 'A simple translation example using the Translator component', '/ux-translator/basic'),
+ new Example(UxPackage::Translator, 'Translation with parameter', 'Translation example with dynamic parameters', '/ux-translator/with-parameter'),
+ new Example(UxPackage::Translator, 'ICU Translation with `select` argument', 'ICU message format example using the `select` argument', '/ux-translator/icu-select'),
+ new Example(UxPackage::Translator, 'ICU Translation with `plural` argument', 'ICU message format example using the `plural` argument', '/ux-translator/icu-plural'),
+ new Example(UxPackage::Translator, 'ICU Translation with `selectordinal` argument', 'ICU message format example using the `selectordinal` argument', '/ux-translator/icu-selectordinal'),
+ new Example(UxPackage::Translator, 'ICU Translation with `date` and `time` arguments', 'ICU message format example using `date` and `time` arguments', '/ux-translator/icu-date-time'),
+ new Example(UxPackage::Translator, 'ICU Translation with `number` and `percent` arguments', 'ICU message format example using `number` and `percent` arguments', '/ux-translator/icu-number-percent'),
+ new Example(UxPackage::Translator, 'ICU Translation with `number` and `currency` arguments', 'ICU message format example using `number` and `currency` arguments', '/ux-translator/icu-number-currency'),
new Example(UxPackage::Vue, 'Basic Vue Component', 'A basic Vue component that displays a welcoming message', '/ux-vue/'),
];
}
diff --git a/apps/e2e/templates/ux_translator/basic.html.twig b/apps/e2e/templates/ux_translator/basic.html.twig
new file mode 100644
index 00000000000..476d2f335b6
--- /dev/null
+++ b/apps/e2e/templates/ux_translator/basic.html.twig
@@ -0,0 +1,29 @@
+{% extends 'example.html.twig' %}
+
+{% block example %}
+