diff options
Diffstat (limited to 'Aufgabe06/vendor/symfony/translation/Symfony/Component/Translation/Loader/IcuDatFileLoader.php')
| -rw-r--r-- | Aufgabe06/vendor/symfony/translation/Symfony/Component/Translation/Loader/IcuDatFileLoader.php | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/Aufgabe06/vendor/symfony/translation/Symfony/Component/Translation/Loader/IcuDatFileLoader.php b/Aufgabe06/vendor/symfony/translation/Symfony/Component/Translation/Loader/IcuDatFileLoader.php new file mode 100644 index 0000000..a36cd76 --- /dev/null +++ b/Aufgabe06/vendor/symfony/translation/Symfony/Component/Translation/Loader/IcuDatFileLoader.php @@ -0,0 +1,59 @@ +<?php + +/* + * This file is part of the Symfony package. + * + * (c) Fabien Potencier <fabien@symfony.com> + * + * 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\Translation\MessageCatalogue; +use Symfony\Component\Translation\Exception\InvalidResourceException; +use Symfony\Component\Translation\Exception\NotFoundResourceException; +use Symfony\Component\Config\Resource\FileResource; + +/** + * IcuResFileLoader loads translations from a resource bundle. + * + * @author stealth35 + */ +class IcuDatFileLoader extends IcuResFileLoader +{ + /** + * {@inheritdoc} + */ + public function load($resource, $locale, $domain = 'messages') + { + 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 $e) { + // HHVM compatibility: constructor throws on invalid resource + $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); + $catalogue->addResource(new FileResource($resource.'.dat')); + + return $catalogue; + } +} |
