/** * {@inheritdoc} */ public function load($resource, $locale, $domain = 'messages') { $messageCatalogue = $this->loader->load($resource, $locale, $domain); $theme = $this->themeRepository->findOneByPath($resource); if (null !== $theme) { $messages = $messageCatalogue->all($domain); foreach ($messages as $key => $value) { unset($messages[$key]); $messages[$key . '|' . $theme->getSlug()] = $value; } $messageCatalogue->replace($messages, $domain); } return $messageCatalogue; }
function it_adds_theme_name_to_keys_if_given_file_is_included_in_theme(LoaderInterface $loader, ThemeRepositoryInterface $themeRepository, MessageCatalogueInterface $messageCatalogue, ThemeInterface $theme) { $loader->load('/theme/resource.en.xml', 'en', 'messages')->willReturn($messageCatalogue); $themeRepository->findOneByPath('/theme/resource.en.xml')->willReturn($theme); $theme->getName()->willReturn('sylius/sample-theme'); $messageCatalogue->all('messages')->willReturn(['key' => 'value']); $messageCatalogue->replace(['key|sylius/sample-theme' => 'value'], 'messages')->shouldBeCalled(); $this->load('/theme/resource.en.xml', 'en', 'messages')->shouldReturn($messageCatalogue); }