From cda7cc999b23011854413a05213051210514a40f Mon Sep 17 00:00:00 2001 From: Jean-Christian Denis Date: Sat, 25 Sep 2021 23:14:51 +0200 Subject: [PATCH] add module to check deprecated Dotclear function --- CHANGELOG.md | 2 +- _admin.php | 1 + _prepend.php | 29 +- inc/class.improve.action.php | 2 +- inc/lib.improve.action.dcdeprecated.php | 94 ++++++ locales/fr/main.lang.php | 364 ------------------------ locales/fr/main.po | 147 +--------- 7 files changed, 128 insertions(+), 511 deletions(-) create mode 100644 inc/lib.improve.action.dcdeprecated.php delete mode 100644 locales/fr/main.lang.php diff --git a/CHANGELOG.md b/CHANGELOG.md index 7b1a119..35c6c9d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,9 @@ 0.2 -dev - [ ] add global config for file size limit -- [ ] add module to check depracated Dotclear function - [ ] add module to check deprecated PHP function - [ ] add module to check directory structure - [ ] write documentation of php class +- [x] add module to check deprecated Dotclear function 0.1.2 - add logs / report systeme diff --git a/_admin.php b/_admin.php index ace60c8..bd1497d 100644 --- a/_admin.php +++ b/_admin.php @@ -15,6 +15,7 @@ $core->blog->settings->addNamespace('improve'); $core->addBehavior('adminDashboardFavorites', ['ImproveBehaviors', 'adminDashboardFavorites']); +$core->addBehavior('improveAddAction', ['ImproveActionDcdeprecated', 'create']); $core->addBehavior('improveAddAction', ['ImproveActionDcstore', 'create']); $core->addBehavior('improveAddAction', ['ImproveActionEndoffile', 'create']); $core->addBehavior('improveAddAction', ['ImproveActionGitshields', 'create']); diff --git a/_prepend.php b/_prepend.php index 4785a56..6fb4e52 100644 --- a/_prepend.php +++ b/_prepend.php @@ -15,16 +15,21 @@ if (!defined('DC_RC_PATH')) { return; } -$d = dirname(__FILE__) . '/inc/'; -$__autoload['Improve'] = $d . 'class.improve.php'; -$__autoload['ImproveAction'] = $d . 'class.improve.action.php'; +$improve_libs = [ + 'Improve' => 'class.improve.php', + 'ImproveAction' => 'class.improve.action.php', -$__autoload['ImproveActionDcstore'] = $d . 'lib.improve.action.dcstore.php'; -$__autoload['ImproveActionEndoffile'] = $d . 'lib.improve.action.php'; -$__autoload['ImproveActionGitshields'] = $d . 'lib.improve.action.gitshields.php'; -$__autoload['ImproveActionLicensefile'] = $d . 'lib.improve.action.licensefile.php'; -$__autoload['ImproveActionNewline'] = $d . 'lib.improve.action.php'; -$__autoload['ImproveActionPhpheader'] = $d . 'lib.improve.action.phpheader.php'; -$__autoload['ImproveActionTab'] = $d . 'lib.improve.action.php'; -$__autoload['ImproveActionZip'] = $d . 'lib.improve.action.zip.php'; -$__autoload['ImproveZipFileZip'] = $d . 'lib.improve.action.zip.php'; \ No newline at end of file + 'ImproveActionDcdeprecated' => 'lib.improve.action.dcdeprecated.php', + 'ImproveActionDcstore' => 'lib.improve.action.dcstore.php', + 'ImproveActionEndoffile' => 'lib.improve.action.php', + 'ImproveActionGitshields' => 'lib.improve.action.gitshields.php', + 'ImproveActionLicensefile' => 'lib.improve.action.licensefile.php', + 'ImproveActionNewline' => 'lib.improve.action.php', + 'ImproveActionPhpheader' => 'lib.improve.action.phpheader.php', + 'ImproveActionTab' => 'lib.improve.action.php', + 'ImproveActionZip' => 'lib.improve.action.zip.php', + 'ImproveZipFileZip' => 'lib.improve.action.zip.php' +]; +foreach($improve_libs as $class => $file) { + $__autoload[$class] = dirname(__FILE__) . '/inc/' . $file; +} \ No newline at end of file diff --git a/inc/class.improve.action.php b/inc/class.improve.action.php index 33a8656..e9a1a3f 100644 --- a/inc/class.improve.action.php +++ b/inc/class.improve.action.php @@ -188,7 +188,7 @@ abstract class ImproveAction true ); $this->core->blog->triggerBlog(); - dcPage::addSuccessNotice(__('Configuration successfully updated.')); + dcPage::addSuccessNotice(__('Configuration successfully updated')); http::redirect($url); } diff --git a/inc/lib.improve.action.dcdeprecated.php b/inc/lib.improve.action.dcdeprecated.php new file mode 100644 index 0000000..9352adf --- /dev/null +++ b/inc/lib.improve.action.dcdeprecated.php @@ -0,0 +1,94 @@ + [ + ['adminPostsActionsCombo', 'adminPostsActionsCombo', 'adminPostsActionsPage'], + ['adminPostsActionsHeaders', 'adminPostsActionsHeaders', 'adminPostsActionsPage'], + ['adminPostsActionsContent', 'adminPostsActionsContent', 'adminPostsActionsPage'], + ['adminCommentsActionsCombo', 'adminCommentsActionsCombo', 'adminCommentsActionsCombo'], + ['adminCommentsActionsHeaders', 'adminCommentsActionsHeaders', 'adminCommentsActionsPage'], + ['adminCommentsActionsContent', 'adminCommentsActionsContent', 'adminCommentsActionsPage'], + ['adminPagesActionsCombo', 'adminPagesActionsCombo', 'adminPagesActionsCombo', 'adminPagesActionsPage'], + ['adminPagesActionsHeaders', 'adminPagesActionsHeaders', 'adminPagesActionsPage'], + ['adminPagesActionsContent', 'adminPagesActionsContent', 'adminPagesActionsPage'], + + ['comments_actions.php', 'comments_actions.php', 'dcCommentsActionsPage'], + ['posts_actions.php', 'posts_actions.php', 'dcPostsActionsPage'], + + ['global_filter', 'global_filter', 'tpl_context::global_filters', '2.11'], + + ['getLangFile', 'getLangFile', 'nothing', 'unknow'], + ['getTextDirection', 'getTextDirection', 'getLanguageTextDirection'], + + ['dcUtils::jsVar(s|)', 'dcUtils::jsVar(s)', 'dcUtils::jsJson', '2.15'], + ['adminurl->decode', '$core->adminurl->decode', 'nothing'], + ['dcPage::help[^B]', 'dcPage::help', 'nothing'], + ['dcPage::jsVar(s|)', 'dcPage::jsVar(s)', 'dcPage::jsJson', '2.15'], + ['dcPage::jsLoadIE7', 'dcPage::jsLoadIE7', 'nothing', '2.11'], + ['dcPage::jsColorPicker', 'dcPage::jsColorPicker', 'nothing', '2.16'], + ['dcPage::jsToolBar', 'dcPage::jsToolBar', 'nothing'], + + ['adminPostForm[^I]', 'adminPostForm', 'adminPostFormItems'], + ['adminPostFormSidebar', 'adminPostFormSidebar', 'adminPostFormItems'], + + ['three-cols', 'three-cols', 'three-boxes', '2.6'] + ], + 'js' => [ + ['\sstoreLocalData', 'storeLocalData', 'dotclear.storeLocalData'], + ['\sdropLocalData', 'dropLocalData', 'dotclear.dropLocalData'], + ['\sreadLocalData', 'readLocalData', 'dotclear.readLocalData'], + ['\sgetData', 'getData', 'dotclear.getData'], + ['\sisObject', 'isObject', 'dotclear.isObject'], + ['\smergeDeep', 'mergeDeep', 'dotclear.mergeDeep'], + ['\sgetCookie', 'getCookie', 'dotclear.getCookie'], + ['\ssetCookie', 'setCookie', 'dotclear.setCookie'], + ['\sdeleteCookie', 'deleteCookie', 'dotclear.deleteCookie'] + ] + ]; + + protected function init(): bool + { + $this->setProperties([ + 'id' => 'dcdeprecated', + 'name' => __('Dotclear deprecated'), + 'desc' => __('Search for use of deprecated Dotclear functions'), + 'priority' => 520, + 'types' => ['plugin', 'theme'] + ]); + + return true; + } + + public function isConfigured(): bool + { + return true; + } + + public function readFile(&$content): ?bool + { + if (!in_array($this->path_extension, array_keys(self::$deprecated))) { + return null; + } + foreach(self::$deprecated[$this->path_extension] as $d) { + if (preg_match('/' . $d[0] . '/i', $content)) { + $this->setWarning(sprintf(__('Use of deprecated "%s", you should use "%s" instead.'), $d[1], __($d[2]))); + } + } + + return true; + } +} \ No newline at end of file diff --git a/locales/fr/main.lang.php b/locales/fr/main.lang.php deleted file mode 100644 index 7f06122..0000000 --- a/locales/fr/main.lang.php +++ /dev/null @@ -1,364 +0,0 @@ - 1);\n" -#: inc/class.improve.php:142 -#: inc/class.improve.php:145 msgid "Begin" msgstr "Début" -#: inc/class.improve.php:150 msgid "Module path is not writable" msgstr "Le chemin du module n'est pas accessible en écriture" -#: inc/class.improve.php:181 msgid "File content has been removed: %s by %s" msgstr "Le contenu du fichier a été supprimé : %s par %s" -#: inc/class.improve.php:196 -#: inc/class.improve.php:198 msgid "End" msgstr "Fin" -#: inc/lib.improve.action.dcstore.php:20 +msgid "Dotclear deprecated" +msgstr "Dépréciés de Dotclear" + +msgid "Search for use of deprecated Dotclear functions" +msgstr "Recherche l'utilisation de fonctions dépréciées de Dotclear" + +msgid "Use of deprecated \"%s\", you should use \"%s\" instead." +msgstr "Utilisation dépréciée de \"%s\", vous devriez utiliser \"%s\" à la place." + msgid "Store file" msgstr "Fichier de dépôt" -#: inc/lib.improve.action.dcstore.php:21 msgid "Re-create dcstore.xml file according to _define.php variables" msgstr "Re-créer le fichier dcstore.xml suivant les variables du fichier _define.php" -#: inc/lib.improve.action.dcstore.php:43 msgid "File will be overwritten if it exists" msgstr "Le fichier sera réécrit si il existe" -#: inc/lib.improve.action.dcstore.php:45 msgid "Predictable URL to zip file on the external repository" msgstr "URL prédictive du fichier zip sur le dépôt externe" -#: inc/lib.improve.action.dcstore.php:49 -#: inc/lib.improve.action.phpheader.php:102 msgid "You can use wildcards %s" msgstr "Vous pouvez utiliser les jokers suivants : %s." -#: inc/lib.improve.action.dcstore.php:51 msgid "For exemple on github https://github.com/MyGitName/%id%/releases/download/v%version%/%type%-%id%.zip" msgstr "Par exemple sur github https://github.com/MyGitName/%id%/releases/download/v%version%/%type%-%id%.zip" -#: inc/lib.improve.action.dcstore.php:53 msgid "Note on github, you must create a release and join to it the module zip file." msgstr "Note sur Github, vous devez créer un release et y joindre le fichier zip du module." -#: inc/lib.improve.action.dcstore.php:65 msgid "Write dcstore.xml file." msgstr "Ecrire le fichier dcstore.xml" -#: inc/lib.improve.action.dcstore.php:67 msgid "Failed to write dcstore.xml file" msgstr "Impossible d'écrire le fichier dcstore.xml" -#: inc/lib.improve.action.dcstore.php:81 msgid "unkow module id" msgstr "Id du module inconu" -#: inc/lib.improve.action.dcstore.php:87 msgid "unknow module name" msgstr "nom du module inconnu" -#: inc/lib.improve.action.dcstore.php:93 msgid "unknow module version" msgstr "version du module inconnue" -#: inc/lib.improve.action.dcstore.php:99 msgid "unknow module author" msgstr "auteur du module inconnu" -#: inc/lib.improve.action.dcstore.php:106 msgid "unknow module description" msgstr "description du module inconnue" -#: inc/lib.improve.action.dcstore.php:112 msgid "no repository set in _define.php" msgstr "Aucun dépôt défini dans le fichier _define.php" -#: inc/lib.improve.action.dcstore.php:118 msgid "no zip file pattern set in configuration" msgstr "Pas de modèle de fichier zip présent dans la configuration" -#: inc/lib.improve.action.dcstore.php:135 msgid "no minimum dotclear version" msgstr "pas de version minimum de Dotclear" -#: inc/lib.improve.action.dcstore.php:142 msgid "no details URL" msgstr "Lien de détail non défini" -#: inc/lib.improve.action.dcstore.php:155 msgid "no support URL" msgstr "Lien de support non défini" -#: inc/lib.improve.action.gitshields.php:34 msgid "Shields badges" msgstr "Badges Shields.io" -#: inc/lib.improve.action.gitshields.php:35 msgid "Add and maintain shields.io badges to the REDAME.md file" msgstr "Ajoute et maintient à jour les badges shields.io du fichier README.md" -#: inc/lib.improve.action.gitshields.php:60 msgid "Your Github user name :" msgstr "Votre \"username\" Github :" -#: inc/lib.improve.action.gitshields.php:62 msgid "Used in your Github URL: http://github.com/username/module_id." msgstr "Utilisé dans l'URL Github tel que : http://github.com/username/module_id." -#: inc/lib.improve.action.gitshields.php:63 msgid "If you have badges not created by this tool in the README.md file you should remove them manually." msgstr "Si vous avez déjà des badges non créés par cet outil, vous devrez les retirer manuellement." -#: inc/lib.improve.action.gitshields.php:67 msgid "Include Dotaddict badge" msgstr "Inclure le badge Dotaddict" -#: inc/lib.improve.action.gitshields.php:68 msgid "If your plugin or theme is on Dotaddict, you can add a badge to link to its details in Dotaddict." msgstr "Si votre plugin ou theme est sur Dotaddict, vous pouvez ajouter un badge lier à ses détails sur DA." -#: inc/lib.improve.action.gitshields.php:117 msgid "Prepare custom shield info" msgstr "préparer les informations personnalisées" -#: inc/lib.improve.action.gitshields.php:147 msgid "Write new shield bloc" msgstr "Ecrire le nouveau bloc Shield" -#: inc/lib.improve.action.gitshields.php:162 msgid "Delete old shield bloc" msgstr "Effacer l'ancine bloc Shield" -#: inc/lib.improve.action.licensefile.php:29 msgid "License file" msgstr "Fichier de licence" -#: inc/lib.improve.action.licensefile.php:30 msgid "Add or remove full license file to module root" msgstr "Ajoute ou supprime le fichier de licence" -#: inc/lib.improve.action.licensefile.php:36 msgid "no version selected" msgstr "aucune version selectionnée" -#: inc/lib.improve.action.licensefile.php:43 -#: inc/lib.improve.action.phpheader.php:55 msgid "Do nothing" msgstr "Ne rien faire" -#: inc/lib.improve.action.licensefile.php:44 msgid "Add file if it does not exist" msgstr "Ajouter le fichier si il n'existe pas" -#: inc/lib.improve.action.licensefile.php:45 msgid "Add file even if it exists" msgstr "Ajouter le fichier même si il existe" -#: inc/lib.improve.action.licensefile.php:46 msgid "Add file and remove others" msgstr "Ajouter la nouvelle licence et supprimer les autres" -#: inc/lib.improve.action.licensefile.php:47 msgid "Remove license files" msgstr "Supprimer les fichiers de licence" -#: inc/lib.improve.action.licensefile.php:68 msgid "License version:" msgstr "Version de la licence :" -#: inc/lib.improve.action.licensefile.php:72 msgid "Action on file:" msgstr "Action sur le fichier :" -#: inc/lib.improve.action.licensefile.php:84 msgid "No full license type selected" msgstr "Pas de type de licence seletionné" -#: inc/lib.improve.action.licensefile.php:97 msgid "Failed to load license content" msgstr "Impossible de charger le contenu de la licence" -#: inc/lib.improve.action.licensefile.php:102 msgid "Write new license file \"LICENSE\"" msgstr "Écrire le nouveau fichier \"LICENSE\" de licence" -#: inc/lib.improve.action.licensefile.php:104 msgid "Failed to write new license file" msgstr "Impossible d'écrire le nouveau fichier de licence" -#: inc/lib.improve.action.licensefile.php:118 msgid "Old license file is not deletable (%s)" msgstr "L'ancien fichier de licence n'est pas supprimable (%s)" -#: inc/lib.improve.action.licensefile.php:120 msgid "Failed to delete old license file (%s)" msgstr "Impossible de supprimer l'ancien fichier de licence (%s)" -#: inc/lib.improve.action.licensefile.php:122 msgid "Delete old license file \"%s\"" msgstr "Effacer l'ancien fichier de Licence \"%s\"" -#: inc/lib.improve.action.php:20 msgid "Tabulations" msgstr "Tabulations" -#: inc/lib.improve.action.php:21 msgid "Replace tabulation by four space in php files" msgstr "Remplace les tabulation par quatre espaces dans les fichiers php" -#: inc/lib.improve.action.php:36 msgid "Replace tabulation by spaces" msgstr "Remplacer les tabulations" -#: inc/lib.improve.action.php:57 msgid "Newlines" msgstr "Retour à la ligne" -#: inc/lib.improve.action.php:58 msgid "Replace bad and repetitive and empty newline by single newline in files" msgstr "Remplace les mauvais ou répétitifs retour à la ligne par une seule nouvelle ligne" -#: inc/lib.improve.action.php:95 msgid "List of files extension to work on:" msgstr "Liste des extensions de fichier à corriger:" -#: inc/lib.improve.action.php:98 msgid "Use comma separated list of extensions without dot, recommand \"php,js,xml,txt,md\"." msgstr "Utiliser une liste d'extensions séparé par des virgules et sans le point, recommandation: \"php,js,xml,txt,md\"." -#: inc/lib.improve.action.php:122 msgid "Replace bad new lines" msgstr "Remplacer les retours à la ligne" -#: inc/lib.improve.action.php:138 msgid "End of files" msgstr "Fin de fichiers" -#: inc/lib.improve.action.php:139 msgid "Remove php tag and empty lines from end of files" msgstr "Supprimer le tag PHP et les lignes vides de fin de fichiers" -#: inc/lib.improve.action.php:163 msgid "Add a blank line to the end of file" msgstr "Ajouter une ligne vide en fin de fichier" -#: inc/lib.improve.action.php:165 msgid "PSR2 must have a blank line, whereas PSR12 must not." msgstr "PSR2 doit avoir une ligne vide, alors que PSR12 non." -#: inc/lib.improve.action.php:180 msgid "Replace end of file" msgstr "Remplacer les fins de fichiers" -#: inc/lib.improve.action.phpheader.php:47 msgid "PHP header" msgstr "Entête de fichier PHP" -#: inc/lib.improve.action.phpheader.php:48 msgid "Add or remove phpdoc header bloc from php file" msgstr "Ajouter ou supprimer les bloc d'entête phpdoc des fichiers php" -#: inc/lib.improve.action.phpheader.php:56 msgid "Add bloc if it does not exist" msgstr "Ajouter les blocs si ils n'existent pas déjà" -#: inc/lib.improve.action.phpheader.php:57 msgid "Add and overwrite bloc" msgstr "Ajouter et écraser les blocs" -#: inc/lib.improve.action.phpheader.php:58 msgid "Overwrite bloc only if it exists" msgstr "Ecraser les blocs seulement si ils existent" -#: inc/lib.improve.action.phpheader.php:59 msgid "Remove existing bloc header" msgstr "Retirer les blocs d'entête existant" -#: inc/lib.improve.action.phpheader.php:83 msgid "Action:" msgstr "Action :" -#: inc/lib.improve.action.phpheader.php:89 msgid "Remove old style bloc header (using #)" msgstr "Supprimer les bloc d'entête ancien (utilisant #)" -#: inc/lib.improve.action.phpheader.php:94 msgid "Do not add bloc to files from \"locales\" and \"libs\" folder" msgstr "Ne pas ajouter les blocs d'entête aux fichiers des répertoires \"locales\" et \"llibs\"" -#: inc/lib.improve.action.phpheader.php:97 msgid "Bloc content:" msgstr "Contenu du bloc :" -#: inc/lib.improve.action.phpheader.php:104 msgid "Do not put structural elements to the begining of lines." msgstr "Ne pas mettre d'élément de structure en début de ligne" -#: inc/lib.improve.action.phpheader.php:121 msgid "Skip directory" msgstr "Ignorer le répertoire" -#: inc/lib.improve.action.phpheader.php:167 msgid "bloc is empty" msgstr "le bloc est vide" -#: inc/lib.improve.action.phpheader.php:195 msgid "Prepare header info" msgstr "Préparer les informations d'entête" -#: inc/lib.improve.action.phpheader.php:197 msgid "Failed to parse bloc" msgstr "Impossible de préparer le bloc" -#: inc/lib.improve.action.phpheader.php:213 msgid "Write new doc bloc content" msgstr "Ecrire le nouveau contenu de bloc" -#: inc/lib.improve.action.phpheader.php:228 msgid "Delete old doc bloc content" msgstr "Effacer l'ancien contenu de type phpdoc" -#: inc/lib.improve.action.phpheader.php:243 msgid "Delete old style bloc content" msgstr "Effacer l'ancien contenu de type ancien" -#: inc/lib.improve.action.zip.php:42 msgid "Zip module" msgstr "Zipper le module" -#: inc/lib.improve.action.zip.php:43 msgid "Compress module into a ready to install package" msgstr "Compresser le module en un paquetage près à installer" -#: inc/lib.improve.action.zip.php:73 msgid "Root" msgstr "Racine" -#: inc/lib.improve.action.zip.php:75 msgid "Path to repository:" msgstr "Chemin vers le dépôt :" -#: inc/lib.improve.action.zip.php:78 -#: inc/lib.improve.action.zip.php:89 -#: inc/lib.improve.action.zip.php:94 -#: inc/lib.improve.action.zip.php:108 msgid "Preconization: %s" msgstr "Préconisation : %s" -#: inc/lib.improve.action.zip.php:79 msgid "Blog's public directory" msgstr "Répertoire public du blog" -#: inc/lib.improve.action.zip.php:84 msgid "Files" msgstr "Fichiers" -#: inc/lib.improve.action.zip.php:86 msgid "Name of exported package:" msgstr "Nom du paquetage exporté :" -#: inc/lib.improve.action.zip.php:91 msgid "Name of second exported package:" msgstr "Nom du second paquetage exporté :" -#: inc/lib.improve.action.zip.php:98 msgid "Overwrite existing package" msgstr "Écraser les paquetages existants" -#: inc/lib.improve.action.zip.php:105 msgid "Extra files to exclude from package:" msgstr "Fichiers supplémentaires à exclure du paquetage :" -#: inc/lib.improve.action.zip.php:109 msgid "By default all these files are always removed from packages : %s" msgstr "Pas défaut tous ces fichiers sont toujours exclu des paquetages : %s" -#: inc/lib.improve.action.zip.php:113 msgid "Remove comments from files" msgstr "Retirer les commentaires des fichiers" -#: inc/lib.improve.action.zip.php:124 msgid "Prepare excluded files \"%s\"" msgstr "Préparer les fichiers à exclure \"%s\"" -#: inc/lib.improve.action.zip.php:127 msgid "Prepare comment removal" msgstr "Préparer le retrait des commentaires" -#: inc/lib.improve.action.zip.php:157 msgid "Destination filename already exists" msgstr "Le fichier de destination existe déjà" -#: inc/lib.improve.action.zip.php:162 msgid "Destination path is not writable" msgstr "Le répertoire de destination n'est pas accessible en écriture" -#: inc/lib.improve.action.zip.php:186 msgid "Zip module into \"%s\"" msgstr "Zipper le module vers \"%s\"" -#: index.php:54 msgid "Select a module" msgstr "Sélectionner un module" -#: index.php:69 msgid "No action selected" msgstr "Aucune action sélectionné" -#: index.php:72 msgid "No module selected" msgstr "Aucun module sélectionné" -#: index.php:85 msgid "Fix of \"%s\" complete in %s secondes with errors" msgstr "Fixe de \"%s\" complété en %s secondes avec des erreurs" -#: index.php:87 msgid "Fix of \"%s\" complete in %s secondes with warnings" msgstr "Fixe de \"%s\" complété en %s secondes avec des avertissements" -#: index.php:89 msgid "Fix of \"%s\" complete in %s secondes" msgstr "Fixe de \"%s\" complété en %s secondes" -#: index.php:91 msgid "Fix of \"%s\" complete in %s secondes without messages" msgstr "Fixe de \"%s\" complété en %s secondes sans message" -#: index.php:105 -#: index.php:111 -#: index.php:112 -#: index.php:149 msgid "Themes" msgstr "Thèmes" -#: index.php:107 -#: index.php:177 msgid "Configure module" msgstr "Configurer le module" -#: index.php:130 msgid "Configure module \"%s\"" msgstr "Configurer le module \"%s\"" -#: index.php:134 msgid "Nothing to configure" msgstr "Rien à configurer" -#: index.php:143 msgid "Unknow module" msgstr "Module inconnu" -#: index.php:152 msgid "No module to manage" msgstr "Aucun module à gérer" -#: index.php:177 msgid "Configure action '%s'" msgstr "Configurer l'action \"%s\"" -#: index.php:187 msgid "Save fields selection as preference" msgstr "Enregistrer la sélection comme préférence" -#: index.php:188 msgid "Select a module:" msgstr "Sélectionner un module :" -#: index.php:191 msgid "Fix it" msgstr "Corriger" +msgid "nothing" +msgstr "rien ?" +