/** * @param Validation $validation * @param bool $jsValidation * @param \Silex\Translator $translator */ public function __construct($validation, $jsValidation = false, $translator) { $errorOptions = array(); if ($validation->getMessage()) { $errorOptions = array_merge($errorOptions, array('message' => $translator->trans($validation->getMessage()))); } $this->jsValidation = $jsValidation; $this->validation = $validation; $this->constrain = new Assert\Email($errorOptions); }
/** * @param Validation $validation * @param bool $jsValidation * @param \Silex\Translator $translator */ public function __construct($validation, $jsValidation = false, $translator) { $this->validation = $validation; $this->constrain = new Assert\NotBlank(array('message' => $translator->trans($this->validation->getMessage()))); $this->jsValidation = $jsValidation; if ($jsValidation) { $this->options['attr'] = array(); $this->options['attr']['ng-required'] = 'true'; } $this->options = array_merge($this->options, array('required' => $this->validation->getValue())); }
public static function compareTotalTranslations(\Silex\Translator $translator, $locale1, $locale2) { $catalogue1 = $translator->getCatalogue($locale1)->all(); $catalogue2 = $translator->getCatalogue($locale2)->all(); $size1 = $size2 = 0; foreach ($catalogue1 as $domain => $translations) { $size1 += sizeof($translations); } foreach ($catalogue2 as $domain => $translations) { $size2 += sizeof($translations); } return $size1 - $size2; }
/** * @param Validation $validation * @param bool $jsValidation * @param \Silex\Translator $translator */ public function __construct($validation, $jsValidation = false, $translator) { $errorOptions = array('type' => 'integer'); if ($validation->getMessage()) { $errorOptions = array_merge($errorOptions, array('message' => $translator->trans($validation->getMessage()))); } if ($jsValidation) { $this->options['attr'] = array('data-mask' => $validation->getValue(), 'ng-pattern' => '/\\d/'); } $this->jsValidation = $jsValidation; $this->validation = $validation; $this->constrain = new Assert\Type($errorOptions); }
/** * @param Validation $validation * @param bool $jsValidation * @param \Silex\Translator $translator */ public function __construct($validation, $jsValidation = false, $translator) { $errorOptions = array('min' => $validation->getValue()); if ($validation->getMessage()) { $errorOptions = array_merge($errorOptions, array('minMessage' => $translator->trans($validation->getMessage()))); } if ($jsValidation) { $this->options['attr'] = array(); $this->options['attr']['ng-minlength'] = $validation->getValue(); } $this->jsValidation = $jsValidation; $this->validation = $validation; $this->constrain = new Assert\Length($errorOptions); }
public function register(Application $app) { $app['translator'] = $app->share(function ($app) { $translator = new Translator($app, $app['translator.message_selector'], $app['translator.cache_dir'], $app['debug']); // Handle deprecated 'locale_fallback' if (isset($app['locale_fallback'])) { $app['locale_fallbacks'] = (array) $app['locale_fallback']; } $translator->setFallbackLocales($app['locale_fallbacks']); $translator->addLoader('array', new ArrayLoader()); $translator->addLoader('xliff', new XliffFileLoader()); // Register default resources foreach ($app['translator.resources'] as $resource) { $translator->addResource($resource[0], $resource[1], $resource[2], $resource[3]); } foreach ($app['translator.domains'] as $domain => $data) { foreach ($data as $locale => $messages) { $translator->addResource('array', $messages, $locale, $domain); } } return $translator; }); $app['translator.resources'] = function ($app) { return array(); }; $app['translator.message_selector'] = $app->share(function () { return new MessageSelector(); }); $app['translator.domains'] = array(); $app['locale_fallbacks'] = array('en'); $app['translator.cache_dir'] = null; }
public function register(Application $app) { $app['translator'] = $app->share(function ($app) { $translator = new Translator($app, $app['translator.message_selector'], $app['translator.cache_dir'], $app['debug']); // Handle deprecated 'locale_fallback' if (isset($app['locale_fallback'])) { $app['locale_fallbacks'] = (array) $app['locale_fallback']; } $translator->setFallbackLocales($app['locale_fallbacks']); $translator->addLoader('array', new ArrayLoader()); $translator->addLoader('xliff', new XliffFileLoader()); if (isset($app['validator'])) { $r = new \ReflectionClass('Symfony\\Component\\Validator\\Validation'); $file = dirname($r->getFilename()) . '/Resources/translations/validators.' . $app['locale'] . '.xlf'; if (file_exists($file)) { $translator->addResource('xliff', $file, $app['locale'], 'validators'); } } if (isset($app['form.factory'])) { $r = new \ReflectionClass('Symfony\\Component\\Form\\Form'); $file = dirname($r->getFilename()) . '/Resources/translations/validators.' . $app['locale'] . '.xlf'; if (file_exists($file)) { $translator->addResource('xliff', $file, $app['locale'], 'validators'); } } // Register default resources foreach ($app['translator.resources'] as $resource) { $translator->addResource($resource[0], $resource[1], $resource[2], $resource[3]); } foreach ($app['translator.domains'] as $domain => $data) { foreach ($data as $locale => $messages) { $translator->addResource('array', $messages, $locale, $domain); } } return $translator; }); $app['translator.resources'] = function ($app) { return array(); }; $app['translator.message_selector'] = $app->share(function () { return new MessageSelector(); }); $app['translator.domains'] = array(); $app['locale_fallbacks'] = array('en'); $app['translator.cache_dir'] = null; }
/** * {@inheritdoc} */ protected function loadCatalogue($locale) { if (isset($this->catalogues[$locale])) { return; } if (is_callable($this->options['cache_dir'])) { $cache_dir = call_user_func($this->options['cache_dir'], $this->app); } else { $cache_dir = $this->options['cache_dir']; } if (null === $cache_dir) { return parent::loadCatalogue($locale); } $cache = new ConfigCache($cache_dir . '/catalogue.' . $locale . '.php', $this->options['debug']); if (!$cache->isFresh()) { parent::loadCatalogue($locale); $fallbackContent = ''; $current = ''; foreach ($this->computeFallbackLocales($locale) as $fallback) { $fallbackSuffix = ucfirst(str_replace('-', '_', $fallback)); $fallbackContent .= sprintf(<<<EOF \$catalogue%s = new MessageCatalogue('%s', %s); \$catalogue%s->addFallbackCatalogue(\$catalogue%s); EOF , $fallbackSuffix, $fallback, var_export($this->catalogues[$fallback]->all(), true), ucfirst(str_replace('-', '_', $current)), $fallbackSuffix); $current = $fallback; } $content = sprintf(<<<EOF <?php use Symfony\\Component\\Translation\\MessageCatalogue; \$catalogue = new MessageCatalogue('%s', %s); %s return \$catalogue; EOF , $locale, var_export($this->catalogues[$locale]->all(), true), $fallbackContent); $cache->write($content, $this->catalogues[$locale]->getResources()); return; } $this->catalogues[$locale] = (include $cache); }