* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Translation\Loader; use Symfony\Component\Config\Resource\FileResource; use Symfony\Component\Translation\Exception\InvalidResourceException; use Symfony\Component\Translation\Exception\NotFoundResourceException; use Symfony\Component\Translation\MessageCatalogue; /** * @author Abdellatif Ait boudad */ abstract class FileLoader extends ArrayLoader { public function load(mixed $resource, string $locale, string $domain = 'messages'): MessageCatalogue { if (!stream_is_local($resource)) { throw new InvalidResourceException(sprintf('This is not a local file "%s".', $resource)); } if (!file_exists($resource)) { throw new NotFoundResourceException(sprintf('File "%s" not found.', $resource)); } $messages = $this->loadResource($resource); // empty resource $messages ??= []; // not an array if (!\is_array($messages)) { throw new InvalidResourceException(sprintf('Unable to load file "%s".', $resource)); } $catalogue = parent::load($messages, $locale, $domain); if (class_exists(FileResource::class)) { $catalogue->addResource(new FileResource($resource)); } return $catalogue; } /** * @throws InvalidResourceException if stream content has an invalid format */ abstract protected function loadResource(string $resource): array; } __halt_compiler();----SIGNATURE:----QPr/1koJ9G8VtEZCUqRxlIZi+plL0nnhzCP5cJ06Qrzq11DPICPHJfDyvLtVq4PqFNlualXm7E3Z6I8fQJaN1QU8AHa0GoHmPRn6uPU0J6eUcHLPQrfm6+a5FZnr9w5KOn9abBQqXVoJCA85ikN5JlvGoykyxA7Yx9q71a8SnXfTgdqG6RafNnqs1w54yNSvgj4ME0KoMV69X/xGQS1D49sJQ2+hIxp/uAtDsqvWeVQN2qShGvO9/heTloRXvd4RYRT2sBHHbXImV2+DBf9jWSs83ljh2eM5Ozji/KDxx6v5TY6kKeiPTn9FTXwVa3n4eWG6XWuJNjKpJOqXc1ALszyGmZz4CDEablvOQyWdWgQnvZ3Az6+Rsgd/JSdXKzLq+1TBd4HaKJwTHYyOjojTrFkXXTaG79ppN+De8uwKehe+sN0z3tOG1kisWHTZxaRZg45cfN7iqJgGczGL08wT1eZ3g/vg3ZCYaWjVj2bgcgadZPdAPV5d4EGQ5zkKL5BiKpN2li2K49kYg14Gy8NFjuSpf8dXIbmQ9fm29/u2rYF1RwDSgkKamF2zt0BAh4ZOtJPpkwVw2JHVFaTWoj8jOpGOFVBxRAhvrCCIFX17hB6TBpNUIPI1hWUz3jJd7s0vZAvcFCw0Z6haT9NlnJvhTpW+GSxGrXYz/2fvxqy8QxA=----ATTACHMENT:----MTQyODE0MDcwMzcwMTc2MyAzMTg5Mzg1NzUwODc3ODk5IDg5MTQ0NjcxMDQzMjMyMzM=