Beispiel #1
0
 /**
  * @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);
 }
Beispiel #2
0
 /**
  * @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;
 }
Beispiel #4
0
 /**
  * @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);
 }
Beispiel #5
0
 /**
  * @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);
    }