From 48e5d45d325bf8ad59bab8b31474f1224d338366 Mon Sep 17 00:00:00 2001 From: Benjamin Renard Date: Tue, 21 Mar 2023 12:59:55 +0100 Subject: [PATCH] LScli / LSlang: starting CLI commands messages translation --- src/includes/class/class.LScli.php | 87 ++++--- src/includes/class/class.LSlang.php | 69 ++--- src/lang/fr_FR.UTF8/LC_MESSAGES/ldapsaisie.mo | Bin 83125 -> 90271 bytes src/lang/fr_FR.UTF8/LC_MESSAGES/ldapsaisie.po | 243 +++++++++++++++++- src/lang/ldapsaisie.pot | 182 ++++++++++++- 5 files changed, 492 insertions(+), 89 deletions(-) diff --git a/src/includes/class/class.LScli.php b/src/includes/class/class.LScli.php index 3ec66b9c..8707970c 100644 --- a/src/includes/class/class.LScli.php +++ b/src/includes/class/class.LScli.php @@ -88,46 +88,54 @@ class LScli extends LSlog_staticLoggerClass { * Show usage message * * @param string|false $error Error message to display before usage message (optional, default: false) + * @param string $extra_args Optional argument use to compute error message using sprintf (if provided) * @return void **/ - public static function usage($error=false) { + public static function usage($error=false, ...$extra_args) { global $argv; - if ($error) + if ($error) { + if ($extra_args) + $error = call_user_func_array('sprintf', array_merge(array($error), $extra_args)); echo "$error\n\n"; + } - echo "Usage : ".basename($argv[0])." [-h] [-qdC] command\n"; - echo " -h Show this message\n"; - echo " -q|--quiet Quiet mode: nothing log on console (but keep other logging handler)\n"; - echo " -d|--debug Debug mode (set log level to DEBUG, default: WARNING)\n"; - echo " -v|--verbose Verbose mode (set log level to INFO, default: WARNING)\n"; - echo " --trace Trace mode (set log level to TRACE, default: WARNING)\n"; - echo " -C|--console Log on console with same log level as other handlers (otherwise, log only errors)\n"; - echo " -S|--ldap-server Connect to a specific LDAP server: you could specify a LDAP\n"; - echo " server by its declaration order in configuration (default:\n"; - echo " first one).\n"; - echo " -L|--load-class Load specific class to permit access to its CLI commands\n"; - echo " -A|--load-addons Load specific addon to permit access to its CLI commands\n"; - echo " command Command to run\n"; - echo "\n"; - echo "Available commands :\n"; + printf(_( +"Usage: %s [-h] [-qdC] command + -h Show this message + -q|--quiet Quiet mode: nothing log on console (but keep other logging handler) + -d|--debug Debug mode (set log level to DEBUG, default: WARNING) + -v|--verbose Verbose mode (set log level to INFO, default: WARNING) + --trace Trace mode (set log level to TRACE, default: WARNING) + -C|--console Log on console with same log level as other handlers (otherwise, log only errors) + -S|--ldap-server Connect to a specific LDAP server: you could specify a LDAP + server by its declaration order in configuration (default: + first one). + -L|--load-class Load specific class to permit access to its CLI commands + -A|--load-addons Load specific addon to permit access to its CLI commands + command Command to run + + Available commands: +"), basename($argv[0])); foreach (self :: $commands as $command => $info) { if (self :: $current_command and self :: $current_command != $command) continue; - echo " $command : ".$info['short_desc']."\n"; - echo " ".basename($argv[0])." $command ".($info['usage_args']?$info['usage_args']:'')."\n"; + echo " $command: ".__($info['short_desc'])."\n"; + echo " ".basename($argv[0])." $command ".($info['usage_args']?__($info['usage_args']):'')."\n"; if ($info['long_desc']) { - if (is_array($info['long_desc'])) + if (is_array($info['long_desc'])) { + $info['long_desc'] = array_map('__', $info['long_desc']); $info['long_desc'] = implode("\n", $info['long_desc']); - echo "\n ".str_replace("\n", "\n ", wordwrap($info['long_desc']))."\n"; + } + echo "\n ".str_replace("\n", "\n ", wordwrap(__($info['long_desc'])))."\n"; } echo "\n"; } if (empty(self :: $commands)) - echo " Currently no available command is declared.\n"; + echo " "._("Currently no available command is declared.")."\n"; - exit(($error?1:0)); + exit($error?1:0); } /** @@ -186,7 +194,7 @@ class LScli extends LSlog_staticLoggerClass { $i++; $ldap_server_id = intval($argv[$i]); if(!LSsession :: setLdapServer($ldap_server_id)) - self :: usage("Fail to select LDAP server #$ldap_server_id."); + self :: usage(_("Fail to select LDAP server #%s."), $ldap_server_id); break; case '--sub-dn': $i++; @@ -197,14 +205,14 @@ class LScli extends LSlog_staticLoggerClass { $i++; $class = $argv[$i]; if(!LSsession :: loadLSclass($class)) - self :: usage("Fail to load class '$class'."); + self :: usage(_("Fail to load class '%s'."), $class); break; case '-A': case '--load-addon': $i++; $addon = $argv[$i]; if(!LSsession :: loadLSaddon($addon)) - self :: usage("Fail to load addon '$addon'."); + self :: usage(_("Fail to load addon '%s'."), $addon); break; case '--': $command_args = array_merge($command_args, array_slice($argv, $i)); @@ -215,7 +223,8 @@ class LScli extends LSlog_staticLoggerClass { $command_args[] = $argv[$i]; else self :: usage( - getFData(_("Invalid parameter \"%{parameter}\".\nNote: Command's parameter/argument must be place after the command."), $argv[$i]) + _("Invalid parameter \"%s\".\nNote: Command's parameter/argument must be place after the command."), + $argv[$i] ); } } @@ -249,7 +258,7 @@ class LScli extends LSlog_staticLoggerClass { if ($ldap_server_subDn) { self :: need_ldap_con(); if(!LSsession :: setSubDn($ldap_server_subDn)) - self :: usage("Fail to select sub DN '$ldap_server_subDn'."); + self :: usage(_("Fail to select sub DN '%s'."), $ldap_server_subDn); } if (!$command) { @@ -259,7 +268,7 @@ class LScli extends LSlog_staticLoggerClass { // Select LDAP server (if not already done with -S/--ldap-server parameter) if ($ldap_server_id === false && !LSsession :: setLdapServer(0)) - self :: log_fatal('Fail to select first LDAP server.'); + self :: log_fatal(_('Fail to select first LDAP server.')); // Run command self :: run_command($command, $command_args); @@ -379,12 +388,12 @@ class LScli extends LSlog_staticLoggerClass { **/ public static function confirm($question=null) { if (is_null($question)) - $question = "Are you sure?"; - echo "\n$question Type 'yes' to continue: "; + $question = _("Are you sure?"); + printf(_("\n%s Type 'yes' to continue: "), $question); $handle = fopen ("php://stdin","r"); $line = fgets($handle); - if(trim($line) != 'yes'){ - echo "User cancel\n"; + if(trim($line) != _('yes')){ + echo _("User cancel\n"); return false; } echo "\n"; @@ -456,7 +465,7 @@ class LScli extends LSlog_staticLoggerClass { $ldap_server_id = intval($comp_words[$i]); self :: unquote_word($ldap_server_id); if(!LSsession :: setLdapServer($ldap_server_id)) - self :: usage("Fail to select LDAP server #$ldap_server_id."); + self :: usage(_("Fail to select LDAP server #%s."), $ldap_server_id); } break; case '--sub-dn': @@ -476,7 +485,7 @@ class LScli extends LSlog_staticLoggerClass { self :: unquote_word($ldap_server_subDn); self :: need_ldap_con(); if(!LSsession :: setSubDn($ldap_server_subDn)) - self :: usage("Fail to select sub DN '$ldap_server_subDn'."); + self :: usage(_("Fail to select sub DN '%s'.", $ldap_server_subDn)); break; case '-L': case '--load-class': @@ -491,7 +500,7 @@ class LScli extends LSlog_staticLoggerClass { $class = $comp_words[$i]; self :: unquote_word($class); if(!LSsession :: loadLSclass($class)) - self :: usage("Fail to load class '$class'."); + self :: usage(_("Fail to load class '%s'."), $class); break; case '-A': case '--load-addon': @@ -506,7 +515,7 @@ class LScli extends LSlog_staticLoggerClass { $addon = $comp_words[$i]; self :: unquote_word($addon); if(!LSsession :: loadLSaddon($addon)) - self :: usage("Fail to load addon '$addon'."); + self :: usage(_("Fail to load addon '%s'."), $addon); break; default: if (!in_array($comp_words[$i], $opts)) { @@ -524,7 +533,7 @@ class LScli extends LSlog_staticLoggerClass { asort($subDns); $subDn = key($subDns); if(!LSsession :: setSubDn($subDn)) - self :: usage("Fail to select sub DN '$subDn'."); + self :: usage(_("Fail to select sub DN '%s'."), $subDn); $opts[] = '--sub-dn'; } } @@ -852,7 +861,7 @@ ___("LScli : The CLI command '%{command}' handler is not callable.") LScli :: add_command( 'bash_autocomplete', array('LScli', 'bash_autocomplete'), - 'Handle BASH completion', + ___('Handle BASH completion'), '[arg num to autocomplete] -- [command args]', null, false diff --git a/src/includes/class/class.LSlang.php b/src/includes/class/class.LSlang.php index da963087..bf56d8ac 100644 --- a/src/includes/class/class.LSlang.php +++ b/src/includes/class/class.LSlang.php @@ -755,9 +755,9 @@ function cli_generate_lang_file($command_args) { $i++; $without = strtolower($command_args[$i]); if (!in_array($without, $available_withouts)) - LScli :: usage("Invalid -W/--without parameter. Must be one of the following values : '".implode("','", $available_withouts)."'."); + LScli :: usage(_("Invalid -W/--without parameter. Must be one of the following values: %s.'"), implode("','", $available_withouts)); elseif ($only) - LScli :: usage("You could not use only -W/--without parameter combined with -O/--only parameter."); + LScli :: usage(_("You could not use -W/--without parameter combined with -O/--only parameter.")); $withouts[] = $without; break; @@ -765,12 +765,12 @@ function cli_generate_lang_file($command_args) { case '-O': $i++; if ($only) - LScli :: usage("You could specify only on -O/--only parameter."); + LScli :: usage(_("You could specify only one -O/--only parameter.")); $only = strtolower($command_args[$i]); if (!in_array($only, $available_onlys)) - LScli :: usage("Invalid -O/--only parameter. Must be one of the following values : '".implode("','", $available_onlys)."'."); + LScli :: usage(_("Invalid -O/--only parameter. Must be one of the following values: %s.'"), implode("','", $available_onlys)); elseif ($withouts) - LScli :: usage("You could not use only -O/--only parameter combined with -W/--without parameter."); + LScli :: usage(_("You could not use -W/--without parameter combined with -O/--only parameter.")); break; case '-I': @@ -802,7 +802,7 @@ function cli_generate_lang_file($command_args) { $encoding = $parse_lang[1]; } else { - LScli :: usage("Invalid --lang parameter. Must be compose in format : [lang].[encoding]"); + LScli :: usage(_("Invalid -l/--lang parameter. Must be compose in format : [lang].[encoding]")); } break; @@ -817,7 +817,7 @@ function cli_generate_lang_file($command_args) { $i++; $format = strtolower($command_args[$i]); if (!in_array($format, $available_formats)) { - LScli :: usage("Invalid -f/--format parameter. Must be one of the following values : '".implode("','", $available_formats)."'."); + LScli :: usage(_("Invalid -f/--format parameter. Must be one of the following values: %s.'"), implode("','", $available_formats)); } break; @@ -841,7 +841,7 @@ function cli_generate_lang_file($command_args) { if (is_file($path)) $load_files[] = $path; else - LScli :: usage($command_args[$i]." : Invalid parameter or lang file to load."); + LScli :: usage(_("%s: Invalid parameter or lang file to load."), $command_args[$i]); } } @@ -1133,29 +1133,32 @@ function cli_generate_lang_file_args_autocompleter($comp_words, $comp_word_num, LScli :: add_command( 'generate_lang_file', 'cli_generate_lang_file', - 'Generate lang.php file', - 'l [lang] [-o output.file] [file1] [file2] [-h] [options]', + ___('Generate lang.php file'), + '-l [lang] [-o output.file] [file1] [file2] [-h] [options]', array( - " -W/--without Disable specified messages. Must be one of", - " the following values :", + ___( +" -W/--without Disable specified messages. Must be one of + the following values:"), " - ".implode("\n - ", $available_withouts), - " -O/--only Only handle specified messages. Must be one", - " of the following values :", +___( +" -O/--only Only handle specified messages. Must be one + of the following values :"), " - ".implode("\n - ", $available_onlys), - " -I/--include-upstream Include upstream code to message lookup", - " -c/--copy-original-value Copy original value as translated value when", - " no translated value exists", - " -i/--interactive Interactive mode : ask user to enter", - " translated on each translation needed", - " -a/--additional-file-format Additional file format output", - " -l/--lang Load the specify lang", - " Format: [lang].[encoding]", - " -o/--output Output file (default: stdout)", - " -f/--format Output file format : php or pot", - " (default: php)", - " -K/--keep-unused Keep unused translations in resulting file", - " -F/--fix-utf8 Try to load and fix broken UTF-8 characters in", - " existing lang files." +___( +" -I/--include-upstream Include upstream code to message lookup + -c/--copy-original-value Copy original value as translated value when + no translated value exists + -i/--interactive Interactive mode : ask user to enter + translated on each translation needed + -a/--additional-file-format Additional file format output + -l/--lang Language of the translation + Format: [lang].[encoding] + -o/--output Output file (default: stdout) + -f/--format Output file format : php or pot + (default: php) + -K/--keep-unused Keep unused translations in resulting file + -F/--fix-utf8 Try to load and fix broken UTF-8 characters + in existing lang files.") ), false, // This command does not need LDAP connection 'cli_generate_lang_file_args_autocompleter' @@ -1246,16 +1249,16 @@ function cli_generate_ldapsaisie_pot($command_args) { LScli :: add_command( 'generate_ldapsaisie_pot', 'cli_generate_ldapsaisie_pot', - 'Generate ldapsaisie.pot files :', + ___('Generate POT files:'), null, array( - "This command generate 3 POT files:", + ___("This command generate 3 POT files:"), " - ".LS_I18N_DIR_PATH."/ldapsaisie-main.pot", - " => contains messages from PHP files", + ___(" => contains messages from PHP files"), " - ".LS_I18N_DIR_PATH."/ldapsaisie-templates.pot", - " => contains messages from templates files", + ___(" => contains messages from templates files"), " - ".LS_I18N_DIR_PATH."/ldapsaisie.pot", - " => contains all messages", + ___(" => contains all messages"), ), false // This command does not need LDAP connection ); diff --git a/src/lang/fr_FR.UTF8/LC_MESSAGES/ldapsaisie.mo b/src/lang/fr_FR.UTF8/LC_MESSAGES/ldapsaisie.mo index 63dfc2489ba378620ee7e78f7fe78619bdbad594..10288d5dd64a107e1afaa49e21887a9cf089d1bb 100644 GIT binary patch delta 21177 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 delta 14331 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\n" "Language-Team: LdapSaisie \n" @@ -1107,6 +1107,123 @@ msgstr "Ou laisser vide pour copier le message original?\n" msgid "Or leave empty to pass.\n" msgstr "Or leave empty to pass.\n" +#: includes/class/class.LSlang.php:758 +#, php-format +msgid "" +"Invalid -W/--without parameter. Must be one of the following values: %s.'" +msgstr "" +"Paramètre -W/--without invalide. Doit-être une des valeurs suivantes : %s." + +#: includes/class/class.LSlang.php:760 includes/class/class.LSlang.php:773 +msgid "" +"You could not use -W/--without parameter combined with -O/--only parameter." +msgstr "" +"Vous ne pouvez pas utiliser les paramètres -W/--without et -O/--only " +"ensemble." + +#: includes/class/class.LSlang.php:768 +msgid "You could specify only one -O/--only parameter." +msgstr "Vous ne pouvez spécifier qu'un seul paramètre -O/--only." + +#: includes/class/class.LSlang.php:771 +#, php-format +msgid "Invalid -O/--only parameter. Must be one of the following values: %s.'" +msgstr "" +"Paramètre -O/--only invalide. Doit-être une des valeurs suivantes : %s." + +#: includes/class/class.LSlang.php:805 +msgid "" +"Invalid -l/--lang parameter. Must be compose in format : [lang].[encoding]" +msgstr "" +"Paramètre -l/--lang invalide. Doit-être composé au format : [lang].[encoding]" + +#: includes/class/class.LSlang.php:820 +#, php-format +msgid "" +"Invalid -f/--format parameter. Must be one of the following values: %s.'" +msgstr "" +"Paramètre -f/--format invalide. Doit-être une des valeurs suivantes : %s." + +#: includes/class/class.LSlang.php:844 +#, php-format +msgid "%s: Invalid parameter or lang file to load." +msgstr "%s : Paramètre ou fichier de traductions à charger invalide." + +#: includes/class/class.LSlang.php:1136 +msgid "Generate lang.php file" +msgstr "Générer le fichier lang.php" + +#: includes/class/class.LSlang.php:1140 +msgid "" +" -W/--without Disable specified messages. Must be one of\n" +" the following values:" +msgstr "" +" -W/--without Désactiver les messages spécifiés. Doit\n" +" être une des valeurs suivants :" + +#: includes/class/class.LSlang.php:1144 +msgid "" +" -O/--only Only handle specified messages. Must be one\n" +" of the following values :" +msgstr "" +" -O/--only Gérer uniquement les messages spécifiés.\n" +" Doit-être une des valeurs suivantes :" + +#: includes/class/class.LSlang.php:1148 +msgid "" +" -I/--include-upstream Include upstream code to message lookup\n" +" -c/--copy-original-value Copy original value as translated value when\n" +" no translated value exists\n" +" -i/--interactive Interactive mode : ask user to enter\n" +" translated on each translation needed\n" +" -a/--additional-file-format Additional file format output\n" +" -l/--lang Language of the translation\n" +" Format: [lang].[encoding]\n" +" -o/--output Output file (default: stdout)\n" +" -f/--format Output file format : php or pot\n" +" (default: php)\n" +" -K/--keep-unused Keep unused translations in resulting file\n" +" -F/--fix-utf8 Try to load and fix broken UTF-8 characters\n" +" in existing lang files." +msgstr "" +" -I/--include-upstream Inclure le code upstream dans la recherche de\n" +" messages\n" +" -c/--copy-original-value Copier le message d'origine lorsqu'aucune\n" +" traduction n'est disponible\n" +" -i/--interactive Mode interactif : demander à l'utilisateur\n" +" de saisir les traductions lorsque nécessaire\n" +" -a/--additional-file-format Format de fichier de sortie additionnel\n" +" -l/--lang Langue de la traduction\n" +" Format : [lang].[encoding]\n" +" -o/--output Fichier de sortie (par défaut : stdout)\n" +" -f/--format Format du fichier de sortie : php ou pot\n" +" (par défaut: php)\n" +" -K/--keep-unused Conserver les messages traduits non-utilisés\n" +" dans le fichier\n" +" -F/--fix-utf8 Essayer de charger et réparer les\n" +" caractères UTF-8 invalides dans les fichiers\n" +" de traductions existants." + +#: includes/class/class.LSlang.php:1252 +msgid "Generate POT files:" +msgstr "Générer les fichiers POT:" + +#: includes/class/class.LSlang.php:1255 +msgid "This command generate 3 POT files:" +msgstr "Cette commande génère 3 fichiers POT :" + +#: includes/class/class.LSlang.php:1257 +msgid " => contains messages from PHP files" +msgstr " => contient les messages issues des fichiers PHP" + +#: includes/class/class.LSlang.php:1259 +msgid " => contains messages from templates files" +msgstr " => contient les messages issues des fichiers de templates" + +#: includes/class/class.LSlang.php:1261 +msgid " => contains all messages" +msgstr " => contient tous -W/--withoutles messages" + #: includes/class/class.LStemplate.php:160 msgid "LStemplate : compile directory is not writable (dir : %{dir})" msgstr "" @@ -2873,25 +2990,134 @@ msgstr "La boîte mail a été supprimée." msgid "Role" msgstr "Rôle" -#: includes/class/class.LScli.php:218 +#: includes/class/class.LScli.php:104 +#, php-format msgid "" -"Invalid parameter \"%{parameter}\".\n" +"Usage: %s [-h] [-qdC] command\n" +" -h Show this message\n" +" -q|--quiet Quiet mode: nothing log on console (but keep other " +"logging handler)\n" +" -d|--debug Debug mode (set log level to DEBUG, default: WARNING)\n" +" -v|--verbose Verbose mode (set log level to INFO, default: WARNING)\n" +" --trace Trace mode (set log level to TRACE, default: WARNING)\n" +" -C|--console Log on console with same log level as other handlers " +"(otherwise, log only errors)\n" +" -S|--ldap-server Connect to a specific LDAP server: you could specify a " +"LDAP\n" +" server by its declaration order in configuration " +"(default:\n" +" first one).\n" +" -L|--load-class Load specific class to permit access to its CLI " +"commands\n" +" -A|--load-addons Load specific addon to permit access to its CLI " +"commands\n" +" command Command to run\n" +"\n" +" Available commands:\n" +msgstr "" +"Usage: %s [-h] [-qdC] commande\n" +" -h Afficher ce message\n" +" -q|--quiet Mode silencieux : rien ne sera afficher sur la console\n" +" (mais conversé dans les autres canaux de " +"journalisation)\n" +" -d|--debug Mode debug (définir le niveau de log à DEBUG, par " +"défaut : WARNING)\n" +" -v|--verbose Mode verbeux (définir le niveau de log à INFO, par " +"défaut : WARNING)\n" +" --trace Mode trace (définir le niveau de log à TRACE, par " +"défaut : WARNING)\n" +" -C|--console Journalisation des messages dans la console au même " +"niveaux que les\n" +" autres canaux (autrement, affichage des messages " +"d'erreur uniquement)\n" +" -S|--ldap-server Connexion au serveur LDAP spécifié : vous pouvez " +"spécifier un serveur\n" +" par son ordre déclaration dans le fichier de " +"configuration\n" +" (par défaut: le premier).\n" +" -L|--load-class Charger la classe spécifiée pour permettre l'accès à ses " +"commandes CLI\n" +" -A|--load-addons Charger l'addon spécifié pour permettre l'accès à ses " +"commandes CLI\n" +" commande La commande à exécuter\n" +"\n" +" Commandes disponibles :\n" + +#: includes/class/class.LScli.php:136 +msgid "Currently no available command is declared." +msgstr "Aucune commande n'est disponible actuellement." + +#: includes/class/class.LScli.php:197 includes/class/class.LScli.php:468 +#, php-format +msgid "Fail to select LDAP server #%s." +msgstr "Impossible de sélectionner le serveur LDAP #%s." + +#: includes/class/class.LScli.php:208 includes/class/class.LScli.php:503 +#, php-format +msgid "Fail to load class '%s'." +msgstr "Impossible de charger la classe '%s'." + +#: includes/class/class.LScli.php:215 includes/class/class.LScli.php:518 +#, php-format +msgid "Fail to load addon '%s'." +msgstr "Échec de chargement de l'addon '%s'." + +#: includes/class/class.LScli.php:226 +#, php-format +msgid "" +"Invalid parameter \"%s\".\n" "Note: Command's parameter/argument must be place after the command." msgstr "" -"Paramètre \"%{parameter}\" invalide.\n" +"Paramètre \"%s\" invalide.\n" "Note: Les paramètres/arguments de la commande doivent être placés après " "celle-ci." -#: includes/class/class.LScli.php:843 +#: includes/class/class.LScli.php:261 includes/class/class.LScli.php:488 +#: includes/class/class.LScli.php:536 +#, php-format +msgid "Fail to select sub DN '%s'." +msgstr "Échec de sélection du sous DN '%s'." + +#: includes/class/class.LScli.php:271 +msgid "Fail to select first LDAP server." +msgstr "Impossible de sélectionner le premier serveur LDAP." + +#: includes/class/class.LScli.php:391 +msgid "Are you sure?" +msgstr "Vous êtes sûre ?" + +#: includes/class/class.LScli.php:392 +#, php-format +msgid "" +"\n" +"%s Type 'yes' to continue: " +msgstr "" +"\n" +"%s Entrer 'oui' pour continuer : " + +#: includes/class/class.LScli.php:395 templates/default/import.tpl:26 +#: templates/default/import.tpl:32 +msgid "yes" +msgstr "oui" + +#: includes/class/class.LScli.php:396 +msgid "User cancel\n" +msgstr "Annulation par l'utilisateur\n" + +#: includes/class/class.LScli.php:852 msgid "LScli : The CLI command '%{command}' already exists." msgstr "LScli : La commande CLI '%{command}' existe déjà." -#: includes/class/class.LScli.php:846 +#: includes/class/class.LScli.php:855 msgid "LScli : The CLI command '%{command}' handler is not callable." msgstr "" "LScli : La fonction de prise en charge de la commande CLI '%{command}' n'est " "pas exécutable." +#: includes/class/class.LScli.php:864 +msgid "Handle BASH completion" +msgstr "Gérer la complétion BASH" + #: includes/class/class.LSioFormatCSV.php:294 msgid "LSioFormatCSV: function fputcsv is not available." msgstr "LSioFormatCSV : la fonction fputcsv n'est pas disponible." @@ -3441,9 +3667,8 @@ msgstr "événement(s) trouvé(s) pour cet objet." msgid "no" msgstr "non" -#: templates/default/import.tpl:26 templates/default/import.tpl:32 -msgid "yes" -msgstr "oui" +#~ msgid "Generate ldapsaisie.pot files:" +#~ msgstr "Générer les fichiers POT :" #~ msgid "" #~ "SAMBA Support: The attribute %{dependency} is missing. Unable to forge " diff --git a/src/lang/ldapsaisie.pot b/src/lang/ldapsaisie.pot index 1b505529..3591ff36 100644 --- a/src/lang/ldapsaisie.pot +++ b/src/lang/ldapsaisie.pot @@ -971,6 +971,96 @@ msgstr "" msgid "Or leave empty to pass.\n" msgstr "" +#: includes/class/class.LSlang.php:758 +#, php-format +msgid "" +"Invalid -W/--without parameter. Must be one of the following values: %s.'" +msgstr "" + +#: includes/class/class.LSlang.php:760 includes/class/class.LSlang.php:773 +msgid "" +"You could not use -W/--without parameter combined with -O/--only parameter." +msgstr "" + +#: includes/class/class.LSlang.php:768 +msgid "You could specify only one -O/--only parameter." +msgstr "" + +#: includes/class/class.LSlang.php:771 +#, php-format +msgid "Invalid -O/--only parameter. Must be one of the following values: %s.'" +msgstr "" + +#: includes/class/class.LSlang.php:805 +msgid "" +"Invalid -l/--lang parameter. Must be compose in format : [lang].[encoding]" +msgstr "" + +#: includes/class/class.LSlang.php:820 +#, php-format +msgid "" +"Invalid -f/--format parameter. Must be one of the following values: %s.'" +msgstr "" + +#: includes/class/class.LSlang.php:844 +#, php-format +msgid "%s: Invalid parameter or lang file to load." +msgstr "" + +#: includes/class/class.LSlang.php:1136 +msgid "Generate lang.php file" +msgstr "" + +#: includes/class/class.LSlang.php:1140 +msgid "" +" -W/--without Disable specified messages. Must be one of\n" +" the following values:" +msgstr "" + +#: includes/class/class.LSlang.php:1144 +msgid "" +" -O/--only Only handle specified messages. Must be one\n" +" of the following values :" +msgstr "" + +#: includes/class/class.LSlang.php:1148 +msgid "" +" -I/--include-upstream Include upstream code to message lookup\n" +" -c/--copy-original-value Copy original value as translated value when\n" +" no translated value exists\n" +" -i/--interactive Interactive mode : ask user to enter\n" +" translated on each translation needed\n" +" -a/--additional-file-format Additional file format output\n" +" -l/--lang Language of the translation\n" +" Format: [lang].[encoding]\n" +" -o/--output Output file (default: stdout)\n" +" -f/--format Output file format : php or pot\n" +" (default: php)\n" +" -K/--keep-unused Keep unused translations in resulting file\n" +" -F/--fix-utf8 Try to load and fix broken UTF-8 characters\n" +" in existing lang files." +msgstr "" + +#: includes/class/class.LSlang.php:1252 +msgid "Generate POT files:" +msgstr "" + +#: includes/class/class.LSlang.php:1255 +msgid "This command generate 3 POT files:" +msgstr "" + +#: includes/class/class.LSlang.php:1257 +msgid " => contains messages from PHP files" +msgstr "" + +#: includes/class/class.LSlang.php:1259 +msgid " => contains messages from templates files" +msgstr "" + +#: includes/class/class.LSlang.php:1261 +msgid " => contains all messages" +msgstr "" + #: includes/class/class.LStemplate.php:160 msgid "LStemplate : compile directory is not writable (dir : %{dir})" msgstr "" @@ -2468,20 +2558,100 @@ msgstr "" msgid "Role" msgstr "" -#: includes/class/class.LScli.php:218 +#: includes/class/class.LScli.php:104 +#, php-format msgid "" -"Invalid parameter \"%{parameter}\".\n" +"Usage: %s [-h] [-qdC] command\n" +" -h Show this message\n" +" -q|--quiet Quiet mode: nothing log on console (but keep other " +"logging handler)\n" +" -d|--debug Debug mode (set log level to DEBUG, default: WARNING)\n" +" -v|--verbose Verbose mode (set log level to INFO, default: WARNING)\n" +" --trace Trace mode (set log level to TRACE, default: WARNING)\n" +" -C|--console Log on console with same log level as other handlers " +"(otherwise, log only errors)\n" +" -S|--ldap-server Connect to a specific LDAP server: you could specify a " +"LDAP\n" +" server by its declaration order in configuration " +"(default:\n" +" first one).\n" +" -L|--load-class Load specific class to permit access to its CLI " +"commands\n" +" -A|--load-addons Load specific addon to permit access to its CLI " +"commands\n" +" command Command to run\n" +"\n" +" Available commands:\n" +msgstr "" + +#: includes/class/class.LScli.php:136 +msgid "Currently no available command is declared." +msgstr "" + +#: includes/class/class.LScli.php:197 includes/class/class.LScli.php:468 +#, php-format +msgid "Fail to select LDAP server #%s." +msgstr "" + +#: includes/class/class.LScli.php:208 includes/class/class.LScli.php:503 +#, php-format +msgid "Fail to load class '%s'." +msgstr "" + +#: includes/class/class.LScli.php:215 includes/class/class.LScli.php:518 +#, php-format +msgid "Fail to load addon '%s'." +msgstr "" + +#: includes/class/class.LScli.php:226 +#, php-format +msgid "" +"Invalid parameter \"%s\".\n" "Note: Command's parameter/argument must be place after the command." msgstr "" -#: includes/class/class.LScli.php:843 +#: includes/class/class.LScli.php:261 includes/class/class.LScli.php:488 +#: includes/class/class.LScli.php:536 +#, php-format +msgid "Fail to select sub DN '%s'." +msgstr "" + +#: includes/class/class.LScli.php:271 +msgid "Fail to select first LDAP server." +msgstr "" + +#: includes/class/class.LScli.php:391 +msgid "Are you sure?" +msgstr "" + +#: includes/class/class.LScli.php:392 +#, php-format +msgid "" +"\n" +"%s Type 'yes' to continue: " +msgstr "" + +#: includes/class/class.LScli.php:395 templates/default/import.tpl:26 +#: templates/default/import.tpl:32 +msgid "yes" +msgstr "" + +#: includes/class/class.LScli.php:396 +msgid "User cancel\n" +msgstr "" + +#: includes/class/class.LScli.php:852 msgid "LScli : The CLI command '%{command}' already exists." msgstr "" -#: includes/class/class.LScli.php:846 +#: includes/class/class.LScli.php:855 msgid "LScli : The CLI command '%{command}' handler is not callable." msgstr "" +#: includes/class/class.LScli.php:864 +msgid "Handle BASH completion" +msgstr "" + #: includes/class/class.LSioFormatCSV.php:294 msgid "LSioFormatCSV: function fputcsv is not available." msgstr "" @@ -3006,7 +3176,3 @@ msgstr "" #: templates/default/import.tpl:27 templates/default/import.tpl:33 msgid "no" msgstr "" - -#: templates/default/import.tpl:26 templates/default/import.tpl:32 -msgid "yes" -msgstr ""