diff --git a/src/app/calculators/cloisons/en.json b/src/app/calculators/cloisons/en.json
index 2a41cd7cf134e047a9369211cb88e120b0f95bf6..93888b09378d9180d255086724077d0dc286a49d 100644
--- a/src/app/calculators/cloisons/en.json
+++ b/src/app/calculators/cloisons/en.json
@@ -12,19 +12,19 @@
     "select_structure_SeuilRectangulaire": "Rectangular weir",
     "select_structure_VanneRectangulaire": "Rectangular gate",
 
-    "select_loidebit_VanneRectangulaire_GateCunge80": "Cunge (1980)",
+    "select_loidebit_GateCunge80": "Cunge (1980)",
 
-    "select_loidebit_Orifice_OrificeSubmerged": "Submerged orifice",
-    "select_loidebit_Orifice_OrificeFree": "Free orifice",
+    "select_loidebit_OrificeSubmerged": "Submerged orifice",
+    "select_loidebit_OrificeFree": "Free orifice",
 
-    "select_loidebit_SeuilRectangulaire_WeirSubmergedLarinier": "Submerged slot (Larinier 1992)",
-    "select_loidebit_SeuilRectangulaire_WeirVillemonte": "Villemonte 1947",
-    "select_loidebit_SeuilRectangulaire_WeirCunge80": "Cunge (1980)",
+    "select_loidebit_WeirSubmergedLarinier": "Submerged slot (Larinier 1992)",
+    "select_loidebit_WeirVillemonte": "Villemonte 1947",
+    "select_loidebit_WeirCunge80": "Cunge (1980)",
 
-    "select_loidebit_SeuilTriangulaire_TriangularWeirFree": "V-notch sharp-crested weir (Villemonte)",
-    "select_loidebit_SeuilTriangulaire_TriangularWeirBroad": "V-notch broad-crested weir (Bos)",
+    "select_loidebit_TriangularWeirFree": "V-notch sharp-crested weir (Villemonte)",
+    "select_loidebit_TriangularWeirBroad": "V-notch broad-crested weir (Bos)",
 
-    "select_loidebit_SeuilTriangulaireTrunc_TriangularTruncWeirFree": "Truncated triangular weir (Villemonte)",
+    "select_loidebit_TriangularTruncWeirFree": "Truncated triangular weir (Villemonte)",
 
 	"UNIT_PV": "W/m³",
 	"UNIT_Q": "m³/s",
diff --git a/src/app/calculators/cloisons/fr.json b/src/app/calculators/cloisons/fr.json
index bf30fb990e193a7ab9ee85903d74e85db7d313e8..ec7b047726bd0e962c3bbfd59578330922535922 100644
--- a/src/app/calculators/cloisons/fr.json
+++ b/src/app/calculators/cloisons/fr.json
@@ -3,26 +3,6 @@
     "P": "Pelle",
     "W": "Ouverture de vanne",
 
-    "select_structure_SeuilTriangulaire": "Seuil triangulaire",
-    "select_structure_SeuilTriangulaireTrunc": "Seuil triangulaire tronqué",
-    "select_structure_Orifice": "Orifice",
-    "select_structure_SeuilRectangulaire": "Seuil rectangulaire",
-    "select_structure_VanneRectangulaire": "Vanne rectangulaire",
-
-    "select_loidebit_VanneRectangulaire_GateCunge80": "Cunge (1980)",
-
-    "select_loidebit_Orifice_OrificeSubmerged": "Orifice noyé",
-    "select_loidebit_Orifice_OrificeFree": "Orifice dénoyé",
-
-    "select_loidebit_SeuilRectangulaire_WeirSubmergedLarinier": "Fente noyée (Larinier 1992)",
-    "select_loidebit_SeuilRectangulaire_WeirVillemonte": "Villemonte 1947",
-    "select_loidebit_SeuilRectangulaire_WeirCunge80": "Cunge (1980)",
-
-    "select_loidebit_SeuilTriangulaire_TriangularWeirFree": "Déversoir triangulaire mince (Villemonte)",
-    "select_loidebit_SeuilTriangulaire_TriangularWeirBroad": "Déversoir triangulaire épais (Bos)",
-
-    "select_loidebit_SeuilTriangulaireTrunc_TriangularTruncWeirFree": "Déversoir triangulaire tronqué (Villemonte)",
-
 	"UNIT_PV": "W/m³",
 	"UNIT_Q": "m³/s",
     "UNIT_YMOY": "m",
