You are here

public function YamlFileLoader::load in Zircon Profile 8.0

Same name in this branch
  1. 8.0 vendor/symfony/routing/Loader/YamlFileLoader.php \Symfony\Component\Routing\Loader\YamlFileLoader::load()
  2. 8.0 vendor/symfony/translation/Loader/YamlFileLoader.php \Symfony\Component\Translation\Loader\YamlFileLoader::load()
  3. 8.0 vendor/symfony/dependency-injection/Loader/YamlFileLoader.php \Symfony\Component\DependencyInjection\Loader\YamlFileLoader::load()
  4. 8.0 core/lib/Drupal/Core/DependencyInjection/YamlFileLoader.php \Drupal\Core\DependencyInjection\YamlFileLoader::load()
Same name and namespace in other branches
  1. 8 vendor/symfony/translation/Loader/YamlFileLoader.php \Symfony\Component\Translation\Loader\YamlFileLoader::load()

Loads a locale.

Parameters

mixed $resource A resource:

string $locale A locale:

string $domain The domain:

Return value

MessageCatalogue A MessageCatalogue instance

Throws

NotFoundResourceException when the resource cannot be found

InvalidResourceException when the resource cannot be loaded

Overrides ArrayLoader::load

File

vendor/symfony/translation/Loader/YamlFileLoader.php, line 32

Class

YamlFileLoader
YamlFileLoader loads translations from Yaml files.

Namespace

Symfony\Component\Translation\Loader

Code

public function load($resource, $locale, $domain = 'messages') {
  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));
  }
  if (!class_exists('Symfony\\Component\\Yaml\\Parser')) {
    throw new \LogicException('Loading translations from the YAML format requires the Symfony Yaml component.');
  }
  if (null === $this->yamlParser) {
    $this->yamlParser = new YamlParser();
  }
  try {
    $messages = $this->yamlParser
      ->parse(file_get_contents($resource));
  } catch (ParseException $e) {
    throw new InvalidResourceException(sprintf('Error parsing YAML, invalid file "%s"', $resource), 0, $e);
  }

  // empty file
  if (null === $messages) {
    $messages = array();
  }

  // not an array
  if (!is_array($messages)) {
    throw new InvalidResourceException(sprintf('The file "%s" must contain a YAML array.', $resource));
  }
  $catalogue = parent::load($messages, $locale, $domain);
  if (class_exists('Symfony\\Component\\Config\\Resource\\FileResource')) {
    $catalogue
      ->addResource(new FileResource($resource));
  }
  return $catalogue;
}