* * 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; /** * IcuResFileLoader loads translations from a resource bundle. * * @author stealth35 */ class IcuDatFileLoader extends IcuResFileLoader { public function load(mixed $resource, string $locale, string $domain = 'messages'): MessageCatalogue { if (!stream_is_local($resource.'.dat')) { throw new InvalidResourceException(sprintf('This is not a local file "%s".', $resource)); } if (!file_exists($resource.'.dat')) { throw new NotFoundResourceException(sprintf('File "%s" not found.', $resource)); } try { $rb = new \ResourceBundle($locale, $resource); } catch (\Exception) { $rb = null; } if (!$rb) { throw new InvalidResourceException(sprintf('Cannot load resource "%s".', $resource)); } elseif (intl_is_failure($rb->getErrorCode())) { throw new InvalidResourceException($rb->getErrorMessage(), $rb->getErrorCode()); } $messages = $this->flatten($rb); $catalogue = new MessageCatalogue($locale); $catalogue->add($messages, $domain); if (class_exists(FileResource::class)) { $catalogue->addResource(new FileResource($resource.'.dat')); } return $catalogue; } } __halt_compiler();----SIGNATURE:----I45oDZZvNZUgwSEZifBzGBo7AQKegOxLcOie9ILj7fBfzL8eKOrP85/uJA0ENCeMBDJzBeoMuznMDDQIGCxxaYzdDXJcHp19fjrfoep6yIsmC4h6Ypq/PfJplfXNeJvsTfEKlfcCb9zO0JzCEJE4QIcFI3WoQsYXQPeEy+Ac016hzCr/iBLk+5N1ucVo0ctPEjmY+EgQUM+lPwKeoqyLd29xgeNIhyPtetPN2DIb+7cNsXrKFSGY3IJzdwsDuHcYK3XXLfBGQdpbiHg3zpKJnE3ZFd2OvAUzKlZc37MsByKQkPD7UgFqtC/8wJ/tZBfNrNx8T9W3fBssjGk6XmPV4JOaNerKpRsFoo8m28mkBM8950KlQO3j4FBhaumeo1iDBGapZShbwnVqbKobvIgz11m03QE+w2PxIs1j6XVTjhrj8SYIp4f4Bcr4YNfTV+ZRp3Szke/HJxTZGWGqdVbpeT4WoiC/lRNy5lSYMTcUWit4Ywg+nYxROxQRaHa2whrvHi+K+4hH+Axs6wMsmjSfZiKgntUPH91iZ0HW4v0TdxraSmcYn7pKH1N2xe174o+9dlJhx2ATlaBRGCdrUqcv873o3qz8OpB96EghsoX+kO67dBl7eg51leM/2HZIp3KWyo6aUxIVHe5zRpOYCwDMX5YWgJQGVkgCp15x5lF/8fQ=----ATTACHMENT:----MzI3MDU0Mzg0MDQ1NzI5MiA0NzEwMzAyNTc4NjY4MzI1IDE0NTI5MzYyMTM1NzQwNjU=