protected function loadResourcesFromDirs($dirs) { $builder = $this->getContainerBuilder(); $config = $this->getConfig(); $whitelistRegexp = Kdyby\Translation\Translator::buildWhitelistRegexp($config['whitelist']); $translator = $builder->getDefinition($this->prefix('default')); foreach (array_keys($this->loaders) as $format) { foreach (Finder::findFiles('*.*.' . $format)->from($dirs) as $file) { /** @var \SplFileInfo $file */ if (!($m = Strings::match($file->getFilename(), '~^(?P<domain>.*?)\\.(?P<locale>[^\\.]+)\\.' . preg_quote($format) . '$~'))) { continue; } if ($whitelistRegexp && !preg_match($whitelistRegexp, $m['locale']) && $builder->parameters['productionMode']) { continue; // ignore in production mode, there is no need to pass the ignored resources } $this->validateResource($format, $file->getPathname(), $m['locale'], $m['domain']); $translator->addSetup('addResource', array($format, $file->getPathname(), $m['locale'], $m['domain'])); $builder->addDependency($file->getPathname()); } } }