* * 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\Yaml\Yaml; /** * YamlFileLoader loads translations from Yaml files. * * @author Fabien Potencier * * @api */ class YamlFileLoader extends ArrayLoader implements LoaderInterface { /** * {@inheritdoc} * * @api */ public function load($resource, $locale, $domain = 'messages') { $messages = Yaml::parse($resource); // empty file if (null === $messages) { $messages = array(); } // not an array if (!is_array($messages)) { throw new \InvalidArgumentException(sprintf('The file "%s" must contain a YAML array.', $resource)); } $catalogue = parent::load($messages, $locale, $domain); $catalogue->addResource(new FileResource($resource)); return $catalogue; } }