diff --git a/dictionaries/ui/layouts/navigation-menu/cs.dictionary.itop.navigation-menu.php b/dictionaries/ui/layouts/navigation-menu/cs.dictionary.itop.navigation-menu.php index 43e862073..4974e03e6 100644 --- a/dictionaries/ui/layouts/navigation-menu/cs.dictionary.itop.navigation-menu.php +++ b/dictionaries/ui/layouts/navigation-menu/cs.dictionary.itop.navigation-menu.php @@ -25,7 +25,7 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'UI:Layout:NavigationMenu:MenuFilter:Input:Placeholder' => 'Filter...~~', 'UI:Layout:NavigationMenu:MenuFilter:Input:Tooltip' => 'Type your keywords to filter menus~~', 'UI:Layout:NavigationMenu:MenuFilter:Input:Hint' => 'Matches from all menu groups will be displayed~~', - 'UI:Layout:NavigationMenu:MenuFilter:Placeholder:Hint' => 'No result for this menu filter~~', + 'UI:Layout:NavigationMenu:MenuFilter:Placeholder:Hint' => 'Seems like there is no matching menu~~', 'UI:Layout:NavigationMenu:UserInfo:WelcomeMessage:Text' => 'Hi %1$s!~~', 'UI:Layout:NavigationMenu:UserInfo:Picture:AltText' => '%1$s\'s contact picture~~', 'UI:Layout:NavigationMenu:UserMenu:Toggler:Label' => 'Open user menu~~', diff --git a/dictionaries/ui/layouts/navigation-menu/da.dictionary.itop.navigation-menu.php b/dictionaries/ui/layouts/navigation-menu/da.dictionary.itop.navigation-menu.php index 29260c9e1..00dd6e813 100644 --- a/dictionaries/ui/layouts/navigation-menu/da.dictionary.itop.navigation-menu.php +++ b/dictionaries/ui/layouts/navigation-menu/da.dictionary.itop.navigation-menu.php @@ -25,7 +25,7 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'UI:Layout:NavigationMenu:MenuFilter:Input:Placeholder' => 'Filter...~~', 'UI:Layout:NavigationMenu:MenuFilter:Input:Tooltip' => 'Type your keywords to filter menus~~', 'UI:Layout:NavigationMenu:MenuFilter:Input:Hint' => 'Matches from all menu groups will be displayed~~', - 'UI:Layout:NavigationMenu:MenuFilter:Placeholder:Hint' => 'No result for this menu filter~~', + 'UI:Layout:NavigationMenu:MenuFilter:Placeholder:Hint' => 'Seems like there is no matching menu~~', 'UI:Layout:NavigationMenu:UserInfo:WelcomeMessage:Text' => 'Hi %1$s!~~', 'UI:Layout:NavigationMenu:UserInfo:Picture:AltText' => '%1$s\'s contact picture~~', 'UI:Layout:NavigationMenu:UserMenu:Toggler:Label' => 'Open user menu~~', diff --git a/dictionaries/ui/layouts/navigation-menu/fr.dictionary.itop.navigation-menu.php b/dictionaries/ui/layouts/navigation-menu/fr.dictionary.itop.navigation-menu.php index 5f402d171..3f69d3253 100644 --- a/dictionaries/ui/layouts/navigation-menu/fr.dictionary.itop.navigation-menu.php +++ b/dictionaries/ui/layouts/navigation-menu/fr.dictionary.itop.navigation-menu.php @@ -21,7 +21,7 @@ Dict::Add('FR FR', 'French', 'Français', array( 'UI:Layout:NavigationMenu:CompanyLogo:AltText' => 'Logo entreprise', 'UI:Layout:NavigationMenu:Silo:Label' => 'Selectionnez l\'organisation sur laquelle filtrer', 'UI:Layout:NavigationMenu:Toggler:Tooltip' => 'Déplier / Replier', - 'UI:Layout:NavigationMenu:Toggler:TooltipWithSiloLabel' => 'Déplier / Replier (Filtré sur %1$s)~~', + 'UI:Layout:NavigationMenu:Toggler:TooltipWithSiloLabel' => 'Déplier / Replier (Filtré sur %1$s)', 'UI:Layout:NavigationMenu:MenuFilter:Input:Placeholder' => 'Filtrer...', 'UI:Layout:NavigationMenu:MenuFilter:Input:Tooltip' => 'Saisir des mots-clés pour filtrer les menus', 'UI:Layout:NavigationMenu:MenuFilter:Input:Hint' => 'Les correspondances dans chaque groupe de menu seront affichées', diff --git a/dictionaries/ui/layouts/navigation-menu/it.dictionary.itop.navigation-menu.php b/dictionaries/ui/layouts/navigation-menu/it.dictionary.itop.navigation-menu.php index 0b5aec9ef..27eaaf76c 100644 --- a/dictionaries/ui/layouts/navigation-menu/it.dictionary.itop.navigation-menu.php +++ b/dictionaries/ui/layouts/navigation-menu/it.dictionary.itop.navigation-menu.php @@ -25,7 +25,7 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'UI:Layout:NavigationMenu:MenuFilter:Input:Placeholder' => 'Filter...~~', 'UI:Layout:NavigationMenu:MenuFilter:Input:Tooltip' => 'Type your keywords to filter menus~~', 'UI:Layout:NavigationMenu:MenuFilter:Input:Hint' => 'Matches from all menu groups will be displayed~~', - 'UI:Layout:NavigationMenu:MenuFilter:Placeholder:Hint' => 'No result for this menu filter~~', + 'UI:Layout:NavigationMenu:MenuFilter:Placeholder:Hint' => 'Seems like there is no matching menu~~', 'UI:Layout:NavigationMenu:UserInfo:WelcomeMessage:Text' => 'Hi %1$s!~~', 'UI:Layout:NavigationMenu:UserInfo:Picture:AltText' => '%1$s\'s contact picture~~', 'UI:Layout:NavigationMenu:UserMenu:Toggler:Label' => 'Open user menu~~', diff --git a/dictionaries/ui/layouts/navigation-menu/ja.dictionary.itop.navigation-menu.php b/dictionaries/ui/layouts/navigation-menu/ja.dictionary.itop.navigation-menu.php index 1c9ce8ec0..3cc7b0ef7 100644 --- a/dictionaries/ui/layouts/navigation-menu/ja.dictionary.itop.navigation-menu.php +++ b/dictionaries/ui/layouts/navigation-menu/ja.dictionary.itop.navigation-menu.php @@ -25,7 +25,7 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'UI:Layout:NavigationMenu:MenuFilter:Input:Placeholder' => 'Filter...~~', 'UI:Layout:NavigationMenu:MenuFilter:Input:Tooltip' => 'Type your keywords to filter menus~~', 'UI:Layout:NavigationMenu:MenuFilter:Input:Hint' => 'Matches from all menu groups will be displayed~~', - 'UI:Layout:NavigationMenu:MenuFilter:Placeholder:Hint' => 'No result for this menu filter~~', + 'UI:Layout:NavigationMenu:MenuFilter:Placeholder:Hint' => 'Seems like there is no matching menu~~', 'UI:Layout:NavigationMenu:UserInfo:WelcomeMessage:Text' => 'Hi %1$s!~~', 'UI:Layout:NavigationMenu:UserInfo:Picture:AltText' => '%1$s\'s contact picture~~', 'UI:Layout:NavigationMenu:UserMenu:Toggler:Label' => 'Open user menu~~', diff --git a/dictionaries/ui/layouts/navigation-menu/sk.dictionary.itop.navigation-menu.php b/dictionaries/ui/layouts/navigation-menu/sk.dictionary.itop.navigation-menu.php index b926cf72f..d2dbabac6 100644 --- a/dictionaries/ui/layouts/navigation-menu/sk.dictionary.itop.navigation-menu.php +++ b/dictionaries/ui/layouts/navigation-menu/sk.dictionary.itop.navigation-menu.php @@ -25,7 +25,7 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'UI:Layout:NavigationMenu:MenuFilter:Input:Placeholder' => 'Filter...~~', 'UI:Layout:NavigationMenu:MenuFilter:Input:Tooltip' => 'Type your keywords to filter menus~~', 'UI:Layout:NavigationMenu:MenuFilter:Input:Hint' => 'Matches from all menu groups will be displayed~~', - 'UI:Layout:NavigationMenu:MenuFilter:Placeholder:Hint' => 'No result for this menu filter~~', + 'UI:Layout:NavigationMenu:MenuFilter:Placeholder:Hint' => 'Seems like there is no matching menu~~', 'UI:Layout:NavigationMenu:UserInfo:WelcomeMessage:Text' => 'Hi %1$s!~~', 'UI:Layout:NavigationMenu:UserInfo:Picture:AltText' => '%1$s\'s contact picture~~', 'UI:Layout:NavigationMenu:UserMenu:Toggler:Label' => 'Open user menu~~', diff --git a/dictionaries/ui/layouts/navigation-menu/tr.dictionary.itop.navigation-menu.php b/dictionaries/ui/layouts/navigation-menu/tr.dictionary.itop.navigation-menu.php index 651aba5bf..d94eff9e3 100644 --- a/dictionaries/ui/layouts/navigation-menu/tr.dictionary.itop.navigation-menu.php +++ b/dictionaries/ui/layouts/navigation-menu/tr.dictionary.itop.navigation-menu.php @@ -25,7 +25,7 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'UI:Layout:NavigationMenu:MenuFilter:Input:Placeholder' => 'Filter...~~', 'UI:Layout:NavigationMenu:MenuFilter:Input:Tooltip' => 'Type your keywords to filter menus~~', 'UI:Layout:NavigationMenu:MenuFilter:Input:Hint' => 'Matches from all menu groups will be displayed~~', - 'UI:Layout:NavigationMenu:MenuFilter:Placeholder:Hint' => 'No result for this menu filter~~', + 'UI:Layout:NavigationMenu:MenuFilter:Placeholder:Hint' => 'Seems like there is no matching menu~~', 'UI:Layout:NavigationMenu:UserInfo:WelcomeMessage:Text' => 'Hi %1$s!~~', 'UI:Layout:NavigationMenu:UserInfo:Picture:AltText' => '%1$s\'s contact picture~~', 'UI:Layout:NavigationMenu:UserMenu:Toggler:Label' => 'Open user menu~~', diff --git a/tests/php-unit-tests/integration-tests/DictionariesConsistencyTest.php b/tests/php-unit-tests/integration-tests/DictionariesConsistencyTest.php index 1a0c19783..fbe6efdd0 100644 --- a/tests/php-unit-tests/integration-tests/DictionariesConsistencyTest.php +++ b/tests/php-unit-tests/integration-tests/DictionariesConsistencyTest.php @@ -18,6 +18,9 @@ namespace Combodo\iTop\Test\UnitTest\Integration; use Combodo\iTop\Test\UnitTest\ItopTestCase; use Error; use Exception; +use RecursiveDirectoryIterator; +use RecursiveIteratorIterator; +use RegexIterator; use const ARRAY_FILTER_USE_BOTH; use const DIRECTORY_SEPARATOR; @@ -161,10 +164,20 @@ class DictionariesConsistencyTest extends ItopTestCase $sAppRoot = static::GetAppRoot(); - $aDictFiles = array_merge( + $aDictFilesCore = []; + $sCoreDictionariesPath = realpath($sAppRoot.'dictionaries'); + $sDictFilePattern = '/^.+\.dict.*\.php$/i'; + $oDirIterator = new RecursiveDirectoryIterator($sCoreDictionariesPath, RecursiveDirectoryIterator::SKIP_DOTS); + $oIterator = new RecursiveIteratorIterator($oDirIterator, RecursiveIteratorIterator::SELF_FIRST); + $oRegexIterator = new RegexIterator($oIterator, $sDictFilePattern, RegexIterator::GET_MATCH); + foreach($oRegexIterator as $file) { + $aDictFilesCore[] = $file[0]; + } + + + $aDictFilesModules = array_merge( glob($sAppRoot.'datamodels/2.x/*/*.dict*.php'), // legacy form in modules glob($sAppRoot.'datamodels/2.x/*/dictionaries/*.dict*.php'), // modern form in modules - glob($sAppRoot.'dictionaries/*.dict*.php'), // framework //--- Following should not be present in packages, but are convenient for local debugging ! glob($sAppRoot.'extensions/*/*.dict*.php'), @@ -172,6 +185,8 @@ class DictionariesConsistencyTest extends ItopTestCase ); + $aDictFiles = array_merge($aDictFilesCore, $aDictFilesModules); + $aTestCases = array(); foreach ($aDictFiles as $sDictFile) { $aTestCases[$sDictFile] = array('sDictFile' => $sDictFile);