diff --git a/src/app/calculators/cloisons/cloisons.config.json b/src/app/calculators/cloisons/cloisons.config.json
index 6b90ef4665452578903d4b0e2c56475bbad1fa0b..4b9c490e1ccf08943ceeb6e82547f5edf4a87192 100644
--- a/src/app/calculators/cloisons/cloisons.config.json
+++ b/src/app/calculators/cloisons/cloisons.config.json
@@ -10,8 +10,7 @@
             "BB",
             "PB",
             "DH"
-        ],
-        "help": "pab/cloisonsFieldset"
+        ]
     },
     {
         "id": "fs_ouvrage",
@@ -20,25 +19,19 @@
         "defaultNodeType": "StructureRectangle",
         "defaultStructType": "SeuilRectangulaire",
         "defaultLoiDebit": "WeirSubmergedLarinier",
-        "help": "pab/cloisonsTemplate",
         "fields": [
             {
-                "id": "select_ouvrage",
+                "id": "select_structure",
                 "type": "select",
                 "source": "device_structure_type"
             },
             {
                 "id": "select_loidebit",
                 "type": "select",
-                "source": "device_loi_debit",
-                "help": "pab/cloisonsSelect"
+                "source": "device_loi_debit"
             },
             "h1",
-            {
-                "id": "L",
-                "type": "input",
-                "help": "pab/cloisonsInput"
-            },
+            "L",
             "CdWSL",
             "CdWR",
             "CdGR",
@@ -54,12 +47,11 @@
         "type": "template_container",
         "templates": [
             "fs_ouvrage"
-        ],
-        "help": "pab/cloisonsTemplateContainer"
+        ]
     },
     {
         "type": "options",
-        "ouvrageSelectId": "select_ouvrage",
+        "ouvrageSelectId": "select_structure",
         "idCal": "Q",
         "help": "pab/cloisons"
     }
diff --git a/src/app/calculators/dever/dever.config.json b/src/app/calculators/dever/dever.config.json
index 9b8b87dcdfb2fe7382695d6413712a11b518227b..a8ee30ecc0fb8724c5267457f59fef8643d7fb9d 100644
--- a/src/app/calculators/dever/dever.config.json
+++ b/src/app/calculators/dever/dever.config.json
@@ -19,7 +19,7 @@
         "defaultLoiDebit": "WeirFree",
         "fields": [
             {
-                "id": "select_ouvrage",
+                "id": "select_structure",
                 "type": "select",
                 "source": "device_structure_type"
             },
@@ -48,7 +48,7 @@
     },
     {
         "type": "options",
-        "ouvrageSelectId": "select_ouvrage",
+        "ouvrageSelectId": "select_structure",
         "idCal": "Q"
     }
 ]
\ No newline at end of file
diff --git a/src/app/calculators/parallel-structures/parallel-structures.config.json b/src/app/calculators/parallel-structures/parallel-structures.config.json
index 02cb7d17f833d036698c759236748f0a5bad1c61..6dc8d5d6fb4753645ea9a7c9cdf844dde9cb4d43 100644
--- a/src/app/calculators/parallel-structures/parallel-structures.config.json
+++ b/src/app/calculators/parallel-structures/parallel-structures.config.json
@@ -18,7 +18,7 @@
         "defaultLoiDebit": "GateCem88v",
         "fields": [
             {
-                "id": "select_ouvrage",
+                "id": "select_structure",
                 "type": "select",
                 "source": "device_structure_type"
             },
@@ -52,7 +52,7 @@
     },
     {
         "type": "options",
-        "ouvrageSelectId": "select_ouvrage",
+        "ouvrageSelectId": "select_structure",
         "idCal": "Q"
     }
 ]