diff --git a/src/app/calculators/dever/en.json b/src/app/calculators/dever/en.json
index 3f6315e256439b80ca2eff760bb4a93a5ba518b8..c5fb1f2d29fa442f40e17e47664cc8fa22b8ef0e 100644
--- a/src/app/calculators/dever/en.json
+++ b/src/app/calculators/dever/en.json
@@ -9,9 +9,9 @@
     "select_structure_SeuilTriangulaire": "Triangular weir",
     "select_structure_SeuilTriangulaireTrunc": "Truncated triangular weir",
 
-    "select_loidebit_SeuilRectangulaire_WeirFree": "Free flow rectangular weir",
-    "select_loidebit_SeuilTriangulaire_TriangularWeirFree": "Triangular weir (Villemonte)",
-    "select_loidebit_SeuilTriangulaireTrunc_TriangularTruncWeirFree": "Truncated triangular weir (Villemonte)",
+    "select_loidebit_WeirFree": "Free flow rectangular weir",
+    "select_loidebit_TriangularWeirFree": "Triangular weir (Villemonte)",
+    "select_loidebit_TriangularTruncWeirFree": "Truncated triangular weir (Villemonte)",
 
 	"UNIT_Q": "m³/s",
     "UNIT_EC": "m",
diff --git a/src/app/calculators/dever/fr.json b/src/app/calculators/dever/fr.json
index a550e3b5e961bccdd8d66aa6204800861f871ad0..78cdc5ad68c7b9a5984218cc452647ad1978c0d4 100644
--- a/src/app/calculators/dever/fr.json
+++ b/src/app/calculators/dever/fr.json
@@ -5,14 +5,6 @@
     "L": "Largeur du déversoir",
     "Cd": "Coefficient de débit",
 
-    "select_structure_SeuilRectangulaire": "Déversoir rectangulaire",
-    "select_structure_SeuilTriangulaire": "Déversoir triangulaire",
-    "select_structure_SeuilTriangulaireTrunc": "Déversoir triangulaire tronqué",
-
-    "select_loidebit_SeuilRectangulaire_WeirFree": "Déversoir rectangulaire dénoyé",
-    "select_loidebit_SeuilTriangulaire_TriangularWeirFree": "Déversoir triangulaire (Villemonte)",
-    "select_loidebit_SeuilTriangulaireTrunc_TriangularTruncWeirFree": "Déversoir triangulaire tronqué (Villemonte)",
-
 	"UNIT_Q": "m³/s",
     "UNIT_EC": "m",
     "UNIT_V": "m/s"
