* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Intl\Data\Generator; use Symfony\Component\Intl\Data\Bundle\Reader\BundleReaderInterface; use Symfony\Component\Intl\Data\Bundle\Compiler\GenrbCompiler; use Symfony\Component\Intl\Data\Util\LocaleScanner; /** * The rule for compiling the script bundle. * * @author Bernhard Schussek * * @internal */ class ScriptDataGenerator extends AbstractDataGenerator { /** * Collects all available language codes. * * @var string[] */ private $scriptCodes = array(); /** * {@inheritdoc} */ protected function scanLocales(LocaleScanner $scanner, $sourceDir) { return $scanner->scanLocales($sourceDir.'/lang'); } /** * {@inheritdoc} */ protected function compileTemporaryBundles(GenrbCompiler $compiler, $sourceDir, $tempDir) { $compiler->compile($sourceDir.'/lang', $tempDir); } /** * {@inheritdoc} */ protected function preGenerate() { $this->scriptCodes = array(); } /** * {@inheritdoc} */ protected function generateDataForLocale(BundleReaderInterface $reader, $tempDir, $displayLocale) { $localeBundle = $reader->read($tempDir, $displayLocale); // isset() on \ResourceBundle returns true even if the value is null if (isset($localeBundle['Scripts']) && null !== $localeBundle['Scripts']) { $data = array( 'Version' => $localeBundle['Version'], 'Names' => iterator_to_array($localeBundle['Scripts']), ); $this->scriptCodes = array_merge($this->scriptCodes, array_keys($data['Names'])); return $data; } } /** * {@inheritdoc} */ protected function generateDataForRoot(BundleReaderInterface $reader, $tempDir) { } /** * {@inheritdoc} */ protected function generateDataForMeta(BundleReaderInterface $reader, $tempDir) { $rootBundle = $reader->read($tempDir, 'root'); $this->scriptCodes = array_unique($this->scriptCodes); sort($this->scriptCodes); return array( 'Version' => $rootBundle['Version'], 'Scripts' => $this->scriptCodes, ); } } __halt_compiler();----SIGNATURE:----WXLBDibLW0ybUyGOXPa5M/Y0lvK9Xj81Olznbcw45/ml4jOVuf5g22Ul59K95YtRvt9b7A72phCKtCGlvSDnTMAMwLW9hqgdSIBuEEgB2WMsJa6v8MHi9HJtLlkqrIppwdqoBK9FQMdSrk2E4PeW9q5vm71t+LMnxpuJZ0FemO1BcjJh1Q0MRLz30mndjyVUpFWTpCltdpwoDnLmtE1otqQJAJ0qIG8qE0F95qRNLxyseubTevtM1gxFkPHKieEvmp3Z4fe7/c/ZvmlvSFS3ISiQTqUel4K/VwqjElwlkGJ6mfy+ImwQe8jFTlqPvXWQCGzpYJv1kuOrBXlxUxx5jND8io1NKILPZ2yaXqqi0E/0e7s9xVuRDLqjk30YtaxEdbqp/B7aZbzfcGaFwNuZ7iErvDnOczEGFu/8Ld8qxP3JudY1srG+d7BfcdiLTDj8Y2npvP1XQJkClsBOTu28Cbs9k0Li7bfdP/fkVaxTjhQDzmXO3oRcuXpumE1AU6UEgu+wvoLl3kgWx+4xAUoAifGowKBxGa+/q1CZ0MmS72qQ48iquuAOV7rLUGD2VHQwPdunHeRAHXV0kUNOHD0n0Gx3+l1whFcpN24wB3HVLNF3vsXSwCkF3Mjz96Wc4d0CXsPJ0M7tqqfzT33lyNhPP3otyiJFEAZwT2sqUYHdk7s=----ATTACHMENT:----MjkyMzI1NDk0MTY3OTM5MCA4NDk3MTAxMTk5NzUwOTc2IDU1NTA1MjU2NTk2NjQ3NTM=