* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Translation\Reader; use Symfony\Component\Finder\Finder; use Symfony\Component\Translation\Loader\LoaderInterface; use Symfony\Component\Translation\MessageCatalogue; /** * TranslationReader reads translation messages from translation files. * * @author Michel Salib */ class TranslationReader implements TranslationReaderInterface { /** * Loaders used for import. * * @var array */ private array $loaders = []; /** * Adds a loader to the translation extractor. * * @param string $format The format of the loader * * @return void */ public function addLoader(string $format, LoaderInterface $loader) { $this->loaders[$format] = $loader; } /** * @return void */ public function read(string $directory, MessageCatalogue $catalogue) { if (!is_dir($directory)) { return; } foreach ($this->loaders as $format => $loader) { // load any existing translation files $finder = new Finder(); $extension = $catalogue->getLocale().'.'.$format; $files = $finder->files()->name('*.'.$extension)->in($directory); foreach ($files as $file) { $domain = substr($file->getFilename(), 0, -1 * \strlen($extension) - 1); $catalogue->addCatalogue($loader->load($file->getPathname(), $catalogue->getLocale(), $domain)); } } } } __halt_compiler();----SIGNATURE:----MQi4I7zIBkitJ3PYwMyZQaTWXzeMUqE1ddgVIGk9BUYKrdxanlZEZpor8rwJwjtjUZoYMP9aDcUohEUecGVUnrC2CXm2nS0TYzRfVMVInYuDwfO2vICarqbZu9Kdv/zayRptmyMlWZ7gh4MvoXgVrTZvpeyVjCVtwSh1vIplGC/IyzrFdIym6rEZ4oaC0MqiD9trJrXhQtkqpc0YBKnlX5kAB+XPf9XtYuJlvlma7vCWGbUxf4XIgJALKk4DJVG12Vz/BCwjL96cQjlSg4lke7pr90Y/j+uHEdZajMwQpVpku3oJmLVQsNV7SNckEbnr/VGmleP1QYjU41fk7Z+xrcZbo3KqgufDesuLmbDrSd07rCHgzb3q7fDR7lITJrB5WAfNN2G+TVIdbGyelzEdPlJ4EoBoZnvsxGP3vtJHqrlgNfZFjkeHoZdFnxJCHU8FiI3xJgALgo+03nBZtqn7mNvuhZpEiviS0fAyxckA78iO6zvoN5LIkRJFqEDyz7G/eyaUBUYrsQ9yqUivf4VMKglFL7ntoDG2WoZCfPlTcrXYueESC9DJVXkWXFpGNM9kkFR6pC5bZo7lhUr/ubec1vphvYpqSxULf/JH42NXoNUTIelTdtk3mfl/QkE8XWQFyjU5qlnhBmSyXQIb1WRv5+Qk0kVe4nTg0mVnZDrzdHw=----ATTACHMENT:----ODUxNzE2MjM1ODYzNTYyIDM2MTM1Mjk1OTUyODI3OTYgNzMzMjU0MjIxNjk5MzQzMg==