\ No newline at end of file
diff --git a/src/app/calculators/regime-uniforme/regime-uniforme.en.json b/src/app/calculators/regime-uniforme/regime-uniforme.en.json
index 1746472648a332f219efdf14dc2f5fef34002adb..4e52b0ab8f8dc215a55cc383fbdb5c4b320232bf 100644
--- a/src/app/calculators/regime-uniforme/regime-uniforme.en.json
+++ b/src/app/calculators/regime-uniforme/regime-uniforme.en.json
@@ -1,18 +1,16 @@
 {
     "fs_section": "Type of section",
     "select_section": "Choice of section type",
-    "select_section_trapez": "Trapezoidal",
-    "select_section_rect": "Rectangular",
-    "select_section_circ": "Circular",
-    "select_section_puiss": "Parabolic",
-    "fs_section_trapez": "Definition of trapezoidal section",
+
+    "select_section_SectionTrapeze": "Trapezoidal",
+    "select_section_SectionRectangle": "Rectangular",
+    "select_section_SectionCercle": "Circular",
+    "select_section_SectionPuissance": "Parabolic",
+
     "LargeurFond": "Width at bottom",
     "Fruit": "Bank slope",
-    "fs_section_rect": "Definition of rectangular section",
     "LargeurBerge": "Width at embankment level",
-    "fs_section_circ": "Definition of circular section",
     "D": "Diameter",
-    "fs_section_puiss": "Definition of parabolic section",
     "k": "Coefficient",
     "fs_bief": "Features reach",
     "Ks": "Strickler coefficient",
diff --git a/src/app/calculators/regime-uniforme/regime-uniforme.fr.json b/src/app/calculators/regime-uniforme/regime-uniforme.fr.json
index 9b3bf77dbe38fa44707a4abb51ae9a624df5b57e..c3c20571ce0f6bd8d7d86bd866723135c47d82bc 100644
--- a/src/app/calculators/regime-uniforme/regime-uniforme.fr.json
+++ b/src/app/calculators/regime-uniforme/regime-uniforme.fr.json
@@ -1,18 +1,16 @@
 {
     "fs_section": "Type de section",
     "select_section": "Choix du type de section",
-    "select_section_trapez": "Trapézoïdale",
-    "select_section_rect": "Rectangulaire",
-    "select_section_circ": "Circulaire",
-    "select_section_puiss": "Parabolique",
-    "fs_section_trapez": "Définition de la section trapézoïdale",
+
+    "select_section_SectionTrapeze": "Trapézoïdale",
+    "select_section_SectionRectangle": "Rectangulaire",
+    "select_section_SectionCercle": "Circulaire",
+    "select_section_SectionPuissance": "Parabolique",
+
     "LargeurFond": "Largeur au fond",
     "Fruit": "Fruit des berges",
-    "fs_section_rect": "Définition de la section rectangulaire",
     "LargeurBerge": "Largeur au niveau des berges",
-    "fs_section_circ": "Définition de la section circulaire",
     "D": "Diamètre",
-    "fs_section_puiss": "Définition de la section parabolique",
     "k": "Coefficient",
     "fs_bief": "Caractéristiques du bief",
     "Ks": "Coefficient de Strickler",
diff --git a/src/app/calculators/remous/remous.en.json b/src/app/calculators/remous/remous.en.json
index 8f9b0f722818cc7f39a0bbf77349079bd2f33c9f..15b6decaba895b524fd78181eeccbdca7c95a70b 100644
--- a/src/app/calculators/remous/remous.en.json
+++ b/src/app/calculators/remous/remous.en.json
@@ -1,17 +1,15 @@
 {
     "fs_section": "Type of section",
     "select_section": "Choice of section type",
-    "select_section_trapez": "Trapezoidal",
-    "select_section_rect": "Rectangular",
-    "select_section_circ": "Circular",
-    "select_section_puiss": "Parabolic",
-    "fs_section_trapez": "Definition of trapezoidal section",
+
+    "select_section_SectionTrapeze": "Trapezoidal",
+    "select_section_SectionRectangle": "Rectangular",
+    "select_section_SectionCercle": "Circular",
+    "select_section_SectionPuissance": "Parabolic",
+
     "LargeurFond": "Width at bottom",
     "Fruit": "Bank slope",
-    "fs_section_rect": "Definition of rectangular section",
-    "fs_section_circ": "Definition of circular section",
     "D": "Diameter",
-    "fs_section_puiss": "Definition of parabolic section",
     "k": "Coefficient",
     "LargeurBerge": "Width at embankment level",
     "fs_bief": "Features reach",
@@ -27,9 +25,11 @@
     "Dx": "Discretisation step",
     "Pr": "Display accuracy",
     "select_resolution": "Resolution method",
-    "select_resolution_trap": "Integration by trapezoid",
-    "select_resolution_rk4": "Runge Kutta fourth order",
-    "select_resolution_euler": "Explicit Euler",
+
+    "select_resolution_Trapezes": "Integration by trapezoid",
+    "select_resolution_RungeKutta4": "Runge Kutta fourth order",
+    "select_resolution_EulerExplicite": "Explicit Euler",
+
     "fs_target_data": "Data to compute",
     "select_target": "Choice of the data to compute",
     "select_target_none": "None",
diff --git a/src/app/calculators/remous/remous.fr.json b/src/app/calculators/remous/remous.fr.json
index 98f5971f3d6c31d97942aab833409a170248a2f7..25110976b18ed9678f1501c77efec6c52676a115 100644
--- a/src/app/calculators/remous/remous.fr.json
+++ b/src/app/calculators/remous/remous.fr.json
@@ -1,17 +1,15 @@
 {
     "fs_section": "Type de section",
     "select_section": "Choix du type de section",
-    "select_section_trapez": "Trapézoïdale",
-    "select_section_rect": "Rectangulaire",
-    "select_section_circ": "Circulaire",
-    "select_section_puiss": "Parabolique",
-    "fs_section_trapez": "Définition de la section trapézoïdale",
+
+    "select_section_SectionTrapeze": "Trapézoïdale",
+    "select_section_SectionRectangle": "Rectangulaire",
+    "select_section_SectionCercle": "Circulaire",
+    "select_section_SectionPuissance": "Parabolique",
+
     "LargeurFond": "Largeur au fond",
     "Fruit": "Fruit des berges",
-    "fs_section_rect": "Définition de la section rectangulaire",
-    "fs_section_circ": "Définition de la section circulaire",
     "D": "Diamètre",
-    "fs_section_puiss": "Définition de la section puissance",
     "k": "Coefficient",
     "LargeurBerge": "Largeur de berge",
     "fs_bief": "Caractéristiques du bief",
@@ -26,9 +24,11 @@
     "Dx": "Pas de discrétisation",
     "Pr": "Précision de calcul des cotes",
     "select_resolution": "Méthode de résolution",
-    "select_resolution_trap": "Intégration par trapèzes",
-    "select_resolution_rk4": "Runge Kutta d'ordre 4",
-    "select_resolution_euler": "Euler explicite",
+
+    "select_resolution_Trapezes": "Intégration par trapèzes",
+    "select_resolution_RungeKutta4": "Runge Kutta d'ordre 4",
+    "select_resolution_EulerExplicite": "Euler explicite",
+
     "fs_target_data": "Donnée à calculer",
     "select_target": "Choix de la donnée à calculer",
     "select_target_none": "Aucune",
diff --git a/src/app/calculators/section-param/section-param.en.json b/src/app/calculators/section-param/section-param.en.json
index 765b149799791b5853a7af3da286c61bb85f4a8d..239f8e0f5e42c7556c2cf80c591b3aff1ebf14d9 100644
--- a/src/app/calculators/section-param/section-param.en.json
+++ b/src/app/calculators/section-param/section-param.en.json
@@ -1,17 +1,15 @@
 {
     "fs_section": "Type of section",
     "select_section": "Choice of section type",
-    "select_section_trapez": "Trapezoidal",
-    "select_section_rect": "Rectangular",
-    "select_section_circ": "Circular",
-    "select_section_puiss": "Parabolic",
-    "fs_section_trapez": "Definition of trapezoidal section",
+
+    "select_section_SectionTrapeze": "Trapezoidal",
+    "select_section_SectionRectangle": "Rectangular",
+    "select_section_SectionCercle": "Circular",
+    "select_section_SectionPuissance": "Parabolic",
+
     "LargeurFond": "Width at bottom",
     "Fruit": "Bank slope",
-    "fs_section_rect": "Definition of rectangular section",
-    "fs_section_circ": "Definition of circular section",
     "D": "Diameter",
-    "fs_section_puiss": "Definition of parabolic section",
     "k": "Coefficient",
     "LargeurBerge": "Width at embankment level",
     "fs_bief": "Features reach",
diff --git a/src/app/calculators/section-param/section-param.fr.json b/src/app/calculators/section-param/section-param.fr.json
index aa95a54529589a7da99c5ec17112b67bcf89ad3a..07532c3de73837d543aabef0cdfccdbbe12264c0 100644
--- a/src/app/calculators/section-param/section-param.fr.json
+++ b/src/app/calculators/section-param/section-param.fr.json
@@ -1,17 +1,15 @@
 {
     "fs_section": "Type de section",
     "select_section": "Choix du type de section",
-    "select_section_trapez": "Trapézoïdale",
-    "select_section_rect": "Rectangulaire",
-    "select_section_circ": "Circulaire",
-    "select_section_puiss": "Parabolique",
-    "fs_section_trapez": "Définition de la section trapézoïdale",
+
+    "select_section_SectionTrapeze": "Trapézoïdale",
+    "select_section_SectionRectangle": "Rectangulaire",
+    "select_section_SectionCercle": "Circulaire",
+    "select_section_SectionPuissance": "Parabolique",
+
     "LargeurFond": "Largeur au fond",
     "Fruit": "Fruit des berges",
-    "fs_section_rect": "Définition de la section rectangulaire",
-    "fs_section_circ": "Définition de la section circulaire",
     "D": "Diamètre",
-    "fs_section_puissance": "Définition de la section parabolique",
     "k": "Coefficient",
     "LargeurBerge": "Largeur au niveau des berges",
     "fs_bief": "Caractéristiques du bief",
diff --git a/src/app/components/generic-input/generic-input.component.ts b/src/app/components/generic-input/generic-input.component.ts
index 42481be86e78793187601478e59824f327dc6b77..e18680906029b4fca26f61f8d1543b1c33439ca7 100644
--- a/src/app/components/generic-input/generic-input.component.ts
+++ b/src/app/components/generic-input/generic-input.component.ts
@@ -315,4 +315,19 @@ export abstract class GenericInputComponent extends BaseComponent implements OnC
 
         return { isValid: valid, message: msg };
     }
+
+    public openHelp($event: any) {
+        window.open("assets/docs-fr/calculators/" + this._model.helpLink + ".html", "_blank");
+        $event.preventDefault();
+        $event.stopPropagation();
+        return false;
+    }
+
+    public get enableHelpButton() {
+        return this._model && this._model.helpLink;
+    }
+
+    public get uitextOpenHelp() {
+        return this.intlService.localizeText("INFO_CALCULATOR_OPEN_HELP");
+    }
 }
diff --git a/src/app/components/ngparam-input/ngparam-input.component.ts b/src/app/components/ngparam-input/ngparam-input.component.ts
index c56cb8c2d31cbce25ad685caaee36c59e3d1f508..c61a4fb783066a8ed61a1fb802ec294296a8c0b9 100644
--- a/src/app/components/ngparam-input/ngparam-input.component.ts
+++ b/src/app/components/ngparam-input/ngparam-input.component.ts
@@ -112,19 +112,4 @@ export class NgParamInputComponent extends GenericInputComponent implements Obse
     public ngOnDestroy() {
         this._paramDef.removeObserver(this);
     }
-
-    public openHelp($event: any) {
-        window.open("assets/docs-fr/calculators/" + this._model.helpLink + ".html", "_blank");
-        $event.preventDefault();
-        $event.stopPropagation();
-        return false;
-    }
-
-    public get enableHelpButton() {
-        return this._model && this._model.helpLink;
-    }
-
-    public get uitextOpenHelp() {
-        return this.intlService.localizeText("INFO_CALCULATOR_OPEN_HELP");
-    }
 }
diff --git a/src/app/components/results-graph/graph-type.component.ts b/src/app/components/results-graph/graph-type.component.ts
index 78ef5d486f0588eddd7f70b6b563858c9b07b0ba..35c5c81b04abb50ff7888450a0c8e9390b31b4ec 100644
--- a/src/app/components/results-graph/graph-type.component.ts
+++ b/src/app/components/results-graph/graph-type.component.ts
@@ -78,4 +78,9 @@ export class GraphTypeSelectComponent implements IObservable {
     notifyObservers(data: any, sender?: any) {
         this._observable.notifyObservers(data, sender);
     }
+
+    // implemented because of generic template
+    public get enableHelpButton() {
+        return false;
+    }
 }
diff --git a/src/app/components/select-field-line/select-field-line.component.ts b/src/app/components/select-field-line/select-field-line.component.ts
index e430231f2be8142fdb36a837cd41647d418dbec8..fcec71493d3fe5f7b2c0b17d04bd79ce64000fe2 100644
--- a/src/app/components/select-field-line/select-field-line.component.ts
+++ b/src/app/components/select-field-line/select-field-line.component.ts
@@ -12,6 +12,10 @@ import { I18nService } from "../../services/internationalisation/internationalis
     ]
 })
 export class SelectFieldLineComponent {
+
+    /** aide en ligne */
+    protected helpLink: string | { [key: string]: string };
+
     @Input()
     private _select: SelectField;
 
@@ -49,14 +53,31 @@ export class SelectFieldLineComponent {
     }
 
     public openHelp($event: any) {
-        window.open("assets/docs-fr/calculators/" + this._select.helpLink + ".html", "_blank");
+        let link;
+        if (typeof this._select.helpLink === "string") {
+            link = this._select.helpLink;
+        } else { // object
+            const cv = this._select.getValue();
+            const entryId = cv.id.substring(this._select.entriesBaseId.length);
+            link = this._select.helpLink[entryId];
+        }
+        window.open("assets/docs-fr/calculators/" + link + ".html", "_blank");
         $event.preventDefault();
         $event.stopPropagation();
         return false;
     }
 
     public get enableHelpButton() {
-        return this._select && this._select.helpLink;
+        if (this._select && this._select.helpLink) {
+            if (typeof this._select.helpLink === "string") {
+                return true;
+            } else { // object
+                const cv = this._select.getValue();
+                const entryId = cv.id.substring(this._select.entriesBaseId.length);
+                return Object.keys(this._select.helpLink).includes(entryId);
+            }
+        }
+        return false;
     }
 
     public get uitextOpenHelp() {
diff --git a/src/app/formulaire/definition/form-definition.ts b/src/app/formulaire/definition/form-definition.ts
index ec6244f6814143d4baec1d0706d9137b99828dd0..aae431e1eebbe31d9bb03e75870ca2b77b1e019a 100644
--- a/src/app/formulaire/definition/form-definition.ts
+++ b/src/app/formulaire/definition/form-definition.ts
@@ -136,7 +136,7 @@ export abstract class FormulaireDefinition extends FormulaireNode implements Obs
         if (dnt !== undefined) {
             this._props["nodeType"] = ComputeNodeType[dnt];
         }
-        this.helpLink = json["help"];
+        this._helpLink = json["help"];
     }
 
     protected completeParse(json: {}) {
diff --git a/src/app/formulaire/fieldset-container.ts b/src/app/formulaire/fieldset-container.ts
index 626851a2fdf9170152c32f7001059a94a70e6669..0aec05ebc1772690039a8eed77093df4f1c94561 100644
--- a/src/app/formulaire/fieldset-container.ts
+++ b/src/app/formulaire/fieldset-container.ts
@@ -108,7 +108,7 @@ export class FieldsetContainer extends FormulaireElement {
 
     public parseConfig(json: {}, data?: {}) {
         this._confId = json["id"];
-        this.helpLink = json["help"];
+        this._helpLink = json["help"];
         const templates = data as any[];
 
         const templateNames: string[] = json["templates"];
diff --git a/src/app/formulaire/fieldset.ts b/src/app/formulaire/fieldset.ts
index f03bb00825a05d8ec7fd644f8fd3bff701639269..701705eebe89c478eee1b5b2e9ea050a59d2d2a5 100644
--- a/src/app/formulaire/fieldset.ts
+++ b/src/app/formulaire/fieldset.ts
@@ -194,7 +194,7 @@ export class FieldSet extends FormulaireElement implements Observer {
         switch (this._confId) {
 
             case "fs_ouvrage":
-                this.setSelectValueFromProperty("select_ouvrage", "structureType");
+                this.setSelectValueFromProperty("select_structure", "structureType");
 
                 const st: StructureType = this.getPropValue("structureType");
                 switch (st) {
@@ -263,7 +263,7 @@ export class FieldSet extends FormulaireElement implements Observer {
         this._jsonConfig = json;
 
         this._confId = json["id"];
-        this.helpLink = json["help"];
+        this._helpLink = json["help"];
 
         const parentForm = this.parentForm as FormulaireDefinition;
         const ct: string = json["calcType"];
@@ -335,7 +335,7 @@ export class FieldSet extends FormulaireElement implements Observer {
                         case "select_section": // sections paramétrées
                             this.setPropValue("nodeType", data.value.value);
                             break;
-                        case "select_ouvrage": // ouvrages parallèles
+                        case "select_structure": // ouvrages parallèles
                             this.setPropValue("structureType", data.value.value);
                             break;
                         case "select_loidebit": // ouvrages parallèles et dérivés
diff --git a/src/app/formulaire/formulaire-node.ts b/src/app/formulaire/formulaire-node.ts
index 776c0cb60833320c735cb5768ce7778c7007e82a..c1fb2930d7de6c3ab703833e58536a74495219f7 100644
--- a/src/app/formulaire/formulaire-node.ts
+++ b/src/app/formulaire/formulaire-node.ts
@@ -6,7 +6,7 @@ import { JalhydObject, IObservable, Observer, Observable } from "jalhyd";
 export abstract class FormulaireNode implements IObservable {
 
     /** aide en ligne */
-    public helpLink: string;
+    protected _helpLink: string;
 
     /**
      * identifiant dans le fichier de conf
@@ -60,6 +60,9 @@ export abstract class FormulaireNode implements IObservable {
         return this._uid;
     }
 
+    public get helpLink() {
+        return this._helpLink;
+    }
 
     /**
      * cherche un FormulaireNode par son id de conf
diff --git a/src/app/formulaire/ngparam.ts b/src/app/formulaire/ngparam.ts
index eb25f2163124054ebe894504e19b0a66d9f4209d..a76a934ffbc26dea8d725d3010265fbc1c99ed1c 100644
--- a/src/app/formulaire/ngparam.ts
+++ b/src/app/formulaire/ngparam.ts
@@ -439,7 +439,7 @@ export class NgParameter extends InputField implements Observer {
 
     public parseConfig(json: {}) {
         this._confId = json["id"];
-        this.helpLink = json["help"];
+        this._helpLink = json["help"];
         this.unit = this.paramDefinition.unit;
         this.radioConfig = this.getRadioConfig();
     }
diff --git a/src/app/formulaire/select-field.ts b/src/app/formulaire/select-field.ts
index df656ceb001a9d17c8c8ec8e96b45b40b615c284..7e87dd83baadfeced8ca68e00c3b8d79b6723022 100644
--- a/src/app/formulaire/select-field.ts
+++ b/src/app/formulaire/select-field.ts
@@ -8,6 +8,9 @@ import { FormulaireDefinition } from "./definition/form-definition";
 
 export class SelectField extends Field {
 
+    /** string to build the select entries IDs from */
+    protected _entriesBaseId: string;
+
     protected _entries: SelectEntry[];
 
     protected _selectedEntry: SelectEntry;
@@ -17,6 +20,10 @@ export class SelectField extends Field {
         this.clearEntries();
     }
 
+    public get entriesBaseId(): string {
+        return this._entriesBaseId;
+    }
+
     public get entries() {
         return this._entries;
     }
@@ -93,17 +100,18 @@ export class SelectField extends Field {
 
     public parseConfig(field: {}, data?: {}) {
         this._confId = field["id"];
-        this.helpLink = field["help"];
+        this._entriesBaseId = this._confId + "_";
+        this._helpLink = field["help"];
         const source = field["source"];
         const nub: Nub = (this.parentForm as FormulaireDefinition).currentNub;
         // ad-hoc cases
         switch (source) {
 
             case "lechapt_calmon_material":
-                this.addEntry(new SelectEntry("select_material_empty", ""));
+                this.addEntry(new SelectEntry(this._entriesBaseId + "empty", ""));
                 let i = 0;
                 for (const mat of LechaptCalmon.materials) {
-                    const e: SelectEntry = new SelectEntry("select_material_" + (i + 1), i);
+                    const e: SelectEntry = new SelectEntry(this._entriesBaseId + (i + 1), i);
                     this.addEntry(e);
                     i++;
                 }
@@ -111,29 +119,29 @@ export class SelectField extends Field {
 
             case "acsection_section":
                 for (const sec of acSection.availableSectionTypes) {
-                    const e: SelectEntry = new SelectEntry("select_section_" + sec.id, sec.value);
+                    const e: SelectEntry = new SelectEntry(this._entriesBaseId + sec.id, sec.value);
                     this.addEntry(e);
                 }
                 break;
 
             case "remous_methode_resolution":
                 for (const mr of CourbeRemous.availableMethodeResolution) {
-                    const e: SelectEntry = new SelectEntry("select_resolution_" + mr.id, mr.value);
+                    const e: SelectEntry = new SelectEntry(this._entriesBaseId + mr.id, mr.value);
                     this.addEntry(e);
                 }
                 break;
 
             case "remous_target":
-                this.addEntry(new SelectEntry("select_target_none", ""));
+                this.addEntry(new SelectEntry(this._entriesBaseId + "none", ""));
                 for (const at of CourbeRemous.availableTargets) {
-                    const e: SelectEntry = new SelectEntry("select_target_" + at, at);
+                    const e: SelectEntry = new SelectEntry(this._entriesBaseId + at, at);
                     this.addEntry(e);
                 }
                 break;
 
             case "device_structure_type":
                 for (const st in (nub as ParallelStructure).getLoisAdmissibles()) {
-                    const e: SelectEntry = new SelectEntry("select_structure_" + st, StructureType[st]);
+                    const e: SelectEntry = new SelectEntry(this._entriesBaseId + st, StructureType[st]);
                     this.addEntry(e);
                 }
                 break;
@@ -145,7 +153,7 @@ export class SelectField extends Field {
                 const la = (nub as ParallelStructure).getLoisAdmissibles();
                 const stName = StructureType[cst];
                 for (const ld of la[stName]) {
-                    const e: SelectEntry = new SelectEntry("select_loidebit_" + stName + "_" + LoiDebit[ld], ld);
+                    const e: SelectEntry = new SelectEntry(this._entriesBaseId + stName + "_" + LoiDebit[ld], ld);
                     this.addEntry(e);
                 }
                 break;
diff --git a/src/locale/messages.en.json b/src/locale/messages.en.json
index 08d9b4a41dbd34e82050dd75f8d39b96872816fb..ae16d93a7371df2e19f448e1b5a247fdd2e886b0 100644
--- a/src/locale/messages.en.json
+++ b/src/locale/messages.en.json
@@ -196,8 +196,8 @@
     "INFO_LIB_SELECT_LOIDEBIT2": "Stage-discharge law",
     "INFO_LIB_SELECT_LOIDEBIT3": "Stage-discharge law",
     "INFO_LIB_SELECT_LOIDEBIT4": "Stage-discharge law",
-    "INFO_LIB_SELECT_OUVRAGE_SEUIL_RECT": "Rectangular weir",
-    "INFO_LIB_SELECT_OUVRAGE": "Device",
+    "INFO_LIB_SELECT_STRUCTURE_SEUIL_RECT": "Rectangular weir",
+    "INFO_LIB_SELECT_STRUCTURE": "Device",
     "INFO_LIB_STRUCT_CONTAINER": "Devices",
     "INFO_LIB_TAU0": "Tractive force",
     "INFO_LIB_TOR": "Supercritical water line",
diff --git a/src/locale/messages.fr.json b/src/locale/messages.fr.json
index 233ba439bc6a4a3a5cf592d0f38e83d86ef0a807..5216ddcdc993127df665ec976600eae4ee6775a6 100644
--- a/src/locale/messages.fr.json
+++ b/src/locale/messages.fr.json
@@ -195,8 +195,8 @@
     "INFO_LIB_SELECT_LOIDEBIT2": "Loi de débit",
     "INFO_LIB_SELECT_LOIDEBIT3": "Loi de débit",
     "INFO_LIB_SELECT_LOIDEBIT4": "Loi de débit",
-    "INFO_LIB_SELECT_OUVRAGE_SEUIL_RECT": "Seuil rectangulaire",
-    "INFO_LIB_SELECT_OUVRAGE": "Ouvrage",
+    "INFO_LIB_SELECT_STRUCTURE_SEUIL_RECT": "Seuil rectangulaire",
+    "INFO_LIB_SELECT_STRUCTURE": "Ouvrage",
     "INFO_LIB_STRUCT_CONTAINER": "Ouvrages",
     "INFO_LIB_TAU0": "Force tractrice",
     "INFO_LIB_TOR": "Ligne d'eau torrentielle",