Source of file TranslationLoader.php
Size: 1,848 Bytes - Last Modified: 2013-07-17T08:22:21+02:00
/home/theseer/Downloads/Symfony/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Translation/TranslationLoader.php
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 | <?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\Bundle\FrameworkBundle\Translation; use Symfony\Component\Finder\Finder; use Symfony\Component\Translation\MessageCatalogue; use Symfony\Component\Translation\Loader\LoaderInterface; /** * TranslationLoader loads translation messages from translation files. * * @author Michel Salib <michelsalib@hotmail.com> */ class TranslationLoader { /** * Loaders used for import. * * @var array */ private $loaders = array(); /** * Adds a loader to the translation extractor. * @param string $format The format of the loader * @param LoaderInterface $loader */ public function addLoader($format, LoaderInterface $loader) { $this->loaders[$format] = $loader; } /** * Loads translation messages from a directory to the catalogue. * * @param string $directory the directory to look into * @param MessageCatalogue $catalogue the catalogue */ public function loadMessages($directory, MessageCatalogue $catalogue) { foreach ($this->loaders as $format => $loader) { // load any existing translation files $finder = new Finder(); $extension = $catalogue->getLocale().'.'.$format; $files = $finder->files()->name('*.'.$extension)->in($directory); foreach ($files as $file) { $domain = substr($file->getFileName(), 0, -1 * strlen($extension) - 1); $catalogue->addCatalogue($loader->load($file->getPathname(), $catalogue->getLocale(), $domain)); } } } } |