From 54439ad529389df28f528daed73cbb85804b6c74 Mon Sep 17 00:00:00 2001 From: Pierre Goiffon Date: Thu, 15 Feb 2024 10:46:42 +0100 Subject: [PATCH 1/2] =?UTF-8?q?N=C2=B07249=20DictionariesConsistencyTest?= =?UTF-8?q?=20:=20also=20scan=20/dictionaries=20sub-directories=20Since=20?= =?UTF-8?q?3.0.0=20we=20introduced=20sub=20directories?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DictionariesConsistencyTest.php | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/tests/php-unit-tests/integration-tests/DictionariesConsistencyTest.php b/tests/php-unit-tests/integration-tests/DictionariesConsistencyTest.php index b53ee0531..1edcad4e2 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; @@ -160,10 +163,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'), @@ -171,6 +184,8 @@ class DictionariesConsistencyTest extends ItopTestCase ); + $aDictFiles = array_merge($aDictFilesCore, $aDictFilesModules); + $aTestCases = array(); foreach ($aDictFiles as $sDictFile) { $aTestCases[$sDictFile] = array('sDictFile' => $sDictFile); From dd27a3ebb48577d85b9d9c36b32b56c971dfeff4 Mon Sep 17 00:00:00 2001 From: Pierre Goiffon Date: Thu, 15 Feb 2024 10:50:08 +0100 Subject: [PATCH 2/2] =?UTF-8?q?N=C2=B07246=20Fix=20dict=20files=20:=20tran?= =?UTF-8?q?slated=20keys=20with=20tildes=20in=20/dictionaries/**?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../navigation-menu/cs.dictionary.itop.navigation-menu.php | 2 +- .../navigation-menu/da.dictionary.itop.navigation-menu.php | 2 +- .../navigation-menu/fr.dictionary.itop.navigation-menu.php | 2 +- .../navigation-menu/it.dictionary.itop.navigation-menu.php | 2 +- .../navigation-menu/ja.dictionary.itop.navigation-menu.php | 2 +- .../navigation-menu/pt_br.dictionary.itop.navigation-menu.php | 2 +- .../navigation-menu/sk.dictionary.itop.navigation-menu.php | 2 +- .../navigation-menu/tr.dictionary.itop.navigation-menu.php | 2 +- .../navigation-menu/zh_cn.dictionary.itop.navigation-menu.php | 4 ++-- 9 files changed, 10 insertions(+), 10 deletions(-) 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 6f83365bd..610dc8630 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 66b8fa527..dcc208bc4 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 9d84e0947..97b0dbaa1 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 8e6e5e1ed..8b45bc857 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 35dd4ef78..39fb28f6d 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/pt_br.dictionary.itop.navigation-menu.php b/dictionaries/ui/layouts/navigation-menu/pt_br.dictionary.itop.navigation-menu.php index 3b2339c97..1b4892686 100644 --- a/dictionaries/ui/layouts/navigation-menu/pt_br.dictionary.itop.navigation-menu.php +++ b/dictionaries/ui/layouts/navigation-menu/pt_br.dictionary.itop.navigation-menu.php @@ -25,7 +25,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', 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 71fd64aaf..203a5795b 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 193d50850..ac36d0df3 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/dictionaries/ui/layouts/navigation-menu/zh_cn.dictionary.itop.navigation-menu.php b/dictionaries/ui/layouts/navigation-menu/zh_cn.dictionary.itop.navigation-menu.php index cf6614181..ccb16f761 100644 --- a/dictionaries/ui/layouts/navigation-menu/zh_cn.dictionary.itop.navigation-menu.php +++ b/dictionaries/ui/layouts/navigation-menu/zh_cn.dictionary.itop.navigation-menu.php @@ -21,11 +21,11 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'UI:Layout:NavigationMenu:CompanyLogo:AltText' => '公司logo', 'UI:Layout:NavigationMenu:Silo:Label' => 'Select organization to filter on~~', 'UI:Layout:NavigationMenu:Toggler:Tooltip' => '展开 / 折叠', - 'UI:Layout:NavigationMenu:Toggler:TooltipWithSiloLabel' => '展开 / 折叠 (Filtered on %1$s)~~', + 'UI:Layout:NavigationMenu:Toggler:TooltipWithSiloLabel' => '展开 / 折叠 (Filtered on %1$s)', 'UI:Layout:NavigationMenu:MenuFilter:Input:Placeholder' => '过滤器...', 'UI:Layout:NavigationMenu:MenuFilter:Input:Tooltip' => '请输入要过滤的关键字', 'UI:Layout:NavigationMenu:MenuFilter:Input:Hint' => '将会显示所有匹配的菜单', - '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~~',