From b8e7dcf18a60a5e22d2c035a51a2c6681fe6f14f Mon Sep 17 00:00:00 2001 From: "francois.grand" <francois.grand@irstea.fr> Date: Thu, 2 Nov 2017 17:06:48 +0100 Subject: [PATCH] =?UTF-8?q?-=20remous=20:=20correction=20bug=20d'affichage?= =?UTF-8?q?=20des=20donn=C3=A9es=20=C3=A0=20calculer=20(liste=20d=C3=A9rou?= =?UTF-8?q?lante)=20-=20remous=20:=20traduction=20des=20messages=20du=20jo?= =?UTF-8?q?urnal=20de=20calcul?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../generic/calculator.component.ts | 2 +- src/app/calculators/remous/remous.fr.json | 34 +++++++++---------- .../remous-results.component.html | 2 +- .../remous-results.component.ts | 29 +++++----------- .../internationalisation.service.ts | 14 ++++++-- src/locale/error_messages.en.json | 13 ++++++- src/locale/error_messages.fr.json | 13 ++++++- 7 files changed, 64 insertions(+), 43 deletions(-) diff --git a/src/app/calculators/generic/calculator.component.ts b/src/app/calculators/generic/calculator.component.ts index abf9a9dc5..a2c79e282 100644 --- a/src/app/calculators/generic/calculator.component.ts +++ b/src/app/calculators/generic/calculator.component.ts @@ -520,7 +520,7 @@ export class GenericCalculatorComponent implements OnInit, DoCheck, Observer { // affichage du journal for (let l of log.messages) - this.remousResultsComponent.addLogEntry(l.toString()); + this.remousResultsComponent.addLogEntry(l, nDigits); // affichage des resultats numériques diff --git a/src/app/calculators/remous/remous.fr.json b/src/app/calculators/remous/remous.fr.json index ad73abf68..e37d7b286 100644 --- a/src/app/calculators/remous/remous.fr.json +++ b/src/app/calculators/remous/remous.fr.json @@ -33,21 +33,21 @@ "fs_target_data": "Donnée à calculer", "select_target": "Choix de la donnée à calculer", "select_target_none": "Aucune", - "select_target_hs": "La charge spécifique (m)", - "select_target_hsc": "La charge critique (m)", - "select_target_b": "La largeur au miroir (m)", - "select_target_p": "Le périmètre mouillé (m)", - "select_target_s": "La surface mouillée (m2)", - "select_target_r": "Le rayon hydraulique (m)", - "select_target_v": "La vitesse moyenne (m/s)", - "select_target_fr": "Le Froude", - "select_target_yc": "Le tirant d'eau critique (m)", - "select_target_yn": "Le tirant d'eau normal (m)", - "select_target_yf": "Le tirant d'eau fluvial (m)", - "select_target_yt": "Le tirant d'eau torrentiel (m)", - "select_target_yco": "Le tirant d'eau conjugué (m)", - "select_target_j": "La perte de charge (m)", - "select_target_i_j": "Variation linéaire de l'énergie spécifique (m/m)", - "select_target_imp": "Impulsion (m/m)", - "select_target_tau0": "La force tractrice (N)" + "select_target_Hs": "La charge spécifique (m)", + "select_target_Hsc": "La charge critique (m)", + "select_target_B": "La largeur au miroir (m)", + "select_target_P": "Le périmètre mouillé (m)", + "select_target_S": "La surface mouillée (m2)", + "select_target_R": "Le rayon hydraulique (m)", + "select_target_V": "La vitesse moyenne (m/s)", + "select_target_Fr": "Le Froude", + "select_target_Yc": "Le tirant d'eau critique (m)", + "select_target_Yn": "Le tirant d'eau normal (m)", + "select_target_Yf": "Le tirant d'eau fluvial (m)", + "select_target_Yt": "Le tirant d'eau torrentiel (m)", + "select_target_Yco": "Le tirant d'eau conjugué (m)", + "select_target_J": "La perte de charge (m)", + "select_target_I-J": "Variation linéaire de l'énergie spécifique (m/m)", + "select_target_Imp": "Impulsion (m/m)", + "select_target_Tau0": "La force tractrice (N)" } \ No newline at end of file diff --git a/src/app/components/remous-results/remous-results.component.html b/src/app/components/remous-results/remous-results.component.html index 2f957c349..3e2d8ad81 100644 --- a/src/app/components/remous-results/remous-results.component.html +++ b/src/app/components/remous-results/remous-results.component.html @@ -15,7 +15,7 @@ </tr> </thead> <tr *ngFor="let r of _logEntries"> - <td>{{r}}</td> + <td align="left">{{r}}</td> </tr> </table> <br/> diff --git a/src/app/components/remous-results/remous-results.component.ts b/src/app/components/remous-results/remous-results.component.ts index 584950c68..39d5cabea 100644 --- a/src/app/components/remous-results/remous-results.component.ts +++ b/src/app/components/remous-results/remous-results.component.ts @@ -1,5 +1,9 @@ import { Component } from '@angular/core'; +import { ErrorMessage } from 'jalhyd'; + +import { InternationalisationService } from '../../services/internationalisation/internationalisation.service'; + @Component({ selector: 'remous-results', templateUrl: './remous-results.component.html', @@ -25,16 +29,6 @@ import { Component } from '@angular/core'; ] }) export class RemousResultsComponent { - // /** - // * tirant imposé à l'amont - // */ - // private _Yamont: number; - - // /** - // * tirant imposé à l'aval - // */ - // private _Yaval: number; - /** * pente du fond */ @@ -96,6 +90,9 @@ export class RemousResultsComponent { } }; + constructor(private intlService: InternationalisationService) { + } + public reset() { this._results = []; this._logEntries = []; @@ -175,18 +172,10 @@ export class RemousResultsComponent { this._results.push({ "abs": x, "flu": f, "tor": t }); } - public addLogEntry(s: string) { - this._logEntries.push(s); + public addLogEntry(m: ErrorMessage, nDigits: number) { + this._logEntries.push(this.intlService.localizeErrorMessage(m, nDigits)); } - // public setYamont(v: number) { - // this._Yamont = v; - // } - - // public setYaval(v: number) { - // this._Yaval = v; - // } - public setPenteFond(v: number) { this._penteFond = v; } diff --git a/src/app/services/internationalisation/internationalisation.service.ts b/src/app/services/internationalisation/internationalisation.service.ts index f17f03aa7..d76b6c925 100644 --- a/src/app/services/internationalisation/internationalisation.service.ts +++ b/src/app/services/internationalisation/internationalisation.service.ts @@ -132,12 +132,22 @@ export class InternationalisationService extends Observable { return str.replace(new RegExp(find, 'g'), replace); } - public localizeErrorMessage(r: ErrorMessage): string { + /** + * traduit un message + * @param r message + * @param nDigits nombre de chiffres à utiliser pour l'arrondi dans le cas de données numériques + */ + public localizeErrorMessage(r: ErrorMessage, nDigits: number = 3): string { let sCode: string = ErrorCode[r.code]; let m: string = this.getErrorMessageFromCode(r.code); for (let k in r.extraVar) { - m = this.replaceAll(m, "%" + k + "%", r.extraVar[k]); + let v: any = r.extraVar[k]; + if (typeof v === "number") + var s = v.toFixed(nDigits); + else + s = v; + m = this.replaceAll(m, "%" + k + "%", s); } return m; diff --git a/src/locale/error_messages.en.json b/src/locale/error_messages.en.json index aa3bdda4a..5c90d9e4b 100644 --- a/src/locale/error_messages.en.json +++ b/src/locale/error_messages.en.json @@ -16,5 +16,16 @@ "ERROR_PARAMDOMAIN_INVALID": "parameter '%symbol%' : non supported '%domain%' definition domain", "ERROR_INTERVAL_UNDEF": "Interval : invalid 'undefined' value", "ERROR_INTERVAL_OUTSIDE": "Interval : value %value% is outside of %interval", - "ERROR_LANG_UNSUPPORTED": "internationalisation : unsupported '%locale%' locale" + "ERROR_LANG_UNSUPPORTED": "internationalisation : unsupported '%locale%' locale", + "ERROR_REMOUS_ARRET_CRITIQUE": "Calculation stopped: critical elevation reached at abscissa %x%", + "ERROR_REMOUS_CALCUL_FLUVIAL": "Downstream boundary condition >= Critical elevation : calculation of subcritical part from downstream", + "ERROR_REMOUS_CALCUL_TORRENTIEL": "Uptream boundary condition <= Critical elevation : calculation of supercritical part from upstream", + "ERROR_REMOUS_RESSAUT_DEHORS": "Hydraulic jump detected %sens% abscissa %x% m", + "ERROR_REMOUS_LARGEUR_BERGE": "Width at embankment level = %B% m", + "ERROR_REMOUS_H_CRITIQUE": "Width at embankment level = %Yc% m", + "ERROR_REMOUS_H_NORMALE": "Normal water level = %Yn% m", + "ERROR_REMOUS_RESSAUT_HYDRO": "Hydraulic jump detected between abscissa %xmin% and %xmax% m", + "ERROR_REMOUS_PENTE_FORTE": "The water line slope is too steep at abscissa %x% m (the discretisation step should be reduced)", + "ERROR_REMOUS_PAS_CALCUL_DEPUIS_AVAL": "Downstream boundary condition < Critical elevation : no possible calculation from downstream", + "ERROR_REMOUS_PAS_CALCUL_DEPUIS_AMONT": "Upstream boundary condition < Critical elevation : no possible calculation from upstream" } \ No newline at end of file diff --git a/src/locale/error_messages.fr.json b/src/locale/error_messages.fr.json index 406d9f437..a519d5bee 100644 --- a/src/locale/error_messages.fr.json +++ b/src/locale/error_messages.fr.json @@ -16,5 +16,16 @@ "ERROR_PARAMDOMAIN_INVALID": "Paramètre '%symbol%' : le domaine de définition '%domain%' est incorrect", "ERROR_INTERVAL_UNDEF": "Interval : valeur 'undefined' incorrecte", "ERROR_INTERVAL_OUTSIDE": "Interval : la valeur %value% est hors de l'intervalle %interval", - "ERROR_LANG_UNSUPPORTED": "internationalisation : locale '%locale%' non prise en charge" + "ERROR_LANG_UNSUPPORTED": "Internationalisation : locale '%locale%' non prise en charge", + "ERROR_REMOUS_ARRET_CRITIQUE": "Arrêt du calcul : hauteur critique atteinte à l'abscisse %x%", + "ERROR_REMOUS_CALCUL_FLUVIAL": "Condition limite aval >= Hauteur critique: calcul de la partie fluviale à partir de l'aval", + "ERROR_REMOUS_CALCUL_TORRENTIEL": "Condition limite amont <= Hauteur critique: calcul de la partie torrentielle à partir de l'amont", + "ERROR_REMOUS_RESSAUT_DEHORS": "Ressaut hydraulique détecté à l'%sens% de l'abscisse %x% m", + "ERROR_REMOUS_LARGEUR_BERGE": "Largeur au niveau des berges = %B% m", + "ERROR_REMOUS_H_CRITIQUE": "Tirant d'eau critique = %Yc% m", + "ERROR_REMOUS_H_NORMALE": "Tirant d'eau normal = %Yn% m", + "ERROR_REMOUS_RESSAUT_HYDRO": "Ressaut hydraulique détecté entre les abscisses %xmin% et %xmax% m", + "ERROR_REMOUS_PENTE_FORTE": "La pente de la ligne d'eau est trop forte à l'abscisse %x% m (il faudrait réduire le pas de discrétisation)", + "ERROR_REMOUS_PAS_CALCUL_DEPUIS_AVAL": "Condition limite aval < Hauteur critique: pas de calcul possible depuis l'aval", + "ERROR_REMOUS_PAS_CALCUL_DEPUIS_AMONT": "Condition limite amont > Hauteur critique : pas de calcul possible depuis l'amont" } \ No newline at end of file -- GitLab