Example #1
0
 /**
  * Returns the translators collection instance. It can be used
  * for getting specific translators based of their name and locale
  * or to configure some aspect of future translations that are not yet constructed.
  *
  * @return \Aura\Intl\TranslatorLocator The translators collection.
  */
 public static function translators()
 {
     if (static::$_collection !== null) {
         return static::$_collection;
     }
     static::$_collection = new TranslatorRegistry(new PackageLocator(), new FormatterLocator(['sprintf' => function () {
         return new SprintfFormatter();
     }, 'default' => function () {
         return new IcuFormatter();
     }]), new TranslatorFactory(), static::locale());
     if (class_exists('Cake\\Cache\\Cache')) {
         static::$_collection->setCacher(Cache::engine('_cake_core_'));
     }
     return static::$_collection;
 }
 /**
  * Registers a new package by passing the register loaded function for the
  * package name.
  *
  * @param string $name The name of the translator package
  * @param string $locale The locale that should be built the package for
  * @return \Aura\Intl\TranslatorInterface A translator object.
  */
 protected function _getFromLoader($name, $locale)
 {
     $loader = $this->_loaders[$name]($name, $locale);
     $package = $loader;
     if (!is_callable($loader)) {
         $loader = function () use($package) {
             return $package;
         };
     }
     if ($name !== 'default') {
         $loader = function () use($loader) {
             $package = $loader();
             if (!$package->getFallback()) {
                 $package->setFallback('default');
             }
             return $package;
         };
     }
     $this->packages->set($name, $locale, $loader);
     return parent::get($name, $locale);
 }
Example #3
0
 /**
  * Registers a new package by passing the register loaded function for the
  * package name.
  *
  * @param string $name The name of the translator package
  * @param string $locale The locale that should be built the package for
  * @return \Aura\Intl\TranslatorInterface A translator object.
  */
 protected function _getFromLoader($name, $locale)
 {
     $loader = $this->_loaders[$name]($name, $locale);
     $package = $loader;
     if (!is_callable($loader)) {
         $loader = function () use($package) {
             return $package;
         };
     }
     $loader = $this->setLoaderFallback($name, $loader);
     $this->packages->set($name, $locale, $loader);
     return parent::get($name, $locale);
 }