public static function addResources(Application $app, $locale)
{
// Directories to look for translation file(s)
$transDirs = array_unique([$app['resources']->getPath("app/resources/translations/{$locale}"), $app['resources']->getPath("root/app/resources/translations/{$locale}")]);
$needsSecondPass = true;
$resources = [];
foreach ($transDirs as $transDir) {
if (!is_dir($transDir) || !is_readable($transDir)) {
continue;
}
$iterator = new \DirectoryIterator($transDir);
/**
* @var \SplFileInfo $fileInfo
*/
foreach ($iterator as $fileInfo) {
$ext = Lib::getExtension((string) $fileInfo);
if (!$fileInfo->isFile() || !in_array($ext, ['yml', 'xlf'], true)) {
continue;
}
list($domain) = explode('.', $fileInfo->getFilename());
$resources[] = [$ext, $fileInfo->getRealPath(), $locale, $domain];
$needsSecondPass = false;
}
}
if ($needsSecondPass && strlen($locale) === 5) {
$resources = array_merge($resources, static::addResources($app, substr($locale, 0, 2)));
}
return $resources;
}