diff --git a/src/app/calculators/parallelstructure/config.json b/src/app/calculators/parallelstructure/config.json
index 804ee1c9142522f75565cadc47423d90dec79721..9f3553940b5930db91ba79c00aab52cfcc2e2520 100644
--- a/src/app/calculators/parallelstructure/config.json
+++ b/src/app/calculators/parallelstructure/config.json
@@ -28,22 +28,22 @@
                 "property": "loiDebit",
                 "source": "device_loi_debit",
                 "help": {
-                    "SeuilRectangulaire_KIVI": "structures/kivi.html",
-                    "SeuilRectangulaire_WeirVillemonte": "structures/kivi.html",
-                    "SeuilRectangulaire_WeirCem88d": "structures/cem_88_d.html",
-                    "SeuilRectangulaire_WeirCem88v": "structures/cem_88_v.html",
-                    "SeuilRectangulaire_WeirCunge80": "structures/cunge_80.html",
-                    "VanneRectangulaire_GateCem88d": "structures/cem_88_d.html",
-                    "VanneRectangulaire_GateCem88v": "structures/cem_88_v.html",
-                    "VanneRectangulaire_GateCunge80": "structures/cunge_80.html",
-                    "Orifice_OrificeSubmerged": "structures/orifice_noye.html",
-                    "Orifice_OrificeFree": "structures/orifice_denoye.html",
-                    "SeuilRectangulaire_WeirSubmergedLarinier": "structures/fente_noyee.html",
-                    "SeuilRectangulaire_WeirSubmerged": "structures/seuil_noye.html",
-                    "SeuilRectangulaire_WeirFree": "structures/seuil_denoye.html",
-                    "SeuilTriangulaire_TriangularWeirFree": "structures/dever_triang.html",
-                    "SeuilTriangulaire_TriangularWeirBroad": "structures/dever_triang.html",
-                    "SeuilTriangulaireTrunc_TriangularTruncWeirFree": "structures/dever_triang_tronque.html"
+                    "KIVI": "structures/kivi.html",
+                    "WeirVillemonte": "structures/kivi.html",
+                    "WeirCem88d": "structures/cem_88_d.html",
+                    "WeirCem88v": "structures/cem_88_v.html",
+                    "WeirCunge80": "structures/cunge_80.html",
+                    "GateCem88d": "structures/cem_88_d.html",
+                    "GateCem88v": "structures/cem_88_v.html",
+                    "GateCunge80": "structures/cunge_80.html",
+                    "OrificeSubmerged": "structures/noye.html",
+                    "OrificeFree": "structures/denoye.html",
+                    "WeirSubmergedLarinier": "structures/fente_noyee.html",
+                    "WeirSubmerged": "structures/seuil_noye.html",
+                    "WeirFree": "structures/seuil_denoye.html",
+                    "TriangularWeirFree": "structures/dever_triang.html",
+                    "TriangularWeirBroad": "structures/dever_triang.html",
+                    "TriangularTruncWeirFree": "structures/dever_triang_tronque.html"
                 }
             },
             "S",
diff --git a/src/app/calculators/parallelstructure/en.json b/src/app/calculators/parallelstructure/en.json
index 9b4431705381ed425ee37be97281ca9c40386aa1..133a40b338aeb610b923fafae6bdaf6b53202298 100644
--- a/src/app/calculators/parallelstructure/en.json
+++ b/src/app/calculators/parallelstructure/en.json
@@ -8,28 +8,28 @@
     "select_structure_SeuilTriangulaire": "Triangular weir",
     "select_structure_SeuilTriangulaireTrunc": "Truncated triangular weir",
 
-    "select_loidebit_Orifice_OrificeSubmerged": "Submerged orifice",
-    "select_loidebit_Orifice_OrificeFree": "Free orifice",
+    "select_loidebit_OrificeSubmerged": "Submerged orifice",
+    "select_loidebit_OrificeFree": "Free orifice",
 
-    "select_loidebit_VanneRectangulaire_GateCem88d": "Weir/Orifice Cemagref 88",
-    "select_loidebit_VanneRectangulaire_GateCem88v": "Weir/Undershot gate Cemagref 88",
-    "select_loidebit_VanneRectangulaire_GateCunge80": "Cunge (1980)",
-    "select_loidebit_VanneRectangulaire_RectangularOrificeFree": "Free flow gate",
-    "select_loidebit_VanneRectangulaire_RectangularOrificeSubmerged": "Submerged gate",
+    "select_loidebit_GateCem88d": "Weir/Orifice Cemagref 88",
+    "select_loidebit_GateCem88v": "Weir/Undershot gate Cemagref 88",
+    "select_loidebit_GateCunge80": "Cunge (1980)",
+    "select_loidebit_RectangularOrificeFree": "Free flow gate",
+    "select_loidebit_RectangularOrificeSubmerged": "Submerged gate",
 
-    "select_loidebit_SeuilTriangulaire_TriangularWeirFree": "V-notch sharp-crested weir (Villemonte)",
-    "select_loidebit_SeuilTriangulaire_TriangularWeirBroad": "V-notch broad-crested weir (Bos)",
+    "select_loidebit_TriangularWeirFree": "V-notch sharp-crested weir (Villemonte)",
+    "select_loidebit_TriangularWeirBroad": "V-notch broad-crested weir (Bos)",
 
