From 8ef04bedf29e48dbef752a11686b301e94f59bb1 Mon Sep 17 00:00:00 2001 From: Pierre Goiffon Date: Mon, 15 Jan 2024 15:00:08 +0100 Subject: [PATCH] =?UTF-8?q?N=C2=B07143=20Move=20datamodels/2.x=20dict=20fi?= =?UTF-8?q?les=20to=20dictionaries=20subdir=20New=20phpunit=20method=20to?= =?UTF-8?q?=20ensure=20it=20won't=20happen=20again?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pt_br.dict.itop-core-update.php | 74 +++++------ .../pt_br.dict.itop-core-update.php | 120 ------------------ .../cs.dict.itop-oauth-client.php | 0 .../da.dict.itop-oauth-client.php | 0 .../de.dict.itop-oauth-client.php | 0 .../en.dict.itop-oauth-client.php | 0 .../es_cr.dict.itop-oauth-client.php | 0 .../fr.dict.itop-oauth-client.php | 0 .../hu.dict.itop-oauth-client.php | 0 .../it.dict.itop-oauth-client.php | 0 .../ja.dict.itop-oauth-client.php | 0 .../nl.dict.itop-oauth-client.php | 0 .../pt_br.dict.itop-oauth-client.php | 0 .../ru.dict.itop-oauth-client.php | 0 .../sk.dict.itop-oauth-client.php | 0 .../tr.dict.itop-oauth-client.php | 0 .../zh_cn.dict.itop-oauth-client.php | 0 .../cs.dict.itop-themes-compat.php | 0 .../da.dict.itop-themes-compat.php | 0 .../de.dict.itop-themes-compat.php | 0 .../en.dict.itop-themes-compat.php | 0 .../es_cr.dict.itop-themes-compat.php | 0 .../fr.dict.itop-themes-compat.php | 0 .../hu.dict.itop-themes-compat.php | 0 .../it.dict.itop-themes-compat.php | 0 .../ja.dict.itop-themes-compat.php | 0 .../nl.dict.itop-themes-compat.php | 0 .../pl.dict.itop-themes-compat.php | 0 .../pt_br.dict.itop-themes-compat.php | 0 .../ru.dict.itop-themes-compat.php | 0 .../sk.dict.itop-themes-compat.php | 0 .../tr.dict.itop-themes-compat.php | 0 .../zh_cn.dict.itop-themes-compat.php | 0 .../tr.dict.itop-welcome-itil.php | 110 +++++++++++++--- .../tr.dict.itop-welcome-itil.php | 95 -------------- .../DictionariesConsistencyTest.php | 12 +- 36 files changed, 138 insertions(+), 273 deletions(-) delete mode 100644 datamodels/2.x/itop-core-update/pt_br.dict.itop-core-update.php rename datamodels/2.x/itop-oauth-client/{ => dictionaries}/cs.dict.itop-oauth-client.php (100%) rename datamodels/2.x/itop-oauth-client/{ => dictionaries}/da.dict.itop-oauth-client.php (100%) rename datamodels/2.x/itop-oauth-client/{ => dictionaries}/de.dict.itop-oauth-client.php (100%) rename datamodels/2.x/itop-oauth-client/{ => dictionaries}/en.dict.itop-oauth-client.php (100%) rename datamodels/2.x/itop-oauth-client/{ => dictionaries}/es_cr.dict.itop-oauth-client.php (100%) rename datamodels/2.x/itop-oauth-client/{ => dictionaries}/fr.dict.itop-oauth-client.php (100%) rename datamodels/2.x/itop-oauth-client/{ => dictionaries}/hu.dict.itop-oauth-client.php (100%) rename datamodels/2.x/itop-oauth-client/{ => dictionaries}/it.dict.itop-oauth-client.php (100%) rename datamodels/2.x/itop-oauth-client/{ => dictionaries}/ja.dict.itop-oauth-client.php (100%) rename datamodels/2.x/itop-oauth-client/{ => dictionaries}/nl.dict.itop-oauth-client.php (100%) rename datamodels/2.x/itop-oauth-client/{ => dictionaries}/pt_br.dict.itop-oauth-client.php (100%) rename datamodels/2.x/itop-oauth-client/{ => dictionaries}/ru.dict.itop-oauth-client.php (100%) rename datamodels/2.x/itop-oauth-client/{ => dictionaries}/sk.dict.itop-oauth-client.php (100%) rename datamodels/2.x/itop-oauth-client/{ => dictionaries}/tr.dict.itop-oauth-client.php (100%) rename datamodels/2.x/itop-oauth-client/{ => dictionaries}/zh_cn.dict.itop-oauth-client.php (100%) rename datamodels/2.x/itop-themes-compat/{ => dictionaries}/cs.dict.itop-themes-compat.php (100%) rename datamodels/2.x/itop-themes-compat/{ => dictionaries}/da.dict.itop-themes-compat.php (100%) rename datamodels/2.x/itop-themes-compat/{ => dictionaries}/de.dict.itop-themes-compat.php (100%) rename datamodels/2.x/itop-themes-compat/{ => dictionaries}/en.dict.itop-themes-compat.php (100%) rename datamodels/2.x/itop-themes-compat/{ => dictionaries}/es_cr.dict.itop-themes-compat.php (100%) rename datamodels/2.x/itop-themes-compat/{ => dictionaries}/fr.dict.itop-themes-compat.php (100%) rename datamodels/2.x/itop-themes-compat/{ => dictionaries}/hu.dict.itop-themes-compat.php (100%) rename datamodels/2.x/itop-themes-compat/{ => dictionaries}/it.dict.itop-themes-compat.php (100%) rename datamodels/2.x/itop-themes-compat/{ => dictionaries}/ja.dict.itop-themes-compat.php (100%) rename datamodels/2.x/itop-themes-compat/{ => dictionaries}/nl.dict.itop-themes-compat.php (100%) rename datamodels/2.x/itop-themes-compat/{ => dictionaries}/pl.dict.itop-themes-compat.php (100%) rename datamodels/2.x/itop-themes-compat/{ => dictionaries}/pt_br.dict.itop-themes-compat.php (100%) rename datamodels/2.x/itop-themes-compat/{ => dictionaries}/ru.dict.itop-themes-compat.php (100%) rename datamodels/2.x/itop-themes-compat/{ => dictionaries}/sk.dict.itop-themes-compat.php (100%) rename datamodels/2.x/itop-themes-compat/{ => dictionaries}/tr.dict.itop-themes-compat.php (100%) rename datamodels/2.x/itop-themes-compat/{ => dictionaries}/zh_cn.dict.itop-themes-compat.php (100%) delete mode 100644 datamodels/2.x/itop-welcome-itil/tr.dict.itop-welcome-itil.php diff --git a/datamodels/2.x/itop-core-update/dictionaries/pt_br.dict.itop-core-update.php b/datamodels/2.x/itop-core-update/dictionaries/pt_br.dict.itop-core-update.php index 6ac9e240e..787e095bf 100644 --- a/datamodels/2.x/itop-core-update/dictionaries/pt_br.dict.itop-core-update.php +++ b/datamodels/2.x/itop-core-update/dictionaries/pt_br.dict.itop-core-update.php @@ -22,9 +22,9 @@ */ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( 'iTopUpdate:UI:PageTitle' => 'Atualização da Aplicação', - 'itop-core-update:UI:SelectUpdateFile' => 'Atualização da Aplicação', - 'itop-core-update:UI:ConfirmUpdate' => 'Atualização da Aplicação', - 'itop-core-update:UI:UpdateCoreFiles' => 'Atualização da Aplicação', + 'itop-core-update:UI:SelectUpdateFile' => 'Atualização da Aplicação', + 'itop-core-update:UI:ConfirmUpdate' => 'Atualização da Aplicação', + 'itop-core-update:UI:UpdateCoreFiles' => 'Atualização da Aplicação', 'iTopUpdate:UI:MaintenanceModeActive' => 'A aplicação encontrasse em manutenção, nenhum usuário pode acessar a aplicação. Você precisa rodar o setup ou restaurar os arquivos da aplicação para voltar ao modo normal.', 'itop-core-update:UI:UpdateDone' => 'Atualização da Aplicação', @@ -39,40 +39,40 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( 'iTopUpdate:UI:DoUpdate' => 'Atualizar', 'iTopUpdate:UI:CurrentVersion' => 'Versão atual', 'iTopUpdate:UI:NewVersion' => 'Nova versão', - 'iTopUpdate:UI:Back' => 'Voltar', - 'iTopUpdate:UI:Cancel' => 'Cancelar', - 'iTopUpdate:UI:Continue' => 'Continuar', + 'iTopUpdate:UI:Back' => 'Voltar', + 'iTopUpdate:UI:Cancel' => 'Cancelar', + 'iTopUpdate:UI:Continue' => 'Continuar', 'iTopUpdate:UI:RunSetup' => 'Rodar setup', - 'iTopUpdate:UI:WithDBBackup' => 'Backup da base de dados', - 'iTopUpdate:UI:WithFilesBackup' => 'Backup dos arquivos da aplicação', - 'iTopUpdate:UI:WithoutBackup' => 'Backup não planejado', - 'iTopUpdate:UI:Backup' => 'Backup gerado antes da atualização', + 'iTopUpdate:UI:WithDBBackup' => 'Backup da base de dados', + 'iTopUpdate:UI:WithFilesBackup' => 'Backup dos arquivos da aplicação', + 'iTopUpdate:UI:WithoutBackup' => 'Backup não planejado', + 'iTopUpdate:UI:Backup' => 'Backup gerado antes da atualização', 'iTopUpdate:UI:DoFilesArchive' => 'Arquivar arquivos da aplicação', 'iTopUpdate:UI:UploadArchive' => 'Escolha um pacote para enviar', 'iTopUpdate:UI:ServerFile' => 'Caminho para o pacote já no servidor', 'iTopUpdate:UI:WarningReadOnlyDuringUpdate' => 'Durante a atualização, a aplicação ficará em modo leitura.', - 'iTopUpdate:UI:Status' => 'Status', - 'iTopUpdate:UI:Action' => 'Atualizar', - 'iTopUpdate:UI:History' => 'Versões anteriores', - 'iTopUpdate:UI:Progress' => 'Progresso da atualização', + 'iTopUpdate:UI:Status' => 'Status', + 'iTopUpdate:UI:Action' => 'Atualizar', + 'iTopUpdate:UI:History' => 'Versões anteriores', + 'iTopUpdate:UI:Progress' => 'Progresso da atualização', - 'iTopUpdate:UI:DoBackup:Label' => 'Backup de arquivos e base de dados', - 'iTopUpdate:UI:DoBackup:Warning' => 'Backup não recomendado devido ao espaço em disco limitado', + 'iTopUpdate:UI:DoBackup:Label' => 'Backup de arquivos e base de dados', + 'iTopUpdate:UI:DoBackup:Warning' => 'Backup não recomendado devido ao espaço em disco limitado', - 'iTopUpdate:UI:DiskFreeSpace' => 'Espaço em disco disponível', - 'iTopUpdate:UI:ItopDiskSpace' => 'Espaço em disco do '.ITOP_APPLICATION_SHORT, - 'iTopUpdate:UI:DBDiskSpace' => 'Espaço em disco da base de dados', + 'iTopUpdate:UI:DiskFreeSpace' => 'Espaço em disco disponível', + 'iTopUpdate:UI:ItopDiskSpace' => 'Espaço em disco do '.ITOP_APPLICATION_SHORT, + 'iTopUpdate:UI:DBDiskSpace' => 'Espaço em disco da base de dados', 'iTopUpdate:UI:FileUploadMaxSize' => 'Tamanho máximo de envio de arquivos', 'iTopUpdate:UI:PostMaxSize' => 'PHP ini post_max_size: %1$s', 'iTopUpdate:UI:UploadMaxFileSize' => 'PHP ini upload_max_filesize: %1$s', - 'iTopUpdate:UI:CanCoreUpdate:Loading' => 'Verificando arquivos de sistema', - 'iTopUpdate:UI:CanCoreUpdate:Error' => 'Falha ao verificar arquivos de sistema (%1$s)', - 'iTopUpdate:UI:CanCoreUpdate:ErrorFileNotExist' => 'Falha ao verificar arquivos de sistema (arquivo não existe %1$s)', - 'iTopUpdate:UI:CanCoreUpdate:Failed' => 'Falha ao verificar arquivos de sistema', - 'iTopUpdate:UI:CanCoreUpdate:Yes' => 'Aplicação pode ser atualizada', + 'iTopUpdate:UI:CanCoreUpdate:Loading' => 'Verificando arquivos de sistema', + 'iTopUpdate:UI:CanCoreUpdate:Error' => 'Falha ao verificar arquivos de sistema (%1$s)', + 'iTopUpdate:UI:CanCoreUpdate:ErrorFileNotExist' => 'Falha ao verificar arquivos de sistema (arquivo não existe %1$s)', + 'iTopUpdate:UI:CanCoreUpdate:Failed' => 'Falha ao verificar arquivos de sistema', + 'iTopUpdate:UI:CanCoreUpdate:Yes' => 'Aplicação pode ser atualizada', 'iTopUpdate:UI:CanCoreUpdate:No' => 'Aplicação não pode ser atualizada: %1$s', 'iTopUpdate:UI:CanCoreUpdate:Warning' => 'Atenção: a atualização da aplicação pode falhar: %1$s', 'iTopUpdate:UI:CannotUpdateUseSetup' => 'Some modified files were detected, a partial update cannot be executed.
Follow the procedure in order to manually upgrade your iTop. You must use the setup to update the application.~~', @@ -80,27 +80,27 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( 'iTopUpdate:UI:CheckInProgress' => 'Please wait during integrity check~~', // Setup Messages - 'iTopUpdate:UI:SetupMessage:Ready' => 'Pronto para começar', + 'iTopUpdate:UI:SetupMessage:Ready' => 'Pronto para começar', 'iTopUpdate:UI:SetupMessage:EnterMaintenance' => 'Entrando em modo manutenção', 'iTopUpdate:UI:SetupMessage:Backup' => 'Backup da base de dados', 'iTopUpdate:UI:SetupMessage:FilesArchive' => 'Arquivar arquivos da aplicação', - 'iTopUpdate:UI:SetupMessage:CopyFiles' => 'Copiar nova versão de arquivos', + 'iTopUpdate:UI:SetupMessage:CopyFiles' => 'Copiar nova versão de arquivos', 'iTopUpdate:UI:SetupMessage:CheckCompile' => 'Verificar atualização da aplicação', 'iTopUpdate:UI:SetupMessage:Compile' => 'Atualizar aplicação e base de dados', 'iTopUpdate:UI:SetupMessage:UpdateDatabase' => 'Atualizar base de dados', 'iTopUpdate:UI:SetupMessage:ExitMaintenance' => 'Saindo do modo manutenção', - 'iTopUpdate:UI:SetupMessage:UpdateDone' => 'Atualização completa', + 'iTopUpdate:UI:SetupMessage:UpdateDone' => 'Atualização completa', // Errors 'iTopUpdate:Error:MissingFunction' => 'Impossível começar a atualização, função ausente', 'iTopUpdate:Error:MissingFile' => 'Faltando arquivo: %1$s', 'iTopUpdate:Error:CorruptedFile' => 'Arquivo %1$s está corrompido', - 'iTopUpdate:Error:BadFileFormat' => 'O arquivo de atualização não é um ZIP', - 'iTopUpdate:Error:BadFileContent' => 'O arquivo de atualização não é um arquivo da aplicação', - 'iTopUpdate:Error:BadItopProduct' => 'O arquivo de atualização não é compatível com a aplicação', + 'iTopUpdate:Error:BadFileFormat' => 'O arquivo de atualização não é um ZIP', + 'iTopUpdate:Error:BadFileContent' => 'O arquivo de atualização não é um arquivo da aplicação', + 'iTopUpdate:Error:BadItopProduct' => 'O arquivo de atualização não é compatível com a aplicação', 'iTopUpdate:Error:Copy' => 'Erro, falha ao copiar de \'%1$s\' para \'%2$s\'', - 'iTopUpdate:Error:FileNotFound' => 'Arquivo não encontrado', - 'iTopUpdate:Error:NoFile' => 'Nenhum arquivo fornecido', + 'iTopUpdate:Error:FileNotFound' => 'Arquivo não encontrado', + 'iTopUpdate:Error:NoFile' => 'Nenhum arquivo fornecido', 'iTopUpdate:Error:InvalidToken' => 'Token inválido', 'iTopUpdate:Error:UpdateFailed' => 'Atualização falhou', 'iTopUpdate:Error:FileUploadMaxSizeTooSmall' => 'O tamanho máximo de envio de arquivos me parece muito pequeno para a atualização. Favor alterar as configurações do PHP.', @@ -111,11 +111,11 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( 'Menu:iTopUpdate' => 'Atualização da Aplicação', 'Menu:iTopUpdate+' => 'Atualização da Aplicação', - // Missing itop entries - 'Class:ModuleInstallation/Attribute:installed' => 'Instalado em', - 'Class:ModuleInstallation/Attribute:name' => 'Noome', - 'Class:ModuleInstallation/Attribute:version' => 'Versão', - 'Class:ModuleInstallation/Attribute:comment' => 'Comentário', + // Missing itop entries + 'Class:ModuleInstallation/Attribute:installed' => 'Instalado em', + 'Class:ModuleInstallation/Attribute:name' => 'Noome', + 'Class:ModuleInstallation/Attribute:version' => 'Versão', + 'Class:ModuleInstallation/Attribute:comment' => 'Comentário', )); diff --git a/datamodels/2.x/itop-core-update/pt_br.dict.itop-core-update.php b/datamodels/2.x/itop-core-update/pt_br.dict.itop-core-update.php deleted file mode 100644 index 4c977715d..000000000 --- a/datamodels/2.x/itop-core-update/pt_br.dict.itop-core-update.php +++ /dev/null @@ -1,120 +0,0 @@ - - */ -Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( - 'iTopUpdate:UI:PageTitle' => 'Application Upgrade~~', - 'itop-core-update:UI:SelectUpdateFile' => 'Application Upgrade~~', - 'itop-core-update:UI:ConfirmUpdate' => 'Application Upgrade~~', - 'itop-core-update:UI:UpdateCoreFiles' => 'Application Upgrade~~', - 'iTopUpdate:UI:MaintenanceModeActive' => 'The application is currently under maintenance, no user can access the application. You have to run a setup or restore the application archive to return in normal mode.~~', - 'itop-core-update:UI:UpdateDone' => 'Application Upgrade~~', - - 'itop-core-update/Operation:SelectUpdateFile/Title' => 'Application Upgrade~~', - 'itop-core-update/Operation:ConfirmUpdate/Title' => 'Confirm Application Upgrade~~', - 'itop-core-update/Operation:UpdateCoreFiles/Title' => 'Application Upgrading~~', - 'itop-core-update/Operation:UpdateDone/Title' => 'Application Upgrade Done~~', - - 'iTopUpdate:UI:SelectUpdateFile' => 'Select an upgrade file to upload~~', - 'iTopUpdate:UI:CheckUpdate' => 'Verify upgrade file~~', - 'iTopUpdate:UI:ConfirmInstallFile' => 'You are about to install %1$s~~', - 'iTopUpdate:UI:DoUpdate' => 'Upgrade~~', - 'iTopUpdate:UI:CurrentVersion' => 'Current installed version~~', - 'iTopUpdate:UI:NewVersion' => 'Newly installed version~~', - 'iTopUpdate:UI:Back' => 'Back~~', - 'iTopUpdate:UI:Cancel' => 'Cancel~~', - 'iTopUpdate:UI:Continue' => 'Continue~~', - 'iTopUpdate:UI:RunSetup' => 'Run Setup~~', - 'iTopUpdate:UI:WithDBBackup' => 'Database backup~~', - 'iTopUpdate:UI:WithFilesBackup' => 'Application files backup~~', - 'iTopUpdate:UI:WithoutBackup' => 'No backup is planned~~', - 'iTopUpdate:UI:Backup' => 'Backup generated before update~~', - 'iTopUpdate:UI:DoFilesArchive' => 'Archive application files~~', - 'iTopUpdate:UI:UploadArchive' => 'Select a package to upload~~', - 'iTopUpdate:UI:ServerFile' => 'Path of a package already on the server~~', - 'iTopUpdate:UI:WarningReadOnlyDuringUpdate' => 'During the upgrade, the application will be read-only.~~', - - 'iTopUpdate:UI:Status' => 'Status~~', - 'iTopUpdate:UI:Action' => 'Update~~', - 'iTopUpdate:UI:History' => 'Versions History~~', - 'iTopUpdate:UI:Progress' => 'Progress of the upgrade~~', - - 'iTopUpdate:UI:DoBackup:Label' => 'Backup files and database~~', - 'iTopUpdate:UI:DoBackup:Warning' => 'Backup is not recommended due to limited available disk space~~', - - 'iTopUpdate:UI:DiskFreeSpace' => 'Disk free space~~', - 'iTopUpdate:UI:ItopDiskSpace' => 'iTop disk space~~', - 'iTopUpdate:UI:DBDiskSpace' => 'Database disk space~~', - 'iTopUpdate:UI:FileUploadMaxSize' => 'File upload max size~~', - - 'iTopUpdate:UI:PostMaxSize' => 'PHP ini value post_max_size: %1$s~~', - 'iTopUpdate:UI:UploadMaxFileSize' => 'PHP ini value upload_max_filesize: %1$s~~', - - 'iTopUpdate:UI:CanCoreUpdate:Loading' => 'Checking filesystem~~', - 'iTopUpdate:UI:CanCoreUpdate:Error' => 'Checking filesystem failed (%1$s)~~', - 'iTopUpdate:UI:CanCoreUpdate:ErrorFileNotExist' => 'Checking filesystem failed (File not exist %1$s)~~', - 'iTopUpdate:UI:CanCoreUpdate:Failed' => 'Checking filesystem failed~~', - 'iTopUpdate:UI:CanCoreUpdate:Yes' => 'Application can be updated~~', - 'iTopUpdate:UI:CanCoreUpdate:No' => 'Application cannot be updated: %1$s~~', - 'iTopUpdate:UI:CanCoreUpdate:Warning' => 'Warning: application update can fail: %1$s~~', - 'iTopUpdate:UI:CannotUpdateUseSetup' => 'Some modified files were detected, a partial update cannot be executed.
Follow the procedure in order to manually upgrade your iTop. You must use the setup to update the application.~~', - 'iTopUpdate:UI:CheckInProgress'=>'Please wait during integrity check~~', - - // Setup Messages - 'iTopUpdate:UI:SetupMessage:Ready' => 'Ready to start~~', - 'iTopUpdate:UI:SetupMessage:EnterMaintenance' => 'Entering maintenance mode~~', - 'iTopUpdate:UI:SetupMessage:Backup' => 'Database backup~~', - 'iTopUpdate:UI:SetupMessage:FilesArchive' => 'Archive application files~~', - 'iTopUpdate:UI:SetupMessage:CopyFiles' => 'Copy new version files~~', - 'iTopUpdate:UI:SetupMessage:CheckCompile' => 'Check application upgrade~~', - 'iTopUpdate:UI:SetupMessage:Compile' => 'Upgrade application and database~~', - 'iTopUpdate:UI:SetupMessage:UpdateDatabase' => 'Upgrade database~~', - 'iTopUpdate:UI:SetupMessage:ExitMaintenance' => 'Exiting maintenance mode~~', - 'iTopUpdate:UI:SetupMessage:UpdateDone' => 'Upgrade completed~~', - - // Errors - 'iTopUpdate:Error:MissingFunction' => 'Impossible to start upgrade, missing function~~', - 'iTopUpdate:Error:MissingFile' => 'Missing file: %1$s~~', - 'iTopUpdate:Error:CorruptedFile' => 'File %1$s is corrupted~~', - 'iTopUpdate:Error:BadFileFormat' => 'Upgrade file is not a zip file~~', - 'iTopUpdate:Error:BadFileContent' => 'Upgrade file is not an application archive~~', - 'iTopUpdate:Error:BadItopProduct' => 'Upgrade file is not compatible with your application~~', - 'iTopUpdate:Error:Copy' => 'Error, cannot copy \'%1$s\' to \'%2$s\'~~', - 'iTopUpdate:Error:FileNotFound' => 'File not found~~', - 'iTopUpdate:Error:NoFile' => 'No file provided~~', - 'iTopUpdate:Error:InvalidToken' => 'Invalid token~~', - 'iTopUpdate:Error:UpdateFailed' => 'Upgrade failed ~~', - 'iTopUpdate:Error:FileUploadMaxSizeTooSmall' => 'The upload max size seems too small for update. Please change the PHP configuration.~~', - - 'iTopUpdate:UI:RestoreArchive' => 'You can restore your application from the archive \'%1$s\'~~', - 'iTopUpdate:UI:RestoreBackup' => 'You can restore the database from \'%1$s\'~~', - 'iTopUpdate:UI:UpdateDone' => 'Upgrade successful~~', - 'Menu:iTopUpdate' => 'Application Upgrade~~', - 'Menu:iTopUpdate+' => 'Application Upgrade~~', - - // Missing itop entries - 'Class:ModuleInstallation/Attribute:installed' => 'Installed on~~', - 'Class:ModuleInstallation/Attribute:name' => 'Name~~', - 'Class:ModuleInstallation/Attribute:version' => 'Version~~', - 'Class:ModuleInstallation/Attribute:comment' => 'Comment~~', -)); - - diff --git a/datamodels/2.x/itop-oauth-client/cs.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/dictionaries/cs.dict.itop-oauth-client.php similarity index 100% rename from datamodels/2.x/itop-oauth-client/cs.dict.itop-oauth-client.php rename to datamodels/2.x/itop-oauth-client/dictionaries/cs.dict.itop-oauth-client.php diff --git a/datamodels/2.x/itop-oauth-client/da.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/dictionaries/da.dict.itop-oauth-client.php similarity index 100% rename from datamodels/2.x/itop-oauth-client/da.dict.itop-oauth-client.php rename to datamodels/2.x/itop-oauth-client/dictionaries/da.dict.itop-oauth-client.php diff --git a/datamodels/2.x/itop-oauth-client/de.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/dictionaries/de.dict.itop-oauth-client.php similarity index 100% rename from datamodels/2.x/itop-oauth-client/de.dict.itop-oauth-client.php rename to datamodels/2.x/itop-oauth-client/dictionaries/de.dict.itop-oauth-client.php diff --git a/datamodels/2.x/itop-oauth-client/en.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/dictionaries/en.dict.itop-oauth-client.php similarity index 100% rename from datamodels/2.x/itop-oauth-client/en.dict.itop-oauth-client.php rename to datamodels/2.x/itop-oauth-client/dictionaries/en.dict.itop-oauth-client.php diff --git a/datamodels/2.x/itop-oauth-client/es_cr.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/dictionaries/es_cr.dict.itop-oauth-client.php similarity index 100% rename from datamodels/2.x/itop-oauth-client/es_cr.dict.itop-oauth-client.php rename to datamodels/2.x/itop-oauth-client/dictionaries/es_cr.dict.itop-oauth-client.php diff --git a/datamodels/2.x/itop-oauth-client/fr.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/dictionaries/fr.dict.itop-oauth-client.php similarity index 100% rename from datamodels/2.x/itop-oauth-client/fr.dict.itop-oauth-client.php rename to datamodels/2.x/itop-oauth-client/dictionaries/fr.dict.itop-oauth-client.php diff --git a/datamodels/2.x/itop-oauth-client/hu.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/dictionaries/hu.dict.itop-oauth-client.php similarity index 100% rename from datamodels/2.x/itop-oauth-client/hu.dict.itop-oauth-client.php rename to datamodels/2.x/itop-oauth-client/dictionaries/hu.dict.itop-oauth-client.php diff --git a/datamodels/2.x/itop-oauth-client/it.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/dictionaries/it.dict.itop-oauth-client.php similarity index 100% rename from datamodels/2.x/itop-oauth-client/it.dict.itop-oauth-client.php rename to datamodels/2.x/itop-oauth-client/dictionaries/it.dict.itop-oauth-client.php diff --git a/datamodels/2.x/itop-oauth-client/ja.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/dictionaries/ja.dict.itop-oauth-client.php similarity index 100% rename from datamodels/2.x/itop-oauth-client/ja.dict.itop-oauth-client.php rename to datamodels/2.x/itop-oauth-client/dictionaries/ja.dict.itop-oauth-client.php diff --git a/datamodels/2.x/itop-oauth-client/nl.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/dictionaries/nl.dict.itop-oauth-client.php similarity index 100% rename from datamodels/2.x/itop-oauth-client/nl.dict.itop-oauth-client.php rename to datamodels/2.x/itop-oauth-client/dictionaries/nl.dict.itop-oauth-client.php diff --git a/datamodels/2.x/itop-oauth-client/pt_br.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/dictionaries/pt_br.dict.itop-oauth-client.php similarity index 100% rename from datamodels/2.x/itop-oauth-client/pt_br.dict.itop-oauth-client.php rename to datamodels/2.x/itop-oauth-client/dictionaries/pt_br.dict.itop-oauth-client.php diff --git a/datamodels/2.x/itop-oauth-client/ru.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/dictionaries/ru.dict.itop-oauth-client.php similarity index 100% rename from datamodels/2.x/itop-oauth-client/ru.dict.itop-oauth-client.php rename to datamodels/2.x/itop-oauth-client/dictionaries/ru.dict.itop-oauth-client.php diff --git a/datamodels/2.x/itop-oauth-client/sk.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/dictionaries/sk.dict.itop-oauth-client.php similarity index 100% rename from datamodels/2.x/itop-oauth-client/sk.dict.itop-oauth-client.php rename to datamodels/2.x/itop-oauth-client/dictionaries/sk.dict.itop-oauth-client.php diff --git a/datamodels/2.x/itop-oauth-client/tr.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/dictionaries/tr.dict.itop-oauth-client.php similarity index 100% rename from datamodels/2.x/itop-oauth-client/tr.dict.itop-oauth-client.php rename to datamodels/2.x/itop-oauth-client/dictionaries/tr.dict.itop-oauth-client.php diff --git a/datamodels/2.x/itop-oauth-client/zh_cn.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/dictionaries/zh_cn.dict.itop-oauth-client.php similarity index 100% rename from datamodels/2.x/itop-oauth-client/zh_cn.dict.itop-oauth-client.php rename to datamodels/2.x/itop-oauth-client/dictionaries/zh_cn.dict.itop-oauth-client.php diff --git a/datamodels/2.x/itop-themes-compat/cs.dict.itop-themes-compat.php b/datamodels/2.x/itop-themes-compat/dictionaries/cs.dict.itop-themes-compat.php similarity index 100% rename from datamodels/2.x/itop-themes-compat/cs.dict.itop-themes-compat.php rename to datamodels/2.x/itop-themes-compat/dictionaries/cs.dict.itop-themes-compat.php diff --git a/datamodels/2.x/itop-themes-compat/da.dict.itop-themes-compat.php b/datamodels/2.x/itop-themes-compat/dictionaries/da.dict.itop-themes-compat.php similarity index 100% rename from datamodels/2.x/itop-themes-compat/da.dict.itop-themes-compat.php rename to datamodels/2.x/itop-themes-compat/dictionaries/da.dict.itop-themes-compat.php diff --git a/datamodels/2.x/itop-themes-compat/de.dict.itop-themes-compat.php b/datamodels/2.x/itop-themes-compat/dictionaries/de.dict.itop-themes-compat.php similarity index 100% rename from datamodels/2.x/itop-themes-compat/de.dict.itop-themes-compat.php rename to datamodels/2.x/itop-themes-compat/dictionaries/de.dict.itop-themes-compat.php diff --git a/datamodels/2.x/itop-themes-compat/en.dict.itop-themes-compat.php b/datamodels/2.x/itop-themes-compat/dictionaries/en.dict.itop-themes-compat.php similarity index 100% rename from datamodels/2.x/itop-themes-compat/en.dict.itop-themes-compat.php rename to datamodels/2.x/itop-themes-compat/dictionaries/en.dict.itop-themes-compat.php diff --git a/datamodels/2.x/itop-themes-compat/es_cr.dict.itop-themes-compat.php b/datamodels/2.x/itop-themes-compat/dictionaries/es_cr.dict.itop-themes-compat.php similarity index 100% rename from datamodels/2.x/itop-themes-compat/es_cr.dict.itop-themes-compat.php rename to datamodels/2.x/itop-themes-compat/dictionaries/es_cr.dict.itop-themes-compat.php diff --git a/datamodels/2.x/itop-themes-compat/fr.dict.itop-themes-compat.php b/datamodels/2.x/itop-themes-compat/dictionaries/fr.dict.itop-themes-compat.php similarity index 100% rename from datamodels/2.x/itop-themes-compat/fr.dict.itop-themes-compat.php rename to datamodels/2.x/itop-themes-compat/dictionaries/fr.dict.itop-themes-compat.php diff --git a/datamodels/2.x/itop-themes-compat/hu.dict.itop-themes-compat.php b/datamodels/2.x/itop-themes-compat/dictionaries/hu.dict.itop-themes-compat.php similarity index 100% rename from datamodels/2.x/itop-themes-compat/hu.dict.itop-themes-compat.php rename to datamodels/2.x/itop-themes-compat/dictionaries/hu.dict.itop-themes-compat.php diff --git a/datamodels/2.x/itop-themes-compat/it.dict.itop-themes-compat.php b/datamodels/2.x/itop-themes-compat/dictionaries/it.dict.itop-themes-compat.php similarity index 100% rename from datamodels/2.x/itop-themes-compat/it.dict.itop-themes-compat.php rename to datamodels/2.x/itop-themes-compat/dictionaries/it.dict.itop-themes-compat.php diff --git a/datamodels/2.x/itop-themes-compat/ja.dict.itop-themes-compat.php b/datamodels/2.x/itop-themes-compat/dictionaries/ja.dict.itop-themes-compat.php similarity index 100% rename from datamodels/2.x/itop-themes-compat/ja.dict.itop-themes-compat.php rename to datamodels/2.x/itop-themes-compat/dictionaries/ja.dict.itop-themes-compat.php diff --git a/datamodels/2.x/itop-themes-compat/nl.dict.itop-themes-compat.php b/datamodels/2.x/itop-themes-compat/dictionaries/nl.dict.itop-themes-compat.php similarity index 100% rename from datamodels/2.x/itop-themes-compat/nl.dict.itop-themes-compat.php rename to datamodels/2.x/itop-themes-compat/dictionaries/nl.dict.itop-themes-compat.php diff --git a/datamodels/2.x/itop-themes-compat/pl.dict.itop-themes-compat.php b/datamodels/2.x/itop-themes-compat/dictionaries/pl.dict.itop-themes-compat.php similarity index 100% rename from datamodels/2.x/itop-themes-compat/pl.dict.itop-themes-compat.php rename to datamodels/2.x/itop-themes-compat/dictionaries/pl.dict.itop-themes-compat.php diff --git a/datamodels/2.x/itop-themes-compat/pt_br.dict.itop-themes-compat.php b/datamodels/2.x/itop-themes-compat/dictionaries/pt_br.dict.itop-themes-compat.php similarity index 100% rename from datamodels/2.x/itop-themes-compat/pt_br.dict.itop-themes-compat.php rename to datamodels/2.x/itop-themes-compat/dictionaries/pt_br.dict.itop-themes-compat.php diff --git a/datamodels/2.x/itop-themes-compat/ru.dict.itop-themes-compat.php b/datamodels/2.x/itop-themes-compat/dictionaries/ru.dict.itop-themes-compat.php similarity index 100% rename from datamodels/2.x/itop-themes-compat/ru.dict.itop-themes-compat.php rename to datamodels/2.x/itop-themes-compat/dictionaries/ru.dict.itop-themes-compat.php diff --git a/datamodels/2.x/itop-themes-compat/sk.dict.itop-themes-compat.php b/datamodels/2.x/itop-themes-compat/dictionaries/sk.dict.itop-themes-compat.php similarity index 100% rename from datamodels/2.x/itop-themes-compat/sk.dict.itop-themes-compat.php rename to datamodels/2.x/itop-themes-compat/dictionaries/sk.dict.itop-themes-compat.php diff --git a/datamodels/2.x/itop-themes-compat/tr.dict.itop-themes-compat.php b/datamodels/2.x/itop-themes-compat/dictionaries/tr.dict.itop-themes-compat.php similarity index 100% rename from datamodels/2.x/itop-themes-compat/tr.dict.itop-themes-compat.php rename to datamodels/2.x/itop-themes-compat/dictionaries/tr.dict.itop-themes-compat.php diff --git a/datamodels/2.x/itop-themes-compat/zh_cn.dict.itop-themes-compat.php b/datamodels/2.x/itop-themes-compat/dictionaries/zh_cn.dict.itop-themes-compat.php similarity index 100% rename from datamodels/2.x/itop-themes-compat/zh_cn.dict.itop-themes-compat.php rename to datamodels/2.x/itop-themes-compat/dictionaries/zh_cn.dict.itop-themes-compat.php diff --git a/datamodels/2.x/itop-welcome-itil/dictionaries/tr.dict.itop-welcome-itil.php b/datamodels/2.x/itop-welcome-itil/dictionaries/tr.dict.itop-welcome-itil.php index 69eeda2e5..f3ebccd37 100644 --- a/datamodels/2.x/itop-welcome-itil/dictionaries/tr.dict.itop-welcome-itil.php +++ b/datamodels/2.x/itop-welcome-itil/dictionaries/tr.dict.itop-welcome-itil.php @@ -1,23 +1,95 @@ /** - * Localized data - * - * @copyright Copyright (C) 2010-2021 Combodo SARL - * @license http://opensource.org/licenses/AGPL-3.0 - * - * This file is part of iTop. - * - * iTop is free software; you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * iTop is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with iTop. If not, see + * @copyright Copyright (C) 2010-2014 Combodo SARL + * @license http://opensource.org/licenses/AGPL-3.0 */ +Dict::Add('TR TR', 'Turkish', 'Türkçe', array( + 'Menu:DataSources' => 'Senkronizasyon Veri Kaynakları', + 'Menu:DataSources+' => 'Tüm Senkronizasyon Veri Kaynakları', + 'Menu:WelcomeMenu' => 'Hoşgeldiniz', + 'Menu:WelcomeMenu+' => ITOP_APPLICATION_SHORT.'\'a Hoşgeldiniz', + 'Menu:WelcomeMenuPage' => 'Hoşgeldiniz', + 'Menu:WelcomeMenuPage+' => ITOP_APPLICATION_SHORT.'\'a Hoşgeldiniz', + 'Menu:AdminTools' => 'Yönetim Araçları', + 'Menu:AdminTools+' => 'Yönetim Araçları', + 'Menu:AdminTools?' => 'Yönetici profiline izin verilen araçlar', + 'Menu:DataModelMenu' => 'Veri Modeli', + 'Menu:DataModelMenu+' => 'Veri Modeli Özeti', + 'Menu:ExportMenu' => 'Dışarı ver', + 'Menu:ExportMenu+' => 'Sorgu sonucunu HTML, CSV veya XML olarak dışarı aktar', + 'Menu:NotificationsMenu' => 'Uyarılar', + 'Menu:NotificationsMenu+' => 'Uyarıların yapılandırılması', + 'Menu:AuditCategories' => 'Denetleme Kategorileri', + 'Menu:AuditCategories+' => 'Denetleme Kategorileri', + 'Menu:Notifications:Title' => 'Denetleme Kategorileri', + 'Menu:RunQueriesMenu' => 'Sorgu çalıştır', + 'Menu:RunQueriesMenu+' => 'Sorgu çalıştır', + 'Menu:QueryMenu' => 'Sorgu deyişleri kitabı', + 'Menu:QueryMenu+' => 'Sorgu deyişleri kitabı', + 'Menu:UniversalSearchMenu' => 'Genel sorgu', + 'Menu:UniversalSearchMenu+' => 'Herhangi bir arama...', + 'Menu:UserManagementMenu' => 'Kullanıcı Yönetimi', + 'Menu:UserManagementMenu+' => 'Kullanıcı Yönetimi', + 'Menu:ProfilesMenu' => 'Profiller', + 'Menu:ProfilesMenu+' => 'Profiller', + 'Menu:ProfilesMenu:Title' => 'Profiller', + 'Menu:UserAccountsMenu' => 'Kullanıcı Hesapları', + 'Menu:UserAccountsMenu+' => 'Kullanıcı Hesapları', + 'Menu:UserAccountsMenu:Title' => 'Kullanıcı Hesapları', + 'Menu:MyShortcuts' => 'Kısayollarım', + 'Menu:UserManagement' => 'User Management~~', + 'Menu:Queries' => 'Queries~~', + 'Menu:ConfigurationTools' => 'Configuration~~', +)); +// +// Class: AbstractResource +// + +Dict::Add('TR TR', 'Turkish', 'Türkçe', array( + 'Class:AbstractResource' => 'Abstract Resource~~', + 'Class:AbstractResource+' => '~~', +)); + +// +// Class: ResourceAdminMenu +// + +Dict::Add('TR TR', 'Turkish', 'Türkçe', array( + 'Class:ResourceAdminMenu' => 'Resource Admin Menu~~', + 'Class:ResourceAdminMenu+' => '~~', +)); + +// +// Class: ResourceRunQueriesMenu +// + +Dict::Add('TR TR', 'Turkish', 'Türkçe', array( + 'Class:ResourceRunQueriesMenu' => 'Resource Run Queries Menu~~', + 'Class:ResourceRunQueriesMenu+' => '~~', +)); + +// +// Class: Action +// + +Dict::Add('TR TR', 'Turkish', 'Türkçe', array( + 'Class:ResourceSystemMenu' => 'Resource System Menu~~', + 'Class:ResourceSystemMenu+' => '~~', +)); diff --git a/datamodels/2.x/itop-welcome-itil/tr.dict.itop-welcome-itil.php b/datamodels/2.x/itop-welcome-itil/tr.dict.itop-welcome-itil.php deleted file mode 100644 index f3ebccd37..000000000 --- a/datamodels/2.x/itop-welcome-itil/tr.dict.itop-welcome-itil.php +++ /dev/null @@ -1,95 +0,0 @@ - -/** - * @copyright Copyright (C) 2010-2014 Combodo SARL - * @license http://opensource.org/licenses/AGPL-3.0 - */ -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( - 'Menu:DataSources' => 'Senkronizasyon Veri Kaynakları', - 'Menu:DataSources+' => 'Tüm Senkronizasyon Veri Kaynakları', - 'Menu:WelcomeMenu' => 'Hoşgeldiniz', - 'Menu:WelcomeMenu+' => ITOP_APPLICATION_SHORT.'\'a Hoşgeldiniz', - 'Menu:WelcomeMenuPage' => 'Hoşgeldiniz', - 'Menu:WelcomeMenuPage+' => ITOP_APPLICATION_SHORT.'\'a Hoşgeldiniz', - 'Menu:AdminTools' => 'Yönetim Araçları', - 'Menu:AdminTools+' => 'Yönetim Araçları', - 'Menu:AdminTools?' => 'Yönetici profiline izin verilen araçlar', - 'Menu:DataModelMenu' => 'Veri Modeli', - 'Menu:DataModelMenu+' => 'Veri Modeli Özeti', - 'Menu:ExportMenu' => 'Dışarı ver', - 'Menu:ExportMenu+' => 'Sorgu sonucunu HTML, CSV veya XML olarak dışarı aktar', - 'Menu:NotificationsMenu' => 'Uyarılar', - 'Menu:NotificationsMenu+' => 'Uyarıların yapılandırılması', - 'Menu:AuditCategories' => 'Denetleme Kategorileri', - 'Menu:AuditCategories+' => 'Denetleme Kategorileri', - 'Menu:Notifications:Title' => 'Denetleme Kategorileri', - 'Menu:RunQueriesMenu' => 'Sorgu çalıştır', - 'Menu:RunQueriesMenu+' => 'Sorgu çalıştır', - 'Menu:QueryMenu' => 'Sorgu deyişleri kitabı', - 'Menu:QueryMenu+' => 'Sorgu deyişleri kitabı', - 'Menu:UniversalSearchMenu' => 'Genel sorgu', - 'Menu:UniversalSearchMenu+' => 'Herhangi bir arama...', - 'Menu:UserManagementMenu' => 'Kullanıcı Yönetimi', - 'Menu:UserManagementMenu+' => 'Kullanıcı Yönetimi', - 'Menu:ProfilesMenu' => 'Profiller', - 'Menu:ProfilesMenu+' => 'Profiller', - 'Menu:ProfilesMenu:Title' => 'Profiller', - 'Menu:UserAccountsMenu' => 'Kullanıcı Hesapları', - 'Menu:UserAccountsMenu+' => 'Kullanıcı Hesapları', - 'Menu:UserAccountsMenu:Title' => 'Kullanıcı Hesapları', - 'Menu:MyShortcuts' => 'Kısayollarım', - 'Menu:UserManagement' => 'User Management~~', - 'Menu:Queries' => 'Queries~~', - 'Menu:ConfigurationTools' => 'Configuration~~', -)); - -// -// Class: AbstractResource -// - -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( - 'Class:AbstractResource' => 'Abstract Resource~~', - 'Class:AbstractResource+' => '~~', -)); - -// -// Class: ResourceAdminMenu -// - -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( - 'Class:ResourceAdminMenu' => 'Resource Admin Menu~~', - 'Class:ResourceAdminMenu+' => '~~', -)); - -// -// Class: ResourceRunQueriesMenu -// - -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( - 'Class:ResourceRunQueriesMenu' => 'Resource Run Queries Menu~~', - 'Class:ResourceRunQueriesMenu+' => '~~', -)); - -// -// Class: Action -// - -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( - 'Class:ResourceSystemMenu' => 'Resource System Menu~~', - 'Class:ResourceSystemMenu+' => '~~', -)); diff --git a/tests/php-unit-tests/integration-tests/DictionariesConsistencyTest.php b/tests/php-unit-tests/integration-tests/DictionariesConsistencyTest.php index c1bf7ba9e..41772368c 100644 --- a/tests/php-unit-tests/integration-tests/DictionariesConsistencyTest.php +++ b/tests/php-unit-tests/integration-tests/DictionariesConsistencyTest.php @@ -18,7 +18,6 @@ namespace Combodo\iTop\Test\UnitTest\Integration; use Combodo\iTop\Test\UnitTest\ItopTestCase; - /** * Wrapper to load dictionnary files without altering the main dictionnary * Eval will be called within the current namespace (this is done by adding a "namespace" statement) @@ -109,7 +108,7 @@ class DictionariesConsistencyTest extends ItopTestCase { $this->setUp(); - $sAppRoot = $this->GetAppRoot(); + $sAppRoot = static::GetAppRoot(); $aDictFiles = array_merge( glob($sAppRoot.'datamodels/2.x/*/*.dict*.php'), // legacy form in modules @@ -189,4 +188,13 @@ class DictionariesConsistencyTest extends ItopTestCase } $this->assertTrue(true); } + + public function testNoDictFileInDatamodelsModuleRootDirectory():void { + $sAppRoot = static::GetAppRoot(); + $aDictFilesInDatamodelsModuleRootDir = glob($sAppRoot.'datamodels/2.x/*/*.dict*.php'); + + $this->assertNotFalse($aDictFilesInDatamodelsModuleRootDir, 'Searching for files returned an error'); + $this->assertCount(0, $aDictFilesInDatamodelsModuleRootDir, + "There are some files in datamodels module root dirs ! You must move them to the `dictionaries` module subfolder. \n List of files: ".var_export($aDictFilesInDatamodelsModuleRootDir, true)); + } }