* * 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:----TdgFd3AGYyF06knMAUYBFCRfOg8sNxx85EoRZdDvl4qOT834PW36rhkWBD9YdnQhHkxoETY4VIAxSc/orSlbQZAJbFIdbf4o66FVHaN9xaAkjrjTasBaoOomOiwgPjK00QDnlpfHCq76Zj2WMbwc8CSsy6CQ5KnYkBQ8Ugr27+/sBDgPXuH+bcHLFxL32nJdekiE2e6J74t/6P3RvRZ8wdHYzSpDnCAWkw0cKNNR3i0tdtEXD+ct/1kqAyWFzpo/Olq8nGeezyixbJI3jo3xUJ9+h+WgN+bSXL/qATXZw/UZ32KTwi5o8sRXEYRMPEH56dUW2uXfFU9TN2ojgysyqlQ3N0fUF0bp5c7THxg28HIoswdIxC59Xn36WbGjCyKiU+dFaIUPJ8Hbd3z94KS7xVc9skNNSbyW2sEfuBv492h/6DMHB/shytF69NYuREXjlCo01CW0h6yBn/K3oQ5kEHq4SX+xHK+5WMhyJLs2hoZeoPqKvAug2vI1mFbi722EWOKagbds0OpEZNchIb6wBvtF7IemMws/hjlYNAMQG8HdqDcuR2xHCyfBs6TevMt3v5YsDqcadnuOnC0KC4+iDf+GalGUcwSiEg+xI5uS8iICow2iMF0+NI4cTqzozN4Roaa8OS3NX6lTdUWe9wkW5bk/J9TAQQWwpDWxt75MV/c=----ATTACHMENT:----Mjg1NjgxNDEwMDI4NDkxNCAxNDY1NzcwMTM2NTUzOTU3IDY4NzQ2ODA2MzUwOTYyNDQ=