diff --git a/cli/updates_xml_build.php b/cli/updates_xml_build.php index 681f639..a74bcf0 100644 --- a/cli/updates_xml_build.php +++ b/cli/updates_xml_build.php @@ -200,22 +200,30 @@ if ($manifest !== null) { $targetPlatform = ""; } -// Resolve language key names (e.g. PLG_SYSTEM_MOKOJOOMTOS) -if (preg_match('/^[A-Z_]+$/', $extName)) { - $iniFiles = []; - $iterator = new RecursiveIteratorIterator( - new RecursiveDirectoryIterator($root, RecursiveDirectoryIterator::SKIP_DOTS) - ); - foreach ($iterator as $file) { - if (preg_match('/\.sys\.ini$/i', $file->getFilename())) { - $iniFiles[] = $file->getPathname(); - } +// Resolve display name from .sys.ini language files +$iniFiles = []; +$langIterator = new RecursiveIteratorIterator( + new RecursiveDirectoryIterator($root, RecursiveDirectoryIterator::SKIP_DOTS) +); +foreach ($langIterator as $file) { + if (preg_match('/\.sys\.ini$/i', $file->getFilename())) { + $iniFiles[] = $file->getPathname(); } - foreach ($iniFiles as $ini) { - $content = file_get_contents($ini); - if (preg_match('/^' . preg_quote($extName, '/') . '="([^"]+)"/m', $content, $m)) { +} +$keyCandidates = [$extName]; +if (!preg_match('/^[A-Z_]+$/', $extName)) { + $upper = strtoupper(str_replace([' ', '-'], '_', $extName)); + $keyCandidates[] = "TPL_{$upper}"; + $keyCandidates[] = "MOD_{$upper}"; + $keyCandidates[] = "COM_{$upper}"; + $keyCandidates[] = "PLG_{$upper}"; +} +foreach ($iniFiles as $ini) { + $content = file_get_contents($ini); + foreach ($keyCandidates as $key) { + if (preg_match('/^' . preg_quote($key, '/') . '="([^"]+)"/m', $content, $m)) { $extName = $m[1]; - break; + break 2; } } }