/** * Index and register i18n string located in default properties which belongs to TranslatorTrait * classes. * * @param ClassLocatorInterface $locator */ public function indexClasses(ClassLocatorInterface $locator) { foreach ($locator->getClasses(TranslatorTrait::class) as $class => $options) { $reflection = new \ReflectionClass($class); $strings = $this->fetchStrings($reflection, $reflection->getConstant('INHERIT_TRANSLATIONS')); if (!empty($strings)) { $this->logger()->info("Found translation string(s) in class '{class}'.", ['class' => $reflection->getName()]); } foreach ($strings as $string) { $this->register($this->translator->resolveDomain($reflection->getName()), $string); } } $this->catalogue->saveDomains(); }
/** * Load catalogue data from source. * * @param string $locale * @return Catalogue */ protected function loadCatalogue($locale) { $catalogue = new Catalogue($locale, $this->memory); if (array_key_exists($locale, $this->loadedLocales) && $this->config->cacheLocales()) { //Has been loaded return $catalogue; } $benchmark = $this->benchmark('load', $locale); try { //Loading catalogue data from source foreach ($this->source->loadLocale($locale) as $messageCatalogue) { $catalogue->mergeFrom($messageCatalogue); } //To remember that locale already loaded $this->loadedLocales[$locale] = $catalogue->getDomains(); $this->memory->saveData(static::MEMORY, $this->loadedLocales); //Saving domains memory $catalogue->saveDomains(); } finally { $this->benchmark($benchmark); } return $catalogue; }