* * 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:----Rc56TkdGlMVlsrMbtKEbe5LHfKxttlCGrfKW41aUWacj0N7LqLGBtpOHdCZ1wP88i2qi+r/wXz6S0l/cwUY42m638cFjgGQySyc78c2S5wtRzQFsZthfi/k0GbAxlA7cPwpeJ6jbryAtah/thPx/modXd7uPHlsx8cVQAk+Vu8bOdwf7Fe+oGLJDK3fOQax4J8oBBMwMbLyiOO2PcVelqPk8loBRsEaSQreIeU1l3IfXeudOmxYl9lNn0XEB6Q91Am5gOuVTCakX+oB0JGzp0On2YmXF6nxQHBHqCrkZPYJlDt1bcTl1ZRcgNHACccyERGAVbi5s8VyUe+XOWlGFtjXX3/CG9UrXf7AaT/VnerwgD+rxcLWV0eSeu4YeWbQOZjldGsxbnI0TfxR0b1e9+21utWaHsA5YukSryvIX53cMx8XoCLjAYJ9ktGRSa2fRi3y/sviX+wnSTH6bV8VvrP6r8S6OVLIhKfWsWxYved2qyb+2TQNUAiExBdvmNs57zUANJsSkECyoqgquIwfKlJ1mzKPUc1jgmIQZGLLh86w7+YAtm2oEZ385W6AsGTncI+7DtvMTjQ7NCCnVidTp6Evw+conG/hlL9dxlIuckJ+IN32ZIPkerRUmzRKUv3F34gDsaih5xI3JN5aVEIhObO4h0gOd/jkamK0PbjYAJgE=----ATTACHMENT:----NzcxNzAxMDE0ODM3NTM4MiAzMTg1OTEyNTcyNTE2MjI0IDY5NDYyMzIwODAwNzYwMDY=