From a24d12ee815ec40d6f27c4e7acb79ade649e4f4a Mon Sep 17 00:00:00 2001 From: Craig Williams Date: Tue, 13 Jan 2026 17:00:23 +0000 Subject: [PATCH] Override the locale string UF provides to a legal language identifier [ZN-MDD-14] --- src/ServicesProvider/ServicesProvider.php | 2 + src/Twig/LocaleOverrideExtension.php | 52 +++++++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 src/Twig/LocaleOverrideExtension.php diff --git a/src/ServicesProvider/ServicesProvider.php b/src/ServicesProvider/ServicesProvider.php index d551c4a..87ed700 100644 --- a/src/ServicesProvider/ServicesProvider.php +++ b/src/ServicesProvider/ServicesProvider.php @@ -18,6 +18,7 @@ use Psr\Http\Message\ResponseInterface as Response; use Psr\Http\Message\ServerRequestInterface as Request; use UserFrosting\Sprinkle\Core\Log\MixedFormatter; use UserFrosting\Sprinkle\UFTweaks\Twig\HasRoleExtension; +use UserFrosting\Sprinkle\UFTweaks\Twig\LocaleOverrideExtension; use UserFrosting\Sprinkle\UFTweaks\Twig\MobileDetectExtension; use UserFrosting\Sprinkle\UFTweaks\Mail\RetryMailer; @@ -185,6 +186,7 @@ class ServicesProvider $twig->addExtension(new HasRoleExtension($c)); $twig->addExtension(new MobileDetectExtension($c)); + $twig->addExtension(new LocaleOverrideExtension($c)); return $view; }); diff --git a/src/Twig/LocaleOverrideExtension.php b/src/Twig/LocaleOverrideExtension.php new file mode 100644 index 0000000..063ded5 --- /dev/null +++ b/src/Twig/LocaleOverrideExtension.php @@ -0,0 +1,52 @@ +services = $services; + } + + /** + * Adds Twig global variable 'currentLocale' + * + * @return array[mixed] + */ + public function getGlobals(): array + { + $locale = $this->services->locale->getLocaleIndentifier(); + $parts = explode('_', $locale) ?: []; + return [ + 'currentLocale' => $parts[0] + ]; + } +}