From 4eef29bd052de59ba1457d9aa096555ea7306113 Mon Sep 17 00:00:00 2001 From: HardiReady Date: Wed, 3 Oct 2018 14:22:19 +0200 Subject: [PATCH] Add error messages i18n --- .../common/show-error/show-error.component.ts | 45 +++++++++++++++---- static/src/assets/i18n/app/de.json | 9 +++- static/src/assets/i18n/statistics/de.json | 9 +++- 3 files changed, 52 insertions(+), 11 deletions(-) diff --git a/static/src/app/common/show-error/show-error.component.ts b/static/src/app/common/show-error/show-error.component.ts index d0de6a6..dd2bf09 100644 --- a/static/src/app/common/show-error/show-error.component.ts +++ b/static/src/app/common/show-error/show-error.component.ts @@ -1,5 +1,6 @@ -import {Component, Input} from '@angular/core'; +import {Component, Input, OnInit} from '@angular/core'; import {FormGroup, NgForm} from '@angular/forms'; +import {TranslateService} from '@ngx-translate/core'; @Component({ selector: 'show-error', @@ -10,7 +11,7 @@ import {FormGroup, NgForm} from '@angular/forms'; ` }) -export class ShowErrorComponent { +export class ShowErrorComponent implements OnInit{ // tslint:disable-next-line:no-input-rename @Input('controlPath') controlPath; @@ -20,10 +21,15 @@ export class ShowErrorComponent { private form: FormGroup; - constructor(ngForm: NgForm) { + constructor(ngForm: NgForm, + private translate: TranslateService) { this.form = ngForm.form; } + ngOnInit() { + this.translate.setDefaultLang('de'); + } + get errorMessages(): string[] { const control = this.form.get(this.controlPath); const messages = []; @@ -37,22 +43,43 @@ export class ShowErrorComponent { let message = ''; switch (code) { case 'required': - message = `${this.displayName} ist ein Pflichtfeld`; + this.translate.get('public.error.message.required', {fieldName: this.displayName}) + .subscribe((res: string) => { + message = res; + }); break; case 'minlength': - message = `${this.displayName} muss mindestens ${error.requiredLength} Zeichen enthalten`; + this.translate.get('public.error.message.min.length', { + fieldName: this.displayName, + boundary: error.requiredLength + }) + .subscribe((res: string) => { + message = res; + }); break; case 'maxlength': - message = `${this.displayName} darf maximal ${error.requiredLength} Zeichen enthalten`; + this.translate.get('public.error.message.max.length', { + fieldName: this.displayName, + boundary: error.requiredLength + }) + .subscribe((res: string) => { + message = res; + }); break; case 'invalidEMail': - message = `Bitte geben Sie eine gültige E-Mail Adresse an`; + this.translate.get('public.error.message.email').subscribe((res: string) => { + message = res; + }); break; case 'userNotFound': - message = `Der eingetragene Benutzer existiert nicht.`; + this.translate.get('public.error.message.no.user').subscribe((res: string) => { + message = res; + }); break; default: - message = `${name} ist nicht valide`; + this.translate.get('public.error.message.default', {fieldName: name}).subscribe((res: string) => { + message = res; + }); } messages.push(message); } diff --git a/static/src/assets/i18n/app/de.json b/static/src/assets/i18n/app/de.json index ff75d8d..6648b74 100644 --- a/static/src/assets/i18n/app/de.json +++ b/static/src/assets/i18n/app/de.json @@ -34,5 +34,12 @@ "public.army.headline": "Übersicht über alle Spieler, Squads und Armeen", "public army.squad.members": "Mitglieder:", "public.army.members": "Armeemitglieder:", - "public.error.headline": "Oops, diese Seite kennen wir nicht..." + "public.error.headline": "Oops, diese Seite kennen wir nicht...", + + "public.error.message.required": "{{fieldName}} ist ein Pflichtfeld", + "public.error.message.min.length": "{{fieldName}} muss mindestens {{boundary}} Zeichen enthalten", + "public.error.message.max.length": "{{fieldName}} darf maximal {{boundary}} Zeichen enthalten", + "public.error.message.email": "Bitte geben Sie eine gültige E-Mail Adresse an", + "public.error.message.no.user": "Der eingetragene Benutzer existiert nicht.", + "public.error.message.default": "{{fieldName}} ist nicht valide" } diff --git a/static/src/assets/i18n/statistics/de.json b/static/src/assets/i18n/statistics/de.json index 1fdca26..738cce9 100644 --- a/static/src/assets/i18n/statistics/de.json +++ b/static/src/assets/i18n/statistics/de.json @@ -72,5 +72,12 @@ "stats.campaign.submit.headline.edit": "Kampagne editieren", "stats.campaign.submit.title": "Titel", "stats.campaign.submit.button.submit": "Bestätigen", - "stats.campaign.submit.button.cancel": "Abbrechen" + "stats.campaign.submit.button.cancel": "Abbrechen", + + "public.error.message.required": "{{fieldName}} ist ein Pflichtfeld", + "public.error.message.min.length": "{{fieldName}} muss mindestens {{boundary}} Zeichen enthalten", + "public.error.message.max.length": "{{fieldName}} darf maximal {{boundary}} Zeichen enthalten", + "public.error.message.email": "Bitte geben Sie eine gültige E-Mail Adresse an", + "public.error.message.no.user": "Der eingetragene Benutzer existiert nicht.", + "public.error.message.default": "{{fieldName}} ist nicht valide" }