diff --git a/src/app/components/calculator-list/calculator-list.component.html b/src/app/components/calculator-list/calculator-list.component.html
index 755776307d46fbada6025fbdc34317706615aef4..7a948010ef1f6f2a785ecfb05d871981983d9d1a 100644
--- a/src/app/components/calculator-list/calculator-list.component.html
+++ b/src/app/components/calculator-list/calculator-list.component.html
@@ -6,6 +6,9 @@
                 (keydown.escape)="resetSearch()">
         </mat-form-field>
     </form>
+    <div *ngIf="filteredItems.length === 0">
+        {{ uitextSearchNoResult }}
+    </div>
 </div>
 
 <div class="container" fxLayout="row wrap" fxLayoutAlign="space-evenly stretch" (konami)="onKC()">
diff --git a/src/app/components/calculator-list/calculator-list.component.ts b/src/app/components/calculator-list/calculator-list.component.ts
index 51c7563a5967348e00e3b814e89b63002d2e9f00..1e05c7b1ea359a78ab0aa507c32567763cc95a6a 100644
--- a/src/app/components/calculator-list/calculator-list.component.ts
+++ b/src/app/components/calculator-list/calculator-list.component.ts
@@ -70,6 +70,7 @@ export class CalculatorListComponent implements OnInit {
                         item.calculators.push({
                             type: calcType,
                             label: ServiceFactory.formulaireService.getLocalisedTitleFromCalculatorType(calcType),
+                            description: ServiceFactory.formulaireService.getLocalisedDescriptionFromCalculatorType(calcType),
                             buttonId: "create-calc-" + calcType
                         });
                         // mark as used
@@ -187,7 +188,7 @@ export class CalculatorListComponent implements OnInit {
             // filter items based on parent component's search field
             for (const i of this.filteredItems) {
                 i.calculators = i.calculators.filter((c) => {
-                    return (c.label.toLowerCase().includes(this.searchTerms.toLowerCase()));
+                    return this.searchMatches(c.label) || this.searchMatches(c.description);
                 });
             }
             this.filteredItems = this.filteredItems.filter((i) => {
@@ -196,6 +197,29 @@ export class CalculatorListComponent implements OnInit {
         }
     }
 
+    /**
+     * Returns true if given str matches this.searchTerms: all terms (separated
+     * by " ") must match, in any order
+     */
+    private searchMatches(str: string): boolean {
+        let ok = false;
+        let terms = this.searchTerms.split(" ");
+        terms = terms.filter(
+            (item, index) => item !== "" && terms.indexOf(item) === index // deduplicate and remove ""
+        );
+        if (terms.length > 1) {
+            // all terms must match
+            ok = terms.every((t) => {
+                return str.toLowerCase().includes(t.toLowerCase());
+            });
+        } else if (terms.length > 0) {
+            ok = (str.toLowerCase().includes(terms[0].toLowerCase()));
+        } else {
+            ok = true;
+        }
+        return ok;
+    }
+
     /**
      * IMPORTANT: keep in sync with app/examples folder contents
      */
@@ -258,6 +282,10 @@ export class CalculatorListComponent implements OnInit {
         return ServiceFactory.i18nService.localizeText("INFO_EXAMPLES_SUBTITLE");
     }
 
+    public get uitextSearchNoResult() {
+        return ServiceFactory.i18nService.localizeText("INFO_SEARCH_NO_RESULT");
+    }
+
     public onKC() {
         for (const i of this._items) {
             const img = [ "assets/images/themes/sp.jpg", "assets/images/themes/autres.jpg" ];
diff --git a/src/app/services/formulaire.service.ts b/src/app/services/formulaire.service.ts
index 89653c92fbae12f2e70af680c9987dd08acaf36e..d4cdb6ef29af0b04ac60d3991cf1a3ea151bde0e 100644
--- a/src/app/services/formulaire.service.ts
+++ b/src/app/services/formulaire.service.ts
@@ -146,6 +146,14 @@ export class FormulaireService extends Observable {
         return this._intlService.localizeText(`INFO_${sCalculator}_TITRE`);
     }
 
+    /**
+     * Retourne la description du type de module de calcul, dans la langue en cours
+     */
+    public getLocalisedDescriptionFromCalculatorType(type: CalculatorType) {
+        const sCalculator: string = CalculatorType[type].toUpperCase();
+        return this._intlService.localizeText(`INFO_${sCalculator}_DESCRIPTION`);
+    }
+
     /**
      * Retourne le titre cour du type de module de calcul, dans la langue en cours
      * (pour les titres d'onglets par défaut)
diff --git a/src/locale/messages.en.json b/src/locale/messages.en.json
index e5991f549c18967a2283d73480ab147ec033b61f..529148f6dd5fe422f2a7392c13f2bb60615bc7e0 100644
--- a/src/locale/messages.en.json
+++ b/src/locale/messages.en.json
@@ -82,19 +82,25 @@
     "INFO_CALCULATOR_SAVE": "Save",
     "INFO_CALCULATOR_USED_BY": "Used by",
     "INFO_CALCULATOR_VALEURS": "Values",
+    "INFO_BIEF_DESCRIPTION": "",
     "INFO_BIEF_TITRE_COURT": "Reach",
     "INFO_BIEF_TITRE": "Up/downstream elevations of a reach",
+    "INFO_CLOISONS_DESCRIPTION": "",
     "INFO_CLOISONS_TITRE_COURT": "Cross walls",
     "INFO_CLOISONS_TITRE": "Fish ladder: Cross walls",
     "INFO_CLOSE_DIALOGUE_DEPENDING_MODULES": "The following modules depend on the one you are closing:",
     "INFO_CLOSE_DIALOGUE_TEXT": "Warning ! Parameters and results of this module will be lost.",
     "INFO_CLOSE_DIALOGUE_TITRE": "Closing calculation module",
     "INFO_CONCENTRATIONBLOCS_TITRE": "Blocks concentration",
+    "INFO_CONCENTRATIONBLOCS_DESCRIPTION": "",
     "INFO_CONCENTRATIONBLOCS_TITRE_COURT": "Blocks conc.",
+    "INFO_CONDUITEDISTRIBUTRICE_DESCRIPTION": "",
     "INFO_CONDUITEDISTRIBUTRICE_TITRE_COURT": "Distrib.",
     "INFO_CONDUITEDISTRIBUTRICE_TITRE": "Distributor pipe",
+    "INFO_COURBEREMOUS_DESCRIPTION": "",
     "INFO_COURBEREMOUS_TITRE_COURT": "Backwater",
     "INFO_COURBEREMOUS_TITRE": "Backwater curves",
+    "INFO_DEVER_DESCRIPTION": "",
     "INFO_DEVER_TITRE_COURT": "Free weir",
     "INFO_DEVER_TITRE": "Free flow weir stage-discharge laws",
     "INFO_DIAGRAM_SOLVEUR_FINDS": "finds",
@@ -206,8 +212,10 @@
     "INFO_FIELDSET_MOVE_DOWN": "Move down",
     "INFO_FIELDSET_MOVE_LEFT": "Move left",
     "INFO_FIELDSET_MOVE_RIGHT": "Move right",
+    "INFO_GRILLE_DESCRIPTION": "",
     "INFO_GRILLE_TITRE_COURT": "Grid",
     "INFO_GRILLE_TITRE": "Loss of charge, water grid",
+    "INFO_JET_DESCRIPTION": "",
     "INFO_JET_TITRE_COURT": "Jet",
     "INFO_JET_TITRE": "Jet trajectory and impact",
     "INFO_WALL_ADDED": "1 wall added",
@@ -221,6 +229,7 @@
     "INFO_JET_TITRE_TRAJECTOIRE": "Trajectory",
     "INFO_JET_TITRE_TRAJECTOIRE_ET_COTE_EAU": "Trajectory and water elevation",
     "INFO_JET_FOND": "Bottom",
+    "INFO_LECHAPTCALMON_DESCRIPTION": "",
     "INFO_LECHAPTCALMON_TITRE_COURT": "Lechapt-C.",
     "INFO_LECHAPTCALMON_TITRE": "Lechapt-Calmon",
     "INFO_LIB_ABSCISSE": "Abscissa (m)",
@@ -375,16 +384,19 @@
     "INFO_LINKED_VALUE_SECTION": "%s (%s, section)",
     "INFO_LOG_HIDE_DETAILS": "hide details",
     "INFO_LOG_SHOW_DETAILS": "show details",
+    "INFO_MACRORUGO_DESCRIPTION": "",
     "INFO_MACRORUGO_TITRE_COURT": "Rock-ramp",
     "INFO_MACRORUGO_TITRE": "Rock-ramp fishpasses",
     "INFO_MENU_DIAGRAM_TITLE": "Modules diagram",
     "INFO_MACRORUGOCOMPOUND_TITRE": "Compound rock-ramp fishpasses",
+    "INFO_MACRORUGOCOMPOUND_DESCRIPTION": "",
     "INFO_MACRORUGOCOMPOUND_TITRE_COURT": "Compound RR",
     "INFO_MACRORUGOCOMPOUND_LINCL": "Lateral inclination (m/m): ",
     "INFO_ONLY_Q_MAY_VARY": "Only flow may vary",
     "INFO_ONLY_Z1_Q_MAY_VARY": "Only upstream elevation and flow may vary",
     "INFO_Z1_Z2_MUST_BE_DEFINED": "Upstream and downstream elevations must be defined",
     "INFO_PENTE_TITRE": "Slope",
+    "INFO_PENTE_DESCRIPTION": "",
     "INFO_PENTE_TITRE_COURT": "Slope",
     "INFO_MENU_EMPTY_SESSION_TITLE": "New session",
     "INFO_MENU_HELP_TITLE": "Help",
@@ -432,23 +444,31 @@
     "INFO_PAB_LOIDEBIT_VANLEVVILLEMONTE": "Regulated notch (Villemonte)",
     "INFO_PAB_LOIDEBIT_WEIRVILLEMONTE": "Notch (Villemonte)",
     "INFO_PARAMETRES_FIXES": "All parameters must be fixed",
+    "INFO_PAB_DESCRIPTION": "",
     "INFO_PAB_TITRE_COURT": "Fish ladder",
     "INFO_PAB_TITRE": "Fish ladder",
     "INFO_PAB_TITRE_PROFIL": "Fish ladder longitudinal profile",
     "INFO_PAB_TABLE": "Fish ladder geometry",
+    "INFO_PABCHUTE_DESCRIPTION": "",
     "INFO_PABCHUTE_TITRE_COURT": "FL: fall",
     "INFO_PABCHUTE_TITRE": "Fish ladder: fall",
+    "INFO_PABDIMENSIONS_DESCRIPTION": "",
     "INFO_PABDIMENSIONS_TITRE_COURT": "FL: dimensions",
     "INFO_PABDIMENSIONS_TITRE": "Fish ladder: dimensions",
+    "INFO_PABNOMBRE_DESCRIPTION": "",
     "INFO_PABNOMBRE_TITRE_COURT": "FL: number",
     "INFO_PABNOMBRE_TITRE": "Fish ladder: number of falls",
+    "INFO_PABPUISSANCE_DESCRIPTION": "",
     "INFO_PABPUISSANCE_TITRE_COURT": "FL: diss. power",
     "INFO_PABPUISSANCE_TITRE": "Fish ladder: dissipated power",
+    "INFO_PARALLELSTRUCTURE_DESCRIPTION": "",
     "INFO_PARALLELSTRUCTURE_TITRE_COURT": "// structures",
     "INFO_PARALLELSTRUCTURE_TITRE": "Parallel structures",
     "INFO_PAR_TITRE": "Humpback fishway: setup",
+    "INFO_PAR_DESCRIPTION": "",
     "INFO_PAR_TITRE_COURT": "HF: setup",
     "INFO_PARSIMULATION_TITRE": "Humpback fishway: simulation",
+    "INFO_PARSIMULATION_DESCRIPTION": "",
     "INFO_PARSIMULATION_TITRE_COURT": "HF: simulation",
     "INFO_PARAMFIELD_AWAITING_CALCULATION": "Awaiting calculation",
     "INFO_PARAMFIELD_BOUNDARY_CONDITIONS": "Boundary conditions",
@@ -492,6 +512,7 @@
     "INFO_QUICKNAV_INPUT": "input",
     "INFO_QUICKNAV_RESULTS": "results",
     "WARNING_PROBLEMS_ENCOUNTERED": "Problems occurred during calculation (info: %info%, warning: %warning%, error: %error%)",
+    "INFO_REGIMEUNIFORME_DESCRIPTION": "",
     "INFO_REGIMEUNIFORME_TITRE_COURT": "Uniform flow",
     "INFO_REGIMEUNIFORME_TITRE": "Uniform flow calculation",
     "INFO_REMOUS_CALCUL_FLUVIAL": "Downstream boundary condition >= Critical elevation: calculation of subcritical part from downstream",
@@ -511,6 +532,8 @@
     "INFO_REPORT_BUG_SUBJECT": "Issue report",
     "INFO_REQUIRES": "requires",
     "INFO_RESULTS_EXPORT_AS_SPREADSHEET": "Export as XLSX",
+    "INFO_SEARCH_NO_RESULT": "No result",
+    "INFO_SECTIONPARAMETREE_DESCRIPTION": "",
     "INFO_SECTIONPARAMETREE_TITRE_COURT": "Param. section",
     "INFO_SECTIONPARAMETREE_TITRE": "Parametric section",
     "INFO_SELECT_MULTIPLE_AND_OTHER": "other",
@@ -533,8 +556,10 @@
     "INFO_SNACKBAR_RESULTS_INVALIDATED": "Results invalidated for",
     "INFO_SNACKBAR_SETTINGS_SAVED": "Settings saved on this device",
     "INFO_SOLVEUR_TITRE": "Multimodule solver",
+    "INFO_SOLVEUR_DESCRIPTION": "",
     "INFO_SOLVEUR_TITRE_COURT": "Solver",
     "INFO_SPP_TITRE": "Sum and product of powers",
+    "INFO_SPP_DESCRIPTION": "",
     "INFO_SPP_TITRE_COURT": "SPP",
     "INFO_THEME_CREDITS": "Credit",
     "INFO_THEME_DEVALAISON_TITRE": "Downstream migration",
@@ -570,8 +595,10 @@
     "INFO_EXAMPLES_TITLE": "Examples",
     "INFO_EXAMPLES_SUBTITLE": "Load standard examples",
     "INFO_YAXB_TITRE": "Linear function",
+    "INFO_YAXB_DESCRIPTION": "",
     "INFO_YAXB_TITRE_COURT": "Linear f.",
     "INFO_TRIGO_TITRE": "Trigonometric function",
+    "INFO_TRIGO_DESCRIPTION": "",
     "INFO_TRIGO_TITRE_COURT": "Trigo. f.",
     "INFO_VERIF_OK": "Crossing criteria are met for all species",
     "INFO_VERIF_VARYING_OK": "Crossing criteria are met for all species and all pass modalities",
@@ -579,8 +606,10 @@
     "INFO_VERIFICATEUR_CUSTOM_SPECIES": "Custom species: %s",
     "INFO_VERIFICATEUR_SPECIES_GROUP": "Species group",
     "INFO_VERIFICATEUR_TITRE": "Fish pass verification",
+    "INFO_VERIFICATEUR_DESCRIPTION": "",
     "INFO_VERIFICATEUR_TITRE_COURT": "Verification",
     "INFO_ESPECE_TITRE": "Fish species characteristics",
+    "INFO_ESPECE_DESCRIPTION": "",
     "INFO_ESPECE_TITRE_COURT": "Species",
     "WARNING_WARNINGS_ABSTRACT": "%nb% warnings occurred during calculation",
     "ERROR_JET_SUBMERGED_NO_SOLUTION": "There is no solution",
diff --git a/src/locale/messages.fr.json b/src/locale/messages.fr.json
index cae8286ea260938fc0a3f1f341727ae11438c7b6..f89b6fa41000d998f36ab8984d94d0f631949ba6 100644
--- a/src/locale/messages.fr.json
+++ b/src/locale/messages.fr.json
@@ -82,19 +82,25 @@
     "INFO_CALCULATOR_SAVE": "Enregistrer",
     "INFO_CALCULATOR_USED_BY": "Utilisé par",
     "INFO_CALCULATOR_VALEURS": "Valeurs",
+    "INFO_BIEF_DESCRIPTION": "",
     "INFO_BIEF_TITRE_COURT": "Bief",
     "INFO_BIEF_TITRE": "Cotes amont/aval d'un bief",
+    "INFO_CLOISONS_DESCRIPTION": "",
     "INFO_CLOISONS_TITRE_COURT": "Cloisons",
     "INFO_CLOISONS_TITRE": "Passe à bassins&nbsp;: Cloisons",
     "INFO_CLOSE_DIALOGUE_DEPENDING_MODULES": "Les modules suivants dépendent de celui que vous êtes en train de fermer&nbsp;:",
     "INFO_CLOSE_DIALOGUE_TEXT": "Attention&nbsp;! Les paramètres et résultats du module de calcul seront perdus.",
     "INFO_CLOSE_DIALOGUE_TITRE": "Fermeture du module de calcul",
     "INFO_CONCENTRATIONBLOCS_TITRE": "Concentration de blocs",
+    "INFO_CONCENTRATIONBLOCS_DESCRIPTION": "",
     "INFO_CONCENTRATIONBLOCS_TITRE_COURT": "Conc. blocs",
+    "INFO_CONDUITEDISTRIBUTRICE_DESCRIPTION": "",
     "INFO_CONDUITEDISTRIBUTRICE_TITRE_COURT": "Conduite distri.",
     "INFO_CONDUITEDISTRIBUTRICE_TITRE": "Conduite distributrice",
+    "INFO_COURBEREMOUS_DESCRIPTION": "",
     "INFO_COURBEREMOUS_TITRE_COURT": "Remous",
     "INFO_COURBEREMOUS_TITRE": "Courbes de remous",
+    "INFO_DEVER_DESCRIPTION": "",
     "INFO_DEVER_TITRE_COURT": "Déver. dénoyés",
     "INFO_DEVER_TITRE": "Lois de déversoirs dénoyés",
     "INFO_DIAGRAM_SOLVEUR_FINDS": "trouve",
@@ -206,8 +212,10 @@
     "INFO_FIELDSET_MOVE_DOWN": "Déplacer vers le bas",
     "INFO_FIELDSET_MOVE_LEFT": "Déplacer vers la gauche",
     "INFO_FIELDSET_MOVE_RIGHT": "Déplacer vers la droite",
+    "INFO_GRILLE_DESCRIPTION": "",
     "INFO_GRILLE_TITRE_COURT": "Grille",
     "INFO_GRILLE_TITRE": "Perte de charge, grille de prise d'eau",
+    "INFO_JET_DESCRIPTION": "",
     "INFO_JET_TITRE_COURT": "Jet",
     "INFO_JET_TITRE": "Trajectoire et impact d'un jet",
     "INFO_WALL_ADDED": "1 cloison ajoutée",
@@ -221,6 +229,7 @@
     "INFO_JET_TITRE_TRAJECTOIRE": "Trajectoire",
     "INFO_JET_TITRE_TRAJECTOIRE_ET_COTE_EAU": "Trajectoire et cote de l'eau",
     "INFO_JET_FOND": "Fond",
+    "INFO_LECHAPTCALMON_DESCRIPTION": "",
     "INFO_LECHAPTCALMON_TITRE_COURT": "Lechapt-C.",
     "INFO_LECHAPTCALMON_TITRE": "Lechapt-Calmon",
     "INFO_LIB_ABSCISSE": "Abscisse (m)",
@@ -376,16 +385,19 @@
     "INFO_LINKED_VALUE_SECTION": "%s (%s, section)",
     "INFO_LOG_HIDE_DETAILS": "masquer les details",
     "INFO_LOG_SHOW_DETAILS": "montrer les details",
+    "INFO_MACRORUGO_DESCRIPTION": "",
     "INFO_MACRORUGO_TITRE_COURT": "Macro-rugo.",
     "INFO_MACRORUGO_TITRE": "Passe à macro-rugosités",
     "INFO_MENU_DIAGRAM_TITLE": "Diagramme des modules",
     "INFO_MACRORUGOCOMPOUND_TITRE": "Passe à macro-rugosités complexe",
+    "INFO_MACRORUGOCOMPOUND_DESCRIPTION": "",
     "INFO_MACRORUGOCOMPOUND_TITRE_COURT": "M-Rugo complexe",
     "INFO_MACRORUGOCOMPOUND_LINCL": "Dévers latéral (m/m)&nbsp;:",
     "INFO_ONLY_Q_MAY_VARY": "Seul le débit peut varier",
     "INFO_ONLY_Z1_Q_MAY_VARY": "Seuls la cote amont et le débit peuvent varier",
     "INFO_Z1_Z2_MUST_BE_DEFINED": "Les cotes amont et aval doivent être définies",
     "INFO_PENTE_TITRE": "Pente",
+    "INFO_PENTE_DESCRIPTION": "",
     "INFO_PENTE_TITRE_COURT": "Pente",
     "INFO_MENU_EMPTY_SESSION_TITLE": "Nouvelle session",
     "INFO_MENU_HELP_TITLE": "Aide",
@@ -433,23 +445,31 @@
     "INFO_PAB_LOIDEBIT_VANLEVVILLEMONTE": "Échancrure régulée (Villemonte)",
     "INFO_PAB_LOIDEBIT_WEIRVILLEMONTE": "Échancrure (Villemonte)",
     "INFO_PARAMETRES_FIXES": "Tous les paramètres doivent être fixés",
+    "INFO_PAB_DESCRIPTION": "",
     "INFO_PAB_TITRE_COURT": "PAB",
     "INFO_PAB_TITRE": "Passe à bassins",
     "INFO_PAB_TITRE_PROFIL": "Profil en long de la passe",
     "INFO_PAB_TABLE": "Géométrie de la passe",
+    "INFO_PABCHUTE_DESCRIPTION": "",
     "INFO_PABCHUTE_TITRE_COURT": "PAB&nbsp;: chute",
     "INFO_PABCHUTE_TITRE": "Passe à bassins&nbsp;: chute",
+    "INFO_PABDIMENSIONS_DESCRIPTION": "",
     "INFO_PABDIMENSIONS_TITRE_COURT": "PAB&nbsp;: dimensions",
     "INFO_PABDIMENSIONS_TITRE": "Passe à bassins&nbsp;: dimensions",
+    "INFO_PABNOMBRE_DESCRIPTION": "",
     "INFO_PABNOMBRE_TITRE_COURT": "PAB&nbsp;: nombre",
     "INFO_PABNOMBRE_TITRE": "Passe à bassins&nbsp;: nombre de chutes",
+    "INFO_PABPUISSANCE_DESCRIPTION": "",
     "INFO_PABPUISSANCE_TITRE_COURT": "PAB&nbsp;: puissance",
     "INFO_PABPUISSANCE_TITRE": "Passe à bassins&nbsp;: puissance dissipée",
+    "INFO_PARALLELSTRUCTURE_DESCRIPTION": "",
     "INFO_PARALLELSTRUCTURE_TITRE_COURT": "Ouvrages",
     "INFO_PARALLELSTRUCTURE_TITRE": "Lois d'ouvrages",
     "INFO_PAR_TITRE": "Passe à ralentisseurs&nbsp;: calage",
+    "INFO_PAR_DESCRIPTION": "",
     "INFO_PAR_TITRE_COURT": "PAR&nbsp;: calage",
     "INFO_PARSIMULATION_TITRE": "Passe à ralentisseurs&nbsp;: simulation",
+    "INFO_PARSIMULATION_DESCRIPTION": "",
     "INFO_PARSIMULATION_TITRE_COURT": "PAR&nbsp;: simulation",
     "INFO_PARAMFIELD_AWAITING_CALCULATION": "En attente de calcul",
     "INFO_PARAMFIELD_BOUNDARY_CONDITIONS": "Conditions aux limites",
@@ -493,6 +513,7 @@
     "INFO_QUICKNAV_INPUT": "données",
     "INFO_QUICKNAV_RESULTS": "résultats",
     "WARNING_PROBLEMS_ENCOUNTERED": "Des problèmes sont survenus durant le calcul (info&nbsp;: %info%, avertissement&nbsp;: %warning%, erreur&nbsp;: %error%)",
+    "INFO_REGIMEUNIFORME_DESCRIPTION": "",
     "INFO_REGIMEUNIFORME_TITRE_COURT": "R. uniforme",
     "INFO_REGIMEUNIFORME_TITRE": "Régime uniforme",
     "INFO_REMOUS_CALCUL_FLUVIAL": "Condition limite aval >= Hauteur critique&nbsp;: calcul de la partie fluviale à partir de l'aval",
@@ -512,6 +533,8 @@
     "INFO_REPORT_BUG_SUBJECT": "Rapport d'erreur",
     "INFO_REQUIRES": "dépend de",
     "INFO_RESULTS_EXPORT_AS_SPREADSHEET": "Exporter en XLSX",
+    "INFO_SEARCH_NO_RESULT": "Aucun résultat",
+    "INFO_SECTIONPARAMETREE_DESCRIPTION": "",
     "INFO_SECTIONPARAMETREE_TITRE_COURT": "Sec. param.",
     "INFO_SECTIONPARAMETREE_TITRE": "Section paramétrée",
     "INFO_SELECT_MULTIPLE_AND_OTHER": "autre",
@@ -534,8 +557,10 @@
     "INFO_SNACKBAR_RESULTS_INVALIDATED": "Résultats invalidés pour",
     "INFO_SNACKBAR_SETTINGS_SAVED": "Paramètres enregistrés sur cet appareil",
     "INFO_SOLVEUR_TITRE": "Solveur multimodule",
+    "INFO_SOLVEUR_DESCRIPTION": "",
     "INFO_SOLVEUR_TITRE_COURT": "Solveur",
     "INFO_SPP_TITRE": "Somme et produit de puissances",
+    "INFO_SPP_DESCRIPTION": "",
     "INFO_SPP_TITRE_COURT": "SPP",
     "INFO_THEME_CREDITS": "Crédit",
     "INFO_THEME_DEVALAISON_TITRE": "Dévalaison",
@@ -571,8 +596,10 @@
     "INFO_EXAMPLES_TITLE": "Exemples",
     "INFO_EXAMPLES_SUBTITLE": "Charger des exemples types",
     "INFO_YAXB_TITRE": "Fonction affine",
+    "INFO_YAXB_DESCRIPTION": "",
     "INFO_YAXB_TITRE_COURT": "F. affine",
     "INFO_TRIGO_TITRE": "Fonction trigonométrique",
+    "INFO_TRIGO_DESCRIPTION": "",
     "INFO_TRIGO_TITRE_COURT": "F. trigo.",
     "INFO_VERIF_OK": "Les critères de franchissement sont remplis pour toutes les espèces",
     "INFO_VERIF_VARYING_OK": "Les critères de franchissement sont remplis pour toutes les espèces et toutes les modalités de la passe",
@@ -581,8 +608,10 @@
     "INFO_VERIFICATEUR_CUSTOM_SPECIES": "Espèce personnalisée&nbsp;: %s",
     "INFO_VERIFICATEUR_SPECIES_GROUP": "Groupe d'espèces",
     "INFO_VERIFICATEUR_TITRE": "Vérification d'une passe",
+    "INFO_VERIFICATEUR_DESCRIPTION": "",
     "INFO_VERIFICATEUR_TITRE_COURT": "Vérification",
     "INFO_ESPECE_TITRE": "Caractéristiques d'une espèce",
+    "INFO_ESPECE_DESCRIPTION": "",
     "INFO_ESPECE_TITRE_COURT": "Espèce",
     "WARNING_WARNINGS_ABSTRACT": "%nb% avertissements rencontrés lors du calcul",
     "ERROR_JET_SUBMERGED_NO_SOLUTION": "Il n'y a pas de solution",