33
2
mirror of https://github.com/joomla-extensions/jedchecker.git synced 2024-12-29 04:42:36 +00:00

Support J4-style language file names

This commit is contained in:
Denis Ryabov 2021-03-09 23:42:18 +03:00
parent da42c8f0b6
commit 778ece5631

View File

@ -51,14 +51,21 @@ class JedcheckerRulesLanguage extends JEDcheckerRule
*/ */
public function check() public function check()
{ {
// Find all INI files of the extension (in the format tag.extension.ini or tag.extension.sys.ini) // Find all INI files of the extension
$files = JFolder::files($this->basedir, '^[a-z]{2,3}-[A-Z]{2}\.\w+(?:\.sys)?\.ini$', true, true); $files = JFolder::files($this->basedir, '\.ini$', true, true);
// Iterate through all the ini files // Iterate through all the ini files
foreach ($files as $file) foreach ($files as $file)
{ {
// Try to validate the file /* Language file format is either tag.extension.ini or tag.extension.sys.ini
$this->find($file); (where "tag" is a language code, e.g. en-GB, and "extension" is the extension element name, e.g. com_content)
Joomla!4 allows to skip tag prefix inside of the tag directory
(i.e. to name files as extension.ini and extension.sys.ini) */
if (preg_match('#(?:^|/)([a-z]{2,3}-[A-Z]{2})[./]\w+(?:\.sys)?\.ini$#', $file, $match))
{
// Try to validate the file
$this->find($file, $match[1]);
}
} }
} }
@ -66,10 +73,11 @@ class JedcheckerRulesLanguage extends JEDcheckerRule
* Reads and validates an ini file * Reads and validates an ini file
* *
* @param string $file - The path to the file * @param string $file - The path to the file
* @param string $tag - Language tag code
* *
* @return boolean True on success, otherwise False. * @return boolean True on success, otherwise False.
*/ */
protected function find($file) protected function find($file, $tag)
{ {
$lines = file($file); $lines = file($file);
$nLines = count($lines); $nLines = count($lines);