Ejemplo n.º 1
0
 /**
  * Creat new Translator instance.
  *
  * @param \Viserio\Contracts\Translation\MessageCatalogue $catalogue
  * @param \Viserio\Contracts\Translation\MessageSelector  $selector  The message selector for pluralization
  *
  * @throws \InvalidArgumentException If a locale contains invalid characters
  */
 public function __construct(MessageCatalogueContract $catalogue, MessageSelectorContract $selector)
 {
     $this->setLocale($catalogue->getLocale());
     $this->catalogue = $catalogue;
     $this->selector = $selector;
 }
Ejemplo n.º 2
0
 /**
  * Add message catalogue.
  *
  * @param \Viserio\Contracts\Translation\MessageCatalogue $messageCatalogue
  *
  * @return $this
  */
 public function addMessageCatalogue(MessageCatalogueContract $messageCatalogue) : TranslationManager
 {
     $locale = $messageCatalogue->getLocale();
     if ($fallback = $this->getLanguageFallback($messageCatalogue->getLocale())) {
         $messageCatalogue->addFallbackCatalogue($fallback);
     } elseif ($fallback = $this->defaultFallback) {
         $messageCatalogue->addFallbackCatalogue($fallback);
     }
     $translation = new Translator($messageCatalogue, $this->messageSelector);
     if ($this->logger !== null) {
         $translation->setLogger($this->logger);
     }
     $this->translations[$locale] = $translation;
     return $this;
 }
Ejemplo n.º 3
0
 /**
  * {@inheritdoc}
  */
 public function addFallbackCatalogue(MessageCatalogueContract $catalogue)
 {
     // detect circular references
     $circular = $this;
     do {
         if ($circular->getLocale() === $catalogue->getLocale()) {
             throw new LogicException(sprintf('Circular reference detected when adding a fallback catalogue for locale "%s".', $catalogue->getLocale()));
         }
     } while ($circular = $circular->parent);
     $catalogue->setParent($this);
     $this->fallbackCatalogue = $catalogue;
 }