-    "select_loidebit_SeuilTriangulaireTrunc_TriangularTruncWeirFree": "Truncated triangular weir (Villemonte)",
+    "select_loidebit_TriangularTruncWeirFree": "Truncated triangular weir (Villemonte)",
 
-    "select_loidebit_SeuilRectangulaire_WeirCem88d": "Weir/Orifice Cemagref 88",
-    "select_loidebit_SeuilRectangulaire_WeirCem88v": "Weir/Undershot gate Cemagref 88",
-    "select_loidebit_SeuilRectangulaire_WeirSubmergedLarinier": "Submerged slot (Larinier 1992)",
-    "select_loidebit_SeuilRectangulaire_WeirSubmerged": "Submerged weir",
-    "select_loidebit_SeuilRectangulaire_WeirVillemonte": "Villemonte 1957",
-    "select_loidebit_SeuilRectangulaire_WeirFree": "Free flow weir",
-    "select_loidebit_SeuilRectangulaire_KIVI": "Kindsvater-Carter and Villemonte",
-    "select_loidebit_SeuilRectangulaire_WeirCunge80": "Cunge (1980)",
+    "select_loidebit_WeirCem88d": "Weir/Orifice Cemagref 88",
+    "select_loidebit_WeirCem88v": "Weir/Undershot gate Cemagref 88",
+    "select_loidebit_WeirSubmergedLarinier": "Submerged slot (Larinier 1992)",
+    "select_loidebit_WeirSubmerged": "Submerged weir",
+    "select_loidebit_WeirVillemonte": "Villemonte 1957",
+    "select_loidebit_WeirFree": "Free flow weir",
+    "select_loidebit_KIVI": "Kindsvater-Carter and Villemonte",
+    "select_loidebit_WeirCunge80": "Cunge (1980)",
 
 	"UNIT_Q": "m³/s"
 }
diff --git a/src/app/calculators/parallelstructure/fr.json b/src/app/calculators/parallelstructure/fr.json
index e4cf67bfbf17624610fe95049186489bbba52f0d..f3332bbb2ea9c3dfd894468eb83651cfd58ce582 100644
--- a/src/app/calculators/parallelstructure/fr.json
+++ b/src/app/calculators/parallelstructure/fr.json
@@ -2,34 +2,5 @@
     "Q": "Débit total",
     "W": "Ouverture de vanne",
 
-    "select_structure_Orifice": "Orifice",
-    "select_structure_SeuilRectangulaire": "Seuil rectangulaire",
-    "select_structure_SeuilTriangulaire": "Seuil triangulaire",
-    "select_structure_SeuilTriangulaireTrunc": "Seuil triangulaire tronqué",
-    "select_structure_VanneRectangulaire": "Vanne rectangulaire",
-
-    "select_loidebit_Orifice_OrificeSubmerged": "Orifice noyé",
-    "select_loidebit_Orifice_OrificeFree": "Orifice dénoyé",
-
-    "select_loidebit_VanneRectangulaire_GateCem88d": "Déversoir/Orifice Cemagref 88",
-    "select_loidebit_VanneRectangulaire_GateCem88v": "Déversoir/Vanne de fond Cemagref 88",
-    "select_loidebit_VanneRectangulaire_GateCunge80": "Cunge (1980)",
-    "select_loidebit_VanneRectangulaire_RectangularOrificeFree": "Vanne dénoyée",
-    "select_loidebit_VanneRectangulaire_RectangularOrificeSubmerged": "Vanne noyée",
-
-    "select_loidebit_SeuilTriangulaire_TriangularWeirFree": "Déversoir triangulaire mince (Villemonte)",
-    "select_loidebit_SeuilTriangulaire_TriangularWeirBroad": "Déversoir triangulaire épais (Bos)",
-
-    "select_loidebit_SeuilTriangulaireTrunc_TriangularTruncWeirFree": "Déversoir triangulaire tronqué (Villemonte)",
-
-    "select_loidebit_SeuilRectangulaire_WeirCem88d": "Déversoir/Orifice Cemagref 88",
-    "select_loidebit_SeuilRectangulaire_WeirCem88v": "Déversoir/Vanne de fond Cemagref 88",
-    "select_loidebit_SeuilRectangulaire_WeirSubmergedLarinier": "Fente noyée (Larinier 1992)",
-    "select_loidebit_SeuilRectangulaire_WeirSubmerged": "Seuil noyé",
-    "select_loidebit_SeuilRectangulaire_WeirVillemonte": "Villemonte 1957",
-    "select_loidebit_SeuilRectangulaire_WeirFree": "Seuil dénoyé",
-    "select_loidebit_SeuilRectangulaire_KIVI": "Kindsvater-Carter et Villemonte",
-    "select_loidebit_SeuilRectangulaire_WeirCunge80": "Cunge (1980)",
-
 	"UNIT_Q": "m³/s"
 }
