You are here

class IcuDatFileLoader in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 vendor/symfony/translation/Loader/IcuDatFileLoader.php \Symfony\Component\Translation\Loader\IcuDatFileLoader

IcuResFileLoader loads translations from a resource bundle.

@author stealth35

Hierarchy

Expanded class hierarchy of IcuDatFileLoader

1 file declares its use of IcuDatFileLoader
IcuDatFileLoaderTest.php in vendor/symfony/translation/Tests/Loader/IcuDatFileLoaderTest.php

File

vendor/symfony/translation/Loader/IcuDatFileLoader.php, line 24

Namespace

Symfony\Component\Translation\Loader
View source
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);
    if (class_exists('Symfony\\Component\\Config\\Resource\\FileResource')) {
      $catalogue
        ->addResource(new FileResource($resource . '.dat'));
    }
    return $catalogue;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
IcuDatFileLoader::load public function Loads a locale. Overrides IcuResFileLoader::load
IcuResFileLoader::flatten protected function Flattens an ResourceBundle.