Source for file jInstallerMessageProvider.class.php

Documentation is available at jInstallerMessageProvider.class.php

  1. <?php
  2. /**
  3. @package  jelix
  4. @subpackage core
  5. @author   Laurent Jouanneau
  6. @contributor Bastien Jaillot
  7. @copyright 2007-2009 Laurent Jouanneau, 2008 Bastien Jaillot
  8. @link     http://www.jelix.org
  9. @licence  GNU Lesser General Public Licence see LICENCE file or http://www.gnu.org/licenses/lgpl.html
  10. @since 1.0b2
  11. */
  12.  
  13. /**
  14.  * message provider for jInstallCheck and jInstaller
  15.  * @package  jelix
  16.  * @subpackage core
  17.  * @since 1.0b2
  18.  */
  19. class jInstallerMessageProvider {
  20.     protected $currentLang;
  21.  
  22.     protected $messages = array(
  23.         'fr'=>array(
  24.        'checker.title'=>'Vérification de l\'installation de Jelix',
  25.         'number.errors'         =>' erreurs.',
  26.         'number.error'          =>' erreur.',
  27.         'number.warnings'       =>' avertissements.',
  28.         'number.warning'        =>' avertissement.',
  29.         'number.notices'        =>' remarques.',
  30.         'number.notice'         =>' remarque.',
  31.         'build.not.found'       =>'Le fichier BUILD de jelix est introuvable',
  32.         'conclusion.error'      =>'Vous devez corriger l\'erreur pour faire fonctionner correctement l\'application.',
  33.         'conclusion.errors'     =>'Vous devez corriger les erreurs pour faire fonctionner correctement l\' application.',
  34.         'conclusion.warning'    =>'L\'application peut à priori fonctionner, mais il est préférable de corriger l\'avertissement pour être sûr.',
  35.         'conclusion.warnings'   =>'L\'application peut à priori fonctionner, mais il est préférable de corriger les avertissements pour être sûr.',
  36.         'conclusion.notice'     =>'Les prerequis essentiels pour faire fonctionner l\'application sont ok malgré la remarque.',
  37.         'conclusion.notices'    =>'Les prerequis essentiels pour faire fonctionner l\'application sont ok malgré les remarques.',
  38.         'conclusion.ok'         =>'Les prerequis essentiels pour faire fonctionner l\'application sont ok',
  39.         'cannot.continue'       =>'Les vérifications ne peuvent continuer : %s',
  40.         'extension.not.installed'=>'L\'extension %s n\'est pas disponible',
  41.         'extension.optional.not.installed'=>'L\'extension %s optionnelle n\'est pas disponible',
  42.         'extension.required.not.installed'=>'L\'extension %s obligatoire n\'est pas disponible',
  43.         'extension.installed'=>'L\'extension %s est disponible',
  44.         'extension.optional.installed'=>'L\'extension %s optionnelle est disponible',
  45.         'extension.required.installed'=>'L\'extension %s obligatoire est disponible',
  46.         'extensions.required.ok'=>'Toutes les extensions PHP obligatoires sont disponibles',
  47.         'extension.database.ok'=>'L\'application utilisera une base de données SQL',
  48.         'extension.database.ok2'=>'L\'application pourra utiliser une base de données SQL',
  49.         'extension.database.missing'=>'L\'application a besoin d\'une base de données SQL',
  50.         'extension.database.missing2'=>'L\'application ne pourra pas utiliser de base de données SQL',
  51.         'path.core'             =>'Le fichier init.php  de jelix ou le fichier application.ini.php de votre application n\'est pas chargé',
  52.         'path.temp'             =>'Le repertoire temporaire n\'est pas accessible en écriture ou alors le chemin du répertoire temp n\'est pas configurée comme il faut',
  53.         'path.log'              =>'Le repertoire var/log dans votre application n\'est pas accessible en écriture ou alors le chemin du répertoire de log n\'est pas configurée comme il faut',
  54.         'path.var'              =>'Le chemin du répertoire var n\'est pas configuré correctement : ce répertoire n\'existe pas',
  55.         'path.config'           =>'Le chemin du répertoire config n\'est pas configuré correctement : ce répertoire n\'existe pas',
  56.         'path.www'              =>'Le chemin du répertoire www n\'est pas configuré correctement : ce répertoire n\'existe pas',
  57.         'path.config.writable' =>'Le répertoire var/config n\'a pas les droits en écriture',
  58.         'path.profiles.writable'=>'Le fichier profiles.ini.php n\'a pas les droits en écriture',
  59.         'path.defaultconfig.writable'=>'Le fichier defaultconfig.ini.php n\'a pas les droits en écriture',
  60.         'path.installer.writable'=>'Le fichier installer.ini.php n\'a pas les droits en écriture',
  61.         'path.custom.not.exists'=>'Le fichier %s n\'existe pas, ses droits ne peuvent être vérifiés',
  62.         'path.custom.writable'=>'Le fichier %s n\'a pas les droits en écriture',
  63.         'path.custom.ok'=>'Le fichier %s a les droits en écriture',
  64.         'php.bad.version'       =>'Mauvaise version de PHP',
  65.         'php.version.current'   =>'Version PHP courante : %s',
  66.         'php.ok.version'        =>'La version PHP %s installée est correcte',
  67.         'php.version.required'  =>'L\'application nécessite au moins PHP %s',
  68.         'too.critical.error'    =>'Trop d\'erreurs critiques sont apparues. Corrigez les.',
  69.         'config.file'           =>'La variable $config_file n\'existe pas ou le fichier qu\'elle indique n\'existe pas',
  70.         'paths.ok'              =>'Les répertoires temp, log, var, config et www sont ok',
  71.         'ini.magic_quotes_gpc'  =>'php.ini : l\'activation des magic quotes n\'est pas prise en charge par jelix. Vous devez les désactiver',
  72.         'ini.magic_quotes_runtime'=>'php.ini : magic_quotes_runtime doit être à off',
  73.         'ini.session.auto_start'=>'php.ini : session.auto_start doit être à off',
  74.         'ini.safe_mode'         =>'php.ini : le safe_mode est obsolète et n\'est pas recommandé.',
  75.         'ini.register_globals'  =>'php.ini : il faut désactiver register_globals, pour des raisons de sécurité et parce que cette option n\'est pas nécessaire.',
  76.         'ini.asp_tags'          =>'php.ini : il est conseillé de désactiver asp_tags. Cette option n\'est pas nécessaire.',
  77.         'ini.ok'                =>'Les paramètres de php sont ok',
  78.  
  79.         'module.unknown'        =>'Module inconnu',
  80.         'module.circular.dependency'=>"Dépendance circulaire ! le composant %s ne peut être installé",
  81.         'module.needed'         =>'Pour installer le module %s, ces modules doivent être présent : %s',
  82.         'module.bad.jelix.version'=>'Le module %s necessite une autre version de jelix (%s - %s)',
  83.         'module.bad.dependency.version'=>'Le module %s necessite une autre version du module %s (%s - %s)',
  84.         'module.installer.class.not.found'=>'La classe d\'installation %s pour le module %s n\'existe pas',
  85.         'module.upgrader.class.not.found'=>'La classe de mise à jour %s pour le module %s n\'existe pas',
  86.  
  87.         'install.entrypoint.start'  =>'Installation pour le point d\'entrée %s',
  88.         'install.entrypoint.end'    =>'Tous les modules sont installés ou mis à jour pour le point d\'entrée %s',
  89.         'install.entrypoint.bad.end'=>'Installation interrompue pour cause d\'erreurs pour le point d\'entrée %s',
  90.         'install.entrypoint.installers.disabled'=>'Les scripts d\'installation et de mise à jour ne seront pas executés, ils sont désactivés dans la configuration.',
  91.  
  92.         'install.dependencies.ok'   =>'Toutes les dépendances des modules sont valides',
  93.         'install.bad.dependencies'  =>'Il y a des erreurs dans les dépendances. Installation annulée.',
  94.         'install.invalid.xml.file'  =>'Le fichier identité %s est invalide ou inexistant',
  95.  
  96.         'install.module.already.installed'  =>'Le module %s déjà installé',
  97.         'install.module.installed'          =>'Le module %s est installé',
  98.         'install.module.error'              =>'Une erreur est survenue durant l\'installation du module %s: %s',
  99.         'install.module.check.dependency'   =>'Vérifie les dépendances du module %s',
  100.         'install.module.upgraded'           =>'Le module %s est mis à jour à la version %s',
  101.  
  102.         ),
  103.  
  104.         'en'=>array(
  105.         'checker.title'     =>'Jelix Installation checking',
  106.         'number.errors'     =>' errors.',
  107.         'number.error'      =>' error.',
  108.         'number.warnings'   =>' warnings.',
  109.         'number.warning'    =>' warning.',
  110.         'number.notices'    =>' notices.',
  111.         'number.notice'     =>' notice.',
  112.         'build.not.found'   =>'BUILD jelix file is not found',
  113.         'conclusion.error'  =>'You must fix the error in order to run your application correctly.',
  114.         'conclusion.errors' =>'You must fix errors in order to run your application correctly.',
  115.         'conclusion.warning'=>'Your application may run without problems, but it is recommanded to fix the warning.',
  116.         'conclusion.warnings'=>'Your application may run without problems, but it is recommanded to fix warnings.',
  117.         'conclusion.notice' =>'The main prerequisites to run your application are ok, although there is a notice.',
  118.         'conclusion.notices'=>'The main prerequisites to run your application are ok, although there are notices.',
  119.         'conclusion.ok'     =>'The main prerequisites to run your application are ok',
  120.         'cannot.continue'       =>'Cannot continue the checking: %s',
  121.         'extension.not.installed'=>'The extension %s is not available',
  122.         'extension.optional.not.installed'=>'the optional extension %s is not available',
  123.         'extension.required.not.installed'=>'the required extension %s is not available',
  124.         'extension.installed'=>'The extension %s is available',
  125.         'extension.optional.installed'=>'the optional extension %s is available',
  126.         'extension.required.installed'=>'the required extension %s is available',
  127.         'extensions.required.ok'=>'All needed PHP extensions are available',
  128.         'extension.database.ok'=>'The application will use a SQL database',
  129.         'extension.database.ok2'=>'The application can use SQL databases',
  130.         'extension.database.missing'=>'The application needs a SQL database',
  131.         'extension.database.missing2'=>'The application couldn\'t use a SQL database',
  132.         'path.core'             =>'jelix init.php file or application.ini.php file is not loaded',
  133.         'path.temp'             =>'temp/yourApp directory is not writable or the application temp path is not correctly set !',
  134.         'path.log'              =>'var/log directory (in the directory of your application) is not writable or the application log path is not correctly set!',
  135.         'path.var'              =>'The application var path is not correctly set: var directory  doesn\'t exist!',
  136.         'path.config'           =>'The application config path is not correctly set: config directory  doesn\'t exist!',
  137.         'path.www'              =>'The application www path is not correctly set: www directory  doesn\'t exist!',
  138.         'path.config.writable' =>'The directory var/config have not write rights',
  139.         'path.profiles.writable'=>'The file profiles.ini.php have not write rights',
  140.         'path.defaultconfig.writable'=>'The file defaultconfig.ini.php have not write rights',
  141.         'path.installer.writable'=>'The file installer.ini.php have not write rights',
  142.         'path.custom.not.exists'=>'The file %s is not found, rights cannot be validated',
  143.         'path.custom.writable'=>'The file %s have not write rights',
  144.         'path.custom.ok'=>'The file %s have write rights',
  145.         'php.bad.version'       =>'Bad PHP version',
  146.         'php.version.current'   =>'Current PHP version: %s',
  147.         'php.ok.version'        =>'The PHP version %s is ok',
  148.         'php.version.required'  =>'The application requires at least PHP %s',
  149.         'too.critical.error'    =>'Too much critical errors. Fix them.',
  150.         'config.file'           =>'$config_file variable does not exist or doesn\'t contain a correct application config file name',
  151.         'paths.ok'              =>'temp, log, var, config and www directory are ok',
  152.         'ini.magic_quotes_gpc'  =>'php.ini: magic quotes are not supported by Jelix. You must deactivate it into PHP',
  153.         'ini.magic_quotes_runtime'=>'php.ini: magic_quotes_runtime must be off',
  154.         'ini.session.auto_start'=>'php.ini: session.auto_start must be off',
  155.         'ini.safe_mode'         =>'php.ini: safe_mode is deprecated and is not recommended.',
  156.         'ini.register_globals'  =>'php.ini: you must deactivate register_globals, for security reasons, and because this option is not needed.',
  157.         'ini.asp_tags'          =>'php.ini: you should deactivate asp_tags. No need to have this option.',
  158.         'ini.ok'                =>'php settings are ok',
  159.  
  160.         'module.unknown'        =>'Unknown module %s',
  161.         'module.circular.dependency'=>"Circular dependency ! Cannot install the component %s",
  162.         'module.needed'         =>'To install %s these modules are needed: %s',
  163.         'module.bad.jelix.version'=>'The module %s needs another jelix version (%s - %s)',
  164.         'module.bad.dependency.version'=>'The module %s needs another version of the module %s (%s - %s)',
  165.         'module.installer.class.not.found'=>'The installation class %s for the module %s doesn\'t exist',
  166.         'module.upgrader.class.not.found'=>'The upgrade class %s for the module %s doesn\'t exist',
  167.  
  168.         'install.entrypoint.start'  =>'Installation starts for the entry point %s',
  169.         'install.entrypoint.end'    =>'All modules are installed or upgraded for the entry point %s',
  170.         'install.entrypoint.bad.end'=>'Installation/upgrade is aborted for the entry point %s',
  171.         'install.entrypoint.installers.disabled'=>'Installation scripts and update scripts will not be executed: it is disabled in the configuration.',
  172.  
  173.         'install.dependencies.ok'   =>'All modules dependencies are ok',
  174.         'install.bad.dependencies'  =>'Error in dependencies. Installation cancelled.',
  175.         'install.invalid.xml.file'  =>'The identity file  %s is invalid or not found',
  176.  
  177.         'install.module.already.installed'=>'Module %s is already installed',
  178.         'install.module.installed'      =>'Module %s installed',
  179.         'install.module.error'          =>'An error occured during the installation of the module %s: %s',
  180.         'install.module.check.dependency'=>'Check dependencies of the module %s',
  181.         'install.module.upgraded'       =>'Module %s upgraded to the version %s',
  182.  
  183.  
  184.         ),
  185.     );
  186.  
  187.     function __construct($lang=''){
  188.         if($lang == '' && isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])){
  189.             $languages explode(','$_SERVER['HTTP_ACCEPT_LANGUAGE']);
  190.             foreach($languages as $bl){
  191.                 // pour les user-agents qui livrent un code internationnal
  192.                 if(preg_match("/^([a-zA-Z]{2,3})(?:[-_]([a-zA-Z]{2,3}))?(;q=[0-9]\\.[0-9])?$/",$bl,$match)){
  193.                     $lang strtolower($match[1]);
  194.                     break;
  195.                 }
  196.             }
  197.         }elseif(preg_match("/^([a-zA-Z]{2,3})(?:[-_]([a-zA-Z]{2,3}))?$/",$lang,$match)){
  198.             $lang strtolower($match[1]);
  199.         }
  200.         if($lang == '' || !isset($this->messages[$lang])){
  201.             $lang 'en';
  202.         }
  203.         $this->currentLang = $lang;
  204.     }
  205.  
  206.     function get($key$params null){
  207.         if(isset($this->messages[$this->currentLang][$key])){
  208.             $msg $this->messages[$this->currentLang][$key];
  209.         }else{
  210.             throw new Exception ("Error : don't find error message '$key'");
  211.         }
  212.  
  213.         if ($params !== null || (is_array($params&& count($params0)) {
  214.             $msg call_user_func_array('sprintf'array_merge (array ($msg)is_array ($params$params array ($params)));
  215.         }
  216.         return $msg;
  217.     }
  218.  
  219.     function getLang(){
  220.         return $this->currentLang;
  221.     }
  222. }

Documentation generated on Wed, 04 Jan 2017 22:55:37 +0100 by phpDocumentor 1.4.3