diff --git a/src/app/components/pab-table/pab-table.component.ts b/src/app/components/pab-table/pab-table.component.ts
index a73cac1dd232653f79e953b51306026c5f001fc7..f2c806d291931c4e878f6dfeeb18e81e76ec6a96 100644
--- a/src/app/components/pab-table/pab-table.component.ts
+++ b/src/app/components/pab-table/pab-table.component.ts
@@ -1,5 +1,7 @@
 import { Component, Input, Output, EventEmitter, OnInit, AfterViewInit } from "@angular/core";
 
+import { LoiDebit } from "jalhyd";
+
 import { MatDialog } from "@angular/material/dialog";
 
 import {
@@ -527,7 +529,7 @@ export class PabTableComponent implements AfterViewInit, OnInit {
             // admissible LoiDebit
             const loisCloisons = cloison.getLoisAdmissiblesArray().map(l => { // @TODO move up ? (same for all cloisons)
                 return {
-                    label: this.i18nService.localizeLoiDebit(l),
+                    label: this.localizeLoiDebit(l),
                     value: l
                 };
             });
@@ -662,7 +664,7 @@ export class PabTableComponent implements AfterViewInit, OnInit {
         // admissible LoiDebit
         const loisAval = this.model.downWall.getLoisAdmissiblesArray().map(l => {
             return {
-                label: this.i18nService.localizeLoiDebit(l),
+                label: this.localizeLoiDebit(l),
                 value: l
             };
         });
@@ -761,6 +763,13 @@ export class PabTableComponent implements AfterViewInit, OnInit {
         this.updateValidity();
     }
 
+        /**
+     * Finds the localized title for a LoiDebit item
+     */
+    private localizeLoiDebit(l: LoiDebit) {
+        return this.i18nService.localizeText("INFO_PAB_LOIDEBIT_" + LoiDebit[l].toUpperCase());
+    }
+
     private findMaxNumberOfDevices(): number {
         let maxNbDevices = 1;
         for (const w of this.model.children) {
diff --git a/src/app/formulaire/elements/formulaire-element.ts b/src/app/formulaire/elements/formulaire-element.ts
index 19b0d58276670c7833b9c6a8129c76af7d3538c5..ae565987e01e88268b738794de0e47c727d8fffc 100644
--- a/src/app/formulaire/elements/formulaire-element.ts
+++ b/src/app/formulaire/elements/formulaire-element.ts
@@ -75,12 +75,7 @@ export abstract class FormulaireElement extends FormulaireNode {
         if (!key) {
             key = this._confId;
         }
-        if (loc[key] !== undefined) {
-            this._label = this.intlService.localizeText(key, loc);
-        } else {
-            // Recherche du code dans locale/message.xx.json
-            this._label = this.intlService.localizeText("INFO_LIB_" + key.toLocaleUpperCase());
-        }
+        this._label = this.intlService.localizeText(key, loc);
         for (const f of this.getKids()) {
             f.updateLocalisation(loc);
         }
diff --git a/src/app/formulaire/elements/select-field.ts b/src/app/formulaire/elements/select-field.ts
index d92d48f46e9517e0227398100f0f1e6c8a9578c4..220fc7e2d473621b7dfd91742a9751b2732e6df9 100644
--- a/src/app/formulaire/elements/select-field.ts
+++ b/src/app/formulaire/elements/select-field.ts
@@ -128,7 +128,8 @@ export class SelectField extends Field {
         for (const e of this._entries) {
             // some Select fields already have a translated label at this time; translate others
             if (e.label === undefined) {
-                e.label = ServiceFactory.instance.i18nService.localizeText(e.id, loc);
+                const aId = e.id.split("_");
+                e.label = ServiceFactory.instance.i18nService.localizeText(`${aId[1].toUpperCase()}_${aId[2]}`, loc);
             }
         }
     }
@@ -195,7 +196,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(this._entriesBaseId + stName + "_" + LoiDebit[ld], ld);
+                    const e: SelectEntry = new SelectEntry(this._entriesBaseId + LoiDebit[ld], ld);
                     this.addEntry(e);
                 }
                 break;
diff --git a/src/app/services/internationalisation.service.ts b/src/app/services/internationalisation.service.ts
index c8e35a07e64775931f34bb29996cd8d1b7f1d723..8cdb16d87e44b3b127f9292c98741dd495e152c2 100644
--- a/src/app/services/internationalisation.service.ts
+++ b/src/app/services/internationalisation.service.ts
@@ -1,6 +1,6 @@
 import { Injectable, isDevMode } from "@angular/core";
 
-import { Message, MessageCode, Observable, Observer, LoiDebit, Nub } from "jalhyd";
+import { Message, MessageCode, Observable, Observer, Nub } from "jalhyd";
 
 import { StringMap } from "../stringmap";
 import { ApplicationSetupService } from "./app-setup.service";
@@ -113,37 +113,24 @@ export class I18nService extends Observable implements Observer {
      * @param textKey id du texte (ex: "ERROR_PARAM_NULL")
      */
     public localizeText(textKey: string, msg?: StringMap) {
-        if (isDevMode()) {
-            // expose missing translations
-            if (msg) {
-                if (msg[textKey] === undefined) {
-                    return `*** message not found: ${textKey} ***`;
-                }
-                return msg[textKey];
-            } else {
-                if (! this._Messages) {
-                    return `*** messages not loaded: ${this._currentLanguage} ***`;
-                }
-                if (this._Messages[textKey] === undefined) {
-                    return `*** message not found: ${textKey} ***`;
-                }
-                return this._Messages[textKey];
-            }
+        const messages = msg || this._Messages;
+        if (! messages) {
+            return `*** messages not loaded: ${this._currentLanguage} ***`;
+        }
+        if (messages[textKey] !== undefined) {
+            return messages[textKey];
         } else {
-            const messages = msg || this._Messages;
-            if (! messages) {
-                return `*** messages not loaded: ${this._currentLanguage} ***`;
+            // try general message
+            if(msg !== undefined && this._Messages["INFO_LIB_"+textKey.toUpperCase()] !== undefined) {
+                return this._Messages["INFO_LIB_"+textKey.toUpperCase()];
             }
-            if (messages[textKey] === undefined) {
+            if (!isDevMode()) {
                 // try fallback language before giving up
-                if (this._fallbackMessages[textKey] === undefined) {
-                    return `*** message not found: ${textKey} ***`;
-                } else {
+                if (this._fallbackMessages[textKey] !== undefined) {
                     return this._fallbackMessages[textKey];
                 }
-            } else {
-                return messages[textKey];
             }
+            return `*** message not found: ${textKey} ***`;
         }
     }
 
@@ -171,13 +158,6 @@ export class I18nService extends Observable implements Observer {
         return m;
     }
 
-    /**
-     * Finds the localized title for a LoiDebit item
-     */
-    public localizeLoiDebit(l: LoiDebit) {
-        return this.localizeText("INFO_LOIDEBIT_" + LoiDebit[l]);
-    }
-
     private replaceAll(str: string, find: string, replace: string) {
         return str.replace(new RegExp(find, "g"), replace);
     }
diff --git a/src/locale/messages.fr.json b/src/locale/messages.fr.json
index a46fe1ad2f282f5d1cee978e28c6289af47697e7..4e946f2d584bbf4fb4a342a6df2a225b3a879d81 100644
--- a/src/locale/messages.fr.json
+++ b/src/locale/messages.fr.json
@@ -243,6 +243,26 @@
     "INFO_LIB_J": "Perte de charge",
     "INFO_LIB_L": "Largeur du déversoir",
     "INFO_LIB_LB": "Longueur du bassin",
+    "INFO_LIB_LOIDEBIT_KIVI": "Seuil mince (Kindsvater-Carter + Villemonte)",
+    "INFO_LIB_LOIDEBIT_WEIRSUBMERGEDLARINIER": "Fente noyée (Larinier)",
+    "INFO_LIB_LOIDEBIT_ORIFICESUBMERGED": "Orifice noyé",
+    "INFO_LIB_LOIDEBIT_ORIFICEFREE": "Orifice dénoyé",
+    "INFO_LIB_LOIDEBIT_TRIANGULARWEIRBROAD": "Seuil épais (Bos)",
+    "INFO_LIB_LOIDEBIT_TRIANGULARWEIRFREE": "Seuil mince (Villemonte)",
+    "INFO_LIB_LOIDEBIT_TRIANGULARTRUNCWEIRFREE": "Seuil mince (Villemonte)",
+    "INFO_LIB_LOIDEBIT_GATECEM88D": "Seuil épais / Orifice (Cemagref)",
+    "INFO_LIB_LOIDEBIT_GATECEM88V": "Seuil épais / Vanne de fond (Cemagref)",
+    "INFO_LIB_LOIDEBIT_WEIRCEM88D": "Seuil épais (Cemagref)",
+    "INFO_LIB_LOIDEBIT_WEIRCEM88V": "Seuil épais (Cemagref)",
+    "INFO_LIB_LOIDEBIT_CUNGE80": "Seuil épais / orifice (Cunge)",
+    "INFO_LIB_LOIDEBIT_WEIRCUNGE80": "Seuil épais (Cunge)",
+    "INFO_LIB_LOIDEBIT_GATECUNGE80": "Seuil épais / orifice (Cunge)",
+    "INFO_LIB_LOIDEBIT_RECTANGULARORIFICEFREE": "Vanne de fond dénoyée",
+    "INFO_LIB_LOIDEBIT_RECTANGULARORIFICESUBMERGED": "Vanne de fond noyée",
+    "INFO_LIB_LOIDEBIT_VANLEVLARINIER": "Fente noyée régulée (Larinier)",
+    "INFO_LIB_LOIDEBIT_VANLEVVILLEMONTE": "Échancrure régulée (Villemonte)",
+    "INFO_LIB_LOIDEBIT_WEIRFREE": "Seuil dénoyé",
+    "INFO_LIB_LOIDEBIT_WEIRVILLEMONTE": "Échancrure (Villemonte)",
     "INFO_LIB_Y": "Ligne d'eau",
     "INFO_LIB_MINZDV": "Cote minimale de la crête",
     "INFO_LIB_MAXZDV": "Cote maximale de la crête",
@@ -272,6 +292,11 @@
     "INFO_LIB_SELECT_STRUCTURE_SEUIL_RECT": "Seuil rectangulaire",
     "INFO_LIB_SELECT_STRUCTURE": "Ouvrage",
     "INFO_LIB_STRUCT_CONTAINER": "Ouvrages",
+    "INFO_LIB_STRUCTURE_Orifice": "Orifice",
+    "INFO_LIB_STRUCTURE_SEUILRECTANGULAIRE": "Seuil rectangulaire",
+    "INFO_LIB_STRUCTURE_SEUILTRIANGULAIRE": "Seuil triangulaire",
+    "INFO_LIB_STRUCTURE_SEUILTRIANGULAIRETRUNC": "Seuil triangulaire tronqué",
+    "INFO_LIB_STRUCTURE_VANNERECTANGULAIRE": "Vanne rectangulaire",
     "INFO_LIB_TAU0": "Force tractrice",
     "INFO_LIB_TOR": "Ligne d'eau torrentielle",
     "INFO_LIB_TOTAL": "Total",
@@ -302,26 +327,6 @@
     "INFO_LINKED_VALUE_RESULT": "%s (%s)",
     "INFO_LINKED_VALUE_SECTION_RESULT": "%s (%s, section)",
     "INFO_LINKED_VALUE_SECTION": "%s (%s, section)",
-    "INFO_LOIDEBIT_KIVI": "Kindsvater-Carter et Villemonte",
-    "INFO_LOIDEBIT_WeirSubmergedLarinier": "Fente noyée (Larinier)",
-    "INFO_LOIDEBIT_OrificeSubmerged": "Orifice noyé",
-    "INFO_LOIDEBIT_OrificeFree": "Orifice dénoyé",
-    "INFO_LOIDEBIT_TriangularWeirBroad": "Déversoir triangulaire épais (Bos)",
-    "INFO_LOIDEBIT_TriangularWeirFree": "Déversoir triangulaire mince (Villemonte)",
-    "INFO_LOIDEBIT_TriangularTruncWeirFree": "Déversoir triangulaire tronqué (Villemonte)",
-    "INFO_LOIDEBIT_GateCem88d": "Déversoir/Orifice Cemagref 88",
-    "INFO_LOIDEBIT_GateCem88v": "Déversoir/Vanne de fond Cemagref 88",
-    "INFO_LOIDEBIT_WeirCem88d": "Déversoir/Orifice Cemagref 88",
-    "INFO_LOIDEBIT_WeirCem88v": "Déversoir/Vanne de fond Cemagref 88",
-    "INFO_LOIDEBIT_Cunge80": "Cunge (1980)",
-    "INFO_LOIDEBIT_WeirCunge80": "Seuil épais / orifice (Cunge)",
-    "INFO_LOIDEBIT_GateCunge80": "Seuil épais (Cunge)",
-    "INFO_LOIDEBIT_RectangularOrificeFree": "Vanne dénoyé",
-    "INFO_LOIDEBIT_RectangularOrificeSubmerged": "Vanne noyé",
-    "INFO_LOIDEBIT_VanLevLarinier": "Fente noyée régulée (Larinier)",
-    "INFO_LOIDEBIT_VanLevVillemonte": "Échancrure régulée (Villemonte)",
-    "INFO_LOIDEBIT_WeirFree": "Seuil dénoyé",
-    "INFO_LOIDEBIT_WeirVillemonte": "Échancrure (Villemonte)",
     "INFO_MACRORUGO_TITRE_COURT": "Macro-rugo.",
     "INFO_MACRORUGO_TITRE": "Passe à macro-rugosités",
     "INFO_MENU_DIAGRAM_TITLE": "Diagramme des modules",
@@ -365,6 +370,16 @@
     "INFO_PAB_HEADER_PARAMETERS": "Paramètres",
     "INFO_PAB_HEADER_VALUES": "Valeurs",
     "INFO_PAB_CLOISON_OUVRAGE_N": "Cloison : ouvrage n° %s",
+    "INFO_PAB_LOIDEBIT_KIVI": "Kindsvater-Carter et Villemonte",
+    "INFO_PAB_LOIDEBIT_WeirSubmergedLarinier": "Fente noyée (Larinier)",
+    "INFO_PAB_LOIDEBIT_OrificeSubmerged": "Orifice noyé",
+    "INFO_PAB_LOIDEBIT_TriangularWeirBroad": "Déversoir triangulaire épais (Bos)",
+    "INFO_PAB_LOIDEBIT_TriangularWeirFree": "Déversoir triangulaire mince (Villemonte)",
+    "INFO_PAB_LOIDEBIT_TriangularTruncWeirFree": "Déversoir triangulaire tronqué (Villemonte)",
+    "INFO_PAB_LOIDEBIT_GateCunge80": "Seuil épais / orifice (Cunge)",
+    "INFO_PAB_LOIDEBIT_VanLevLarinier": "Fente noyée régulée (Larinier)",
+    "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_TITRE_COURT": "PAB",
     "INFO_PAB_TITRE": "Passe à bassins",