From f68805dbcfa2991253b1b3080601aeb93d352b89 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Wed, 3 Aug 2022 11:57:59 +0200 Subject: [PATCH] [Translation] Fix reading intl-icu domains with LocoProvider --- .../Translation/Bridge/Loco/LocoProvider.php | 6 +++++- .../Bridge/Loco/Tests/LocoProviderTest.php | 12 ++++++------ 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/Symfony/Component/Translation/Bridge/Loco/LocoProvider.php b/src/Symfony/Component/Translation/Bridge/Loco/LocoProvider.php index ca2dad34168f1..3169c5252a542 100644 --- a/src/Symfony/Component/Translation/Bridge/Loco/LocoProvider.php +++ b/src/Symfony/Component/Translation/Bridge/Loco/LocoProvider.php @@ -123,8 +123,12 @@ public function read(array $domains, array $locales): TranslatorBag $this->logger->info(sprintf('No modifications found for locale "%s" and domain "%s" in Loco.', $locale, $domain)); $catalogue = new MessageCatalogue($locale); + $previousMessages = $previousCatalogue->all($domain); - foreach ($previousCatalogue->all($domain) as $key => $message) { + if (!str_ends_with($domain, $catalogue::INTL_DOMAIN_SUFFIX)) { + $previousMessages = array_diff_key($previousMessages, $previousCatalogue->all($domain.$catalogue::INTL_DOMAIN_SUFFIX)); + } + foreach ($previousMessages as $key => $message) { $catalogue->set($this->retrieveKeyFromId($key, $domain), $message, $domain); } diff --git a/src/Symfony/Component/Translation/Bridge/Loco/Tests/LocoProviderTest.php b/src/Symfony/Component/Translation/Bridge/Loco/Tests/LocoProviderTest.php index af6342d339d8a..d8678808d714c 100644 --- a/src/Symfony/Component/Translation/Bridge/Loco/Tests/LocoProviderTest.php +++ b/src/Symfony/Component/Translation/Bridge/Loco/Tests/LocoProviderTest.php @@ -458,9 +458,9 @@ public function getResponsesForOneLocaleAndOneDomain(): \Generator $expectedTranslatorBagEn->addCatalogue($arrayLoader->load([ 'index.hello' => 'Hello', 'index.greetings' => 'Welcome, {firstname}!', - ], 'en')); + ], 'en', 'messages+intl-icu')); - yield ['en', 'messages', <<<'XLIFF' + yield ['en', 'messages+intl-icu', <<<'XLIFF' @@ -468,7 +468,7 @@ public function getResponsesForOneLocaleAndOneDomain(): \Generator - + index.hello Hello @@ -488,9 +488,9 @@ public function getResponsesForOneLocaleAndOneDomain(): \Generator $expectedTranslatorBagFr->addCatalogue($arrayLoader->load([ 'index.hello' => 'Bonjour', 'index.greetings' => 'Bienvenue, {firstname} !', - ], 'fr')); + ], 'fr', 'messages+intl-icu')); - yield ['fr', 'messages', <<<'XLIFF' + yield ['fr', 'messages+intl-icu', <<<'XLIFF' @@ -498,7 +498,7 @@ public function getResponsesForOneLocaleAndOneDomain(): \Generator - + index.hello Bonjour