From 05d6573dd3b70f109c11bceb6d3e6b4d6b628129 Mon Sep 17 00:00:00 2001
From: Robert Goldmann <deadlocker@gmx.de>
Date: Sun, 8 Mar 2020 18:24:31 +0100
Subject: [PATCH] #455 - improved warning

---
 .../settings/SettingsValidator.java           |   2 +-
 .../budgetmaster/utils/Strings.java           |   1 +
 src/main/resources/languages/_de.properties   | 123 +++++++++---------
 src/main/resources/languages/_en.properties   |   1 +
 src/main/resources/static/js/settings.js      |   4 +-
 .../resources/templates/settings/settings.ftl |   1 +
 6 files changed, 68 insertions(+), 64 deletions(-)

diff --git a/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsValidator.java b/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsValidator.java
index 049596dd9..b990f24ae 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsValidator.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsValidator.java
@@ -16,6 +16,6 @@ public class SettingsValidator implements Validator
 	public void validate(Object obj, Errors errors)
 	{
 		ValidationUtils.rejectIfEmptyOrWhitespace(errors, "autoBackupDays", Strings.WARNING_EMPTY_NUMBER);
-		ValidationUtils.rejectIfEmptyOrWhitespace(errors, "autoBackupFilesToKeep", Strings.WARNING_EMPTY_NUMBER);
+		ValidationUtils.rejectIfEmptyOrWhitespace(errors, "autoBackupFilesToKeep", Strings.WARNING_EMPTY_NUMBER_ZERO_ALLOWED);
 	}
 }
\ No newline at end of file
diff --git a/src/main/java/de/deadlocker8/budgetmaster/utils/Strings.java b/src/main/java/de/deadlocker8/budgetmaster/utils/Strings.java
index f51bbe5a1..2378dca3e 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/utils/Strings.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/utils/Strings.java
@@ -41,6 +41,7 @@ public class Strings
     public static final String WARNING_EMPTY_CHART_NAME = "warning.empty.chart.name";
     public static final String WARNING_EMPTY_CHART_SCRIPT = "warning.empty.chart.script";
     public static final String WARNING_EMPTY_NUMBER = "warning.empty.number";
+    public static final String WARNING_EMPTY_NUMBER_ZERO_ALLOWED = "warning.empty.number.zero.allowed";
 
     //REPORT
     public static final String REPORT_FOOTER_LEFT = "report.footer.left";
diff --git a/src/main/resources/languages/_de.properties b/src/main/resources/languages/_de.properties
index 779be78e6..89cb6961c 100644
--- a/src/main/resources/languages/_de.properties
+++ b/src/main/resources/languages/_de.properties
@@ -8,7 +8,7 @@ github.url=https://github.com/deadlocker8/BudgetMaster
 
 # ERRORPAGES
 errorpages.home=Zur Startseite
-errorpages.400=Ung�ltige Anfrage.
+errorpages.400=Ung�ltige Anfrage.
 errorpages.403=Zugriff nicht gestattet.
 errorpages.404=Die angegebene Seite konnte nicht gefunden werden.
 errorpages.418=I'm a teapot.
@@ -17,8 +17,8 @@ errorpages.500=Ein interner Serverfehler ist aufgetreten.
 
 error.title.database.import=Importfehler
 error.text.database.import=Beim Importieren der Datei ist ein Fehler aufgetreten.<br>Details:<br>{0}
-error.database.import.invalid.json=Die hochgeladene JSON Datei ist ung�ltig.
-error.database.import.unknown.version=Die hochgeladene JSON Datei enth�lt keine g�ltige Definition einerBudgetMaster Datenbank.
+error.database.import.invalid.json=Die hochgeladene JSON Datei ist ung�ltig.
+error.database.import.unknown.version=Die hochgeladene JSON Datei enth�lt keine g�ltige Definition einerBudgetMaster Datenbank.
 
 # TITLE
 title.incomes=Einnahmen
@@ -40,8 +40,8 @@ title.transaction.new.normal=Buchung
 title.transaction.new.repeating=Wiederholend
 title.transaction.new.repeating.long=Wiederholende Buchung
 title.transaction.new.transfer=Umbuchung
-title.datepicker.year=Jahr w�hlen
-title.datepicker.month=Monat w�hlen
+title.datepicker.year=Jahr w�hlen
+title.datepicker.month=Monat w�hlen
 title.account.new=Neues Konto
 title.account.edit=Konto bearbeiten
 title.category.budgets=Verbrauch nach Kategorien
@@ -52,16 +52,16 @@ title.chart.edit=Diagramm bearbeiten
 
 # MISC
 category.none=Keine Kategorie
-category.rest=�bertrag
+category.rest=�bertrag
 ok=OK
 cancel=Abbrechen
 save=Speichern
-delete=L�schen
+delete=L�schen
 today=Heute
 tagfield.placeholder=Tag hier eingeben
-placeholder=Keine Daten verf�gbar
-placeholder.seems.empty=Ganz sch�n leer hier...
-placeholder.advice=F�ge {0} hinzu
+placeholder=Keine Daten verf�gbar
+placeholder.seems.empty=Ganz sch�n leer hier...
+placeholder.advice=F�ge {0} hinzu
 
 # WEEK DAYS
 monday=Montag
@@ -75,7 +75,7 @@ sunday=Sonntag
 # MONTH
 month.january=Januar
 month.february=Februar
-month.march=M�rz
+month.march=M�rz
 month.april=April
 month.may=Mai
 month.june=Juni
@@ -87,48 +87,49 @@ month.november=November
 month.december=Dezember
 
 # INFO
-info.title.category.delete=Kategorie l�schen
-info.text.category.delete=M�chtest du die Kategorie "{0}" wirklich unwiderruflich l�schen?
+info.title.category.delete=Kategorie l�schen
+info.text.category.delete=M�chtest du die Kategorie "{0}" wirklich unwiderruflich l�schen?
 info.title.category.delete.move=Verschieben nach
-info.text.category.delete.move=In welche Kategorie sollen alle vekn�pften Buchungen verschoben werden?
-info.title.account.delete=Konto l�schen
-info.text.account.delete=M�chtest du das Konto "{0}" wirklich unwiderruflich l�schen?<br>Hinweis: Diesem Konto sind {1} Buchungen zugeordnet. Beim L�schen des Kontos werden diese ebenfalls gel�scht!
-info.button.account.delete=Konto und Buchungen l�schen
-info.title.transaction.delete=Buchung l�schen
-info.text.transaction.delete=M�chtest du die Buchung "{0}" wirklich unwiderruflich l�schen?
-info.text.transaction.repeating.delete=M�chtest du die Buchung "{0}" wirklich unwiderruflich l�schen? <br>Hinweis: Es handelt sich um eine wiederholende Buchung. Beim L�schen dieser Buchung werden alle zugeh�rigen Wiederholungen ebenfalls gel�scht!
-info.title.chart.delete=Diagramm l�schen
-info.text.chart.delete=M�chtest du das Diagramm "{0}" wirklich unwiderruflich l�schen?
-
-info.title.database.delete=Datenbank l�schen
-info.header.text.database.delete=Soll die Datenbank wirklich unwiderruflich gel�scht werden?<br>Hinweis: Beim L�schen der Datenbank werden alle Buchungen, Kategorien und Konten unwiderruflich gel�scht.
-info.text.database.delete=Zur Best�tigung gib folgenden Code ein:\t{0}
+info.text.category.delete.move=In welche Kategorie sollen alle vekn�pften Buchungen verschoben werden?
+info.title.account.delete=Konto l�schen
+info.text.account.delete=M�chtest du das Konto "{0}" wirklich unwiderruflich l�schen?<br>Hinweis: Diesem Konto sind {1} Buchungen zugeordnet. Beim L�schen des Kontos werden diese ebenfalls gel�scht!
+info.button.account.delete=Konto und Buchungen l�schen
+info.title.transaction.delete=Buchung l�schen
+info.text.transaction.delete=M�chtest du die Buchung "{0}" wirklich unwiderruflich l�schen?
+info.text.transaction.repeating.delete=M�chtest du die Buchung "{0}" wirklich unwiderruflich l�schen? <br>Hinweis: Es handelt sich um eine wiederholende Buchung. Beim L�schen dieser Buchung werden alle zugeh�rigen Wiederholungen ebenfalls gel�scht!
+info.title.chart.delete=Diagramm l�schen
+info.text.chart.delete=M�chtest du das Diagramm "{0}" wirklich unwiderruflich l�schen?
+
+info.title.database.delete=Datenbank l�schen
+info.header.text.database.delete=Soll die Datenbank wirklich unwiderruflich gel�scht werden?<br>Hinweis: Beim L�schen der Datenbank werden alle Buchungen, Kategorien und Konten unwiderruflich gel�scht.
+info.text.database.delete=Zur Best�tigung gib folgenden Code ein:\t{0}
 info.title.database.import.dialog=Datenbank importieren
 info.subtitle.database.import=Konten zuordnen
 info.database.import.source=Buchungen aus
 info.database.import.destination=importieren in
 info.database.import.or=oder
-info.title.update=Update verf�gbar
-info.text.update=Es ist ein Update f�r BudgetMaster verf�gbar<br><br>Installiert: v{0}<br>Verf�gbar: {1}<br><br>M�chtest du das Update jetzt durchf�hren?<br><br>Hinweis: Das Aktualisieren kann je nach Internetverbindung eine Weile dauern. Der BudgetMaster Server wird danach automatisch nuegestartet. Bitte f�hre nach dem Start des Updates keine �nderungen an Konten, Buchungen, Kategorien, etc. durch.
-info.title.backup.reminder=Zeit f�r ein Backup
-info.text.backup.reminder=Schon mal �ber ein Backup nachgedacht?<br>Du solltest deine BudgetMaster Datenbank regelm��ig sichern.<br>Dies geht besonders einfach in den Einstellungen.<br><br>(Du wilst diese Erinnerung nicht jeden Monat sehen? Dann deaktiviere die Backup-Erinnerung in den Einstellungen.)
+info.title.update=Update verf�gbar
+info.text.update=Es ist ein Update f�r BudgetMaster verf�gbar<br><br>Installiert: v{0}<br>Verf�gbar: {1}<br><br>M�chtest du das Update jetzt durchf�hren?<br><br>Hinweis: Das Aktualisieren kann je nach Internetverbindung eine Weile dauern. Der BudgetMaster Server wird danach automatisch nuegestartet. Bitte f�hre nach dem Start des Updates keine �nderungen an Konten, Buchungen, Kategorien, etc. durch.
+info.title.backup.reminder=Zeit f�r ein Backup
+info.text.backup.reminder=Schon mal �ber ein Backup nachgedacht?<br>Du solltest deine BudgetMaster Datenbank regelm��ig sichern.<br>Dies geht besonders einfach in den Einstellungen.<br><br>(Du wilst diese Erinnerung nicht jeden Monat sehen? Dann deaktiviere die Backup-Erinnerung in den Einstellungen.)
 info.button.backup.reminder=Zu den Einstellungen
 
 # WARNING
-warning.text.account.delete=Das Konto "{0}" kann nicht gel�scht werden, da mindestens ein Konto existieren muss. Um dieses Konto zu l�schen musst du zuerst ein neues anlegen.
+warning.text.account.delete=Das Konto "{0}" kann nicht gel�scht werden, da mindestens ein Konto existieren muss. Um dieses Konto zu l�schen musst du zuerst ein neues anlegen.
 warning.empty.category.name=Bitte gib einen Namen ein.
 warning.empty.account.name=Bitte gib einen Namen ein.
 warning.duplicate.account.name=Es existiert bereits ein Konto mit diesem Namen.
 warning.empty.category.color=Die Kategoriefarbe darf nicht leer sein.
-warning.empty.transaction.name=Das Feld f�r den Namen darf nicht leer sein.
-warning.transaction.amount=Gib eine g�ltige Zahl f�r den Betrag ein.
-warning.empty.number=Gib eine g�ltige Zahl gr��er 0 ein.
-warning.empty.transaction.date=Bitte w�hle ein Datum aus.
+warning.empty.transaction.name=Das Feld für den Namen darf nicht leer sein.
+warning.transaction.amount=Gib eine gültige Zahl für den Betrag ein.
+warning.empty.number=Gib eine gültige Zahl größer 0 ein.
+warning.empty.number.zero.allowed=Gib eine gültige Zahl größer oder gleich 0 ein.
+warning.empty.transaction.date=Bitte wähle ein Datum aus.
 warning.wrong.password=Das Passwort ist nicht korrekt.
 warning.settings.password.empty=Bitte gib ein Passwort ein.
 warning.settings.password.length=Das Passwort muss mindestens drei Zeichen lang sein.
-warning.settings.password.confirmation.empty=Bitte gib dein Passwort zur Best�tigung erneut ein.
-warning.settings.password.confirmation.wrong=Passwort und Passwort Wiederholung stimmen nicht �berein.
+warning.settings.password.confirmation.empty=Bitte gib dein Passwort zur Best�tigung erneut ein.
+warning.settings.password.confirmation.wrong=Passwort und Passwort Wiederholung stimmen nicht �berein.
 warning.empty.chart.name=Bitte gib einen Namen ein.
 warning.empty.chart.script=Bitte gib ein Script ein.
 
@@ -140,11 +141,11 @@ menu.charts=Diagramme
 menu.reports=Berichte
 menu.settings=Einstellungen
 menu.settings.database=Datenbank
-menu.about=�ber
+menu.about=�ber
 menu.hotkeys=Tastenkombination
 menu.logout=Logout
 menu.accounts=Konten
-menu.update=Update verf�gbar
+menu.update=Update verf�gbar
 menu.search.results=Suchergebnisse ({0})
 
 category.new.label.name=Name
@@ -153,11 +154,11 @@ categories.actions=Aktionen
 
 settings.password=Passwort
 settings.password.confirmation=Passwort Wiederholung
-settings.currency=W�hrung
-settings.rest=�bertrag
+settings.currency=W�hrung
+settings.rest=�bertrag
 settings.rest.deactivated=Aus
 settings.rest.activated=An
-settings.darkTheme=Oberfl�che
+settings.darkTheme=Oberfl�che
 settings.darkTheme.deactivated=Hell
 settings.darkTheme.activated=Dunkel
 settings.backupReminder=Backup-Erinnerung
@@ -170,7 +171,7 @@ settings.updates.automatic.deactivated=Aus
 settings.updates.automatic.activated=An
 settings.updates.search=Suchen
 settings.updates.current.version=Installiert:
-settings.updates.latest.version=Verf�gbar:
+settings.updates.latest.version=Verf�gbar:
 settings.update.start=Aktualisieren
 settings.backup=Backup
 settings.backup.auto=Automatisches Backup
@@ -178,12 +179,12 @@ settings.backup.auto.deactivated=Aus
 settings.backup.auto.activated=An
 settings.backup.auto.days=Intervall in Tagen
 settings.backup.auto.time=Uhrzeit
-settings.backup.auto.files.to.keep=Anzahl aufzubewahrender Backups (0 f�r unbegrenzt)
+settings.backup.auto.files.to.keep=Anzahl aufzubewahrender Backups (0 f�r unbegrenzt)
 
 settings.database.import=Importieren
 settings.database.export=Exportieren
-settings.database.delete=L�schen
-settings.database.delete.verification=Best�tigungscodes
+settings.database.delete=L�schen
+settings.database.delete.verification=Best�tigungscodes
 
 settings.search.itemsPerPage=Anzahl der Suchergebnisse pro Seite
 
@@ -224,7 +225,7 @@ logout.success=Erfolgreich abgemeldet.
 
 datepicker.label.month=Monat:
 datepicker.label.year=Jahr:
-datepicker.button.confirm=�bernehmen
+datepicker.button.confirm=�bernehmen
 
 search=Suche
 search.submit=Suchen
@@ -235,8 +236,8 @@ search.in.category=Kategorie
 search.in.tags=Tags
 
 # ABOUT
-about=�ber {0}
-about.roadmap.link=Roadmap �ffnen
+about=�ber {0}
+about.roadmap.link=Roadmap �ffnen
 about.version=Version:
 about.date=Datum:
 about.author=Autor:
@@ -246,11 +247,11 @@ about.credits=Credits:
 
 # REPORT
 report.settings=Einstellungen
-report.columns=Spalten ausw�hlen
+report.columns=Spalten ausw�hlen
 report.columns.advice=Hinweis: Du kannst die Reihenfolge der Spalten per Drag&Drop anpassen.
-report.checkbox.include.budget=Budgetkalkulation hinzuf�gen
+report.checkbox.include.budget=Budgetkalkulation hinzuf�gen
 report.checkbox.split.tables=Einnahmen und Ausgaben als getrennte Tabellen
-report.checkbox.inclue.categorybudgets=Verbrauch nach Kategorien hinzuf�gen
+report.checkbox.inclue.categorybudgets=Verbrauch nach Kategorien hinzuf�gen
 report.button.generate=Bericht erzeugen
 
 report.position=Nr.
@@ -266,7 +267,7 @@ report.rating=+/-
 report.amount=Betrag
 report.headline=Monatsbericht - {0}
 report.headline.account=Konto: {0}
-report.headline.transactions.overview=Buchungs�bersicht
+report.headline.transactions.overview=Buchungs�bersicht
 report.sum.total=Einnahmen: {0} / Ausgaben: {1}
 report.sum=Summe: {0}
 report.footer.left=BudgetMaster Monatsbericht
@@ -282,7 +283,7 @@ report.budget.rest=Restbudget:
 # filter
 filter.active=Filter aktiv
 filter.apply=Filter anwenden
-filter.reset=Zur�cksetzen
+filter.reset=Zur�cksetzen
 filter.type=Art
 filter.type.income=Einnahme
 filter.type.expenditure=Ausgabe
@@ -294,13 +295,13 @@ filter.categories=Kategorien
 filter.categories.button.all=Alle
 filter.categories.button.none=Keine
 filter.name=Name
-filter.name.contains=Name enth�lt
+filter.name.contains=Name enth�lt
 filter.tags=Tags
 filter.tags.button.all=Alle
 filter.tags.button.none=Keine
 
 # home menu
-home.menu.accounts=Konten erlauben es mehrere Buchungen zu gruppieren. Du kannst so viele Konten erstellen, wie du m�chtest.
+home.menu.accounts=Konten erlauben es mehrere Buchungen zu gruppieren. Du kannst so viele Konten erstellen, wie du m�chtest.
 home.menu.accounts.action.manage=Kontoverwaltung
 home.menu.accounts.action.new=Neues Konto anlegen
 
@@ -315,11 +316,11 @@ home.menu.charts.action.show=Diagramme ansehen
 home.menu.reports=Erstelle konfigurierbare Monatsberichte als PDF zum Ausdrucken und Archivieren. Du kannst den Inhalt der Berichte filtern und zum Beispiel nach Einnahmen und Ausgaben getrennt auflisten lassen.
 home.menu.reports.action.new=Neuen Bericht erstellen
 
-home.menu.categories=Kategorien k�nnen Buchungen zugeordnet werden, um diese als zusammengeh�rig zu kennzeichnen. Eine Kategorie besteht aus einem Namen und einer Farbe. Letztere kann aus einer vordefinierten Farbpalette oder mit Hilfe eines benutzerdefinierten Farbw�hlers ausgew�hlt werden.
+home.menu.categories=Kategorien k�nnen Buchungen zugeordnet werden, um diese als zusammengeh�rig zu kennzeichnen. Eine Kategorie besteht aus einem Namen und einer Farbe. Letztere kann aus einer vordefinierten Farbpalette oder mit Hilfe eines benutzerdefinierten Farbw�hlers ausgew�hlt werden.
 home.menu.categories.action.manage=Kategorieverwaltung
 home.menu.categories.action.new=Neue Kategorie anlegen
 
-home.menu.settings=Verwalte allgemeine Einstellungen wie dein Login-Passwort, deine bevorzugte Sprache und wie Updates verwaltet werden sollen. Dieser Bereich bietet zudem die M�glichkeit, deine Daten zu exportieren oder zu l�schen, sowie eine bestehende Datenbank zu importieren.
+home.menu.settings=Verwalte allgemeine Einstellungen wie dein Login-Passwort, deine bevorzugte Sprache und wie Updates verwaltet werden sollen. Dieser Bereich bietet zudem die M�glichkeit, deine Daten zu exportieren oder zu l�schen, sowie eine bestehende Datenbank zu importieren.
 home.menu.settings.action.manage=Einstellungen
 
 # hotkeys
@@ -355,7 +356,7 @@ charts.default.incomesAndExpendituresPerYearBar.localization='{"axisY": "Summe i
 
 chart.new.label.name=Name
 chart.new.label.script=Script
-chart.new.info.default=Diese mitgelieferte Diagrammvorlage kann nicht �berschrieben werden, aber du kannst dir den Code ansehen.
+chart.new.info.default=Diese mitgelieferte Diagrammvorlage kann nicht �berschrieben werden, aber du kannst dir den Code ansehen.
 chart.new.info.wiki=Tutorial: <a target="_blank" href="https://github.com/deadlocker8/BudgetMaster/wiki/How-to-create-custom-charts">https://github.com/deadlocker8/BudgetMaster/wiki/How-to-create-custom-charts</a>
 
 chart.type=Typ
@@ -363,10 +364,10 @@ chart.actions=Aktionen
 chart.show=Diagramm anzeigen
 
 chart.steps.first.step=Schritt 1:
-chart.steps.first=W�hle ein Diagramm
+chart.steps.first=W�hle ein Diagramm
 chart.steps.first.label=Diagramm
 chart.steps.second.step=Schritt 2:
-chart.steps.second=W�hle eine Zeitspanne
+chart.steps.second=W�hle eine Zeitspanne
 chart.steps.second.label.start=Startdatum
 chart.steps.second.label.end=Enddatum
 chart.steps.third.step=Schritt 3:
diff --git a/src/main/resources/languages/_en.properties b/src/main/resources/languages/_en.properties
index ce75833d2..a0c99e38e 100644
--- a/src/main/resources/languages/_en.properties
+++ b/src/main/resources/languages/_en.properties
@@ -123,6 +123,7 @@ warning.empty.category.color=The category color should not be empty.
 warning.empty.transaction.name=The field for the name can not be empty.
 warning.transaction.amount=Please enter a valid number in the amount field.
 warning.empty.number=Please enter a valid number greater than 0.
+warning.empty.number.zero.allowed=Please enter a valid number greater or equal 0.
 warning.empty.transaction.date=Please select a date.
 warning.wrong.password=The password is not correct.
 warning.settings.password.empty=Please enter a password.
diff --git a/src/main/resources/static/js/settings.js b/src/main/resources/static/js/settings.js
index 886dc2089..4b1047b78 100644
--- a/src/main/resources/static/js/settings.js
+++ b/src/main/resources/static/js/settings.js
@@ -31,7 +31,7 @@ $(document).ready(function()
     {
         autoBackupFilesToKeep.on('change keydown paste input', function()
         {
-            validateNumber(autoBackupFilesToKeep.val(), "settings-backup-auto-files-to-keep", "hidden-settings-backup-auto-files-to-keep", numberValidationMessage);
+            validateNumber(autoBackupFilesToKeep.val(), "settings-backup-auto-files-to-keep", "hidden-settings-backup-auto-files-to-keep", numberValidationMessageZeroAllowed);
         });
     }
 
@@ -46,7 +46,7 @@ function validateForm()
     if(autoBackupCheckbox.checked)
     {
         let autoBackupDaysValid = validateNumber($('#settings-backup-auto-days').val(), "settings-backup-auto-days", "hidden-settings-backup-auto-days", numberValidationMessage);
-        let autoBackupFilesToKeepValid = validateNumber($('#settings-backup-auto-files-to-keep').val(), "settings-backup-auto-files-to-keep", "hidden-settings-backup-auto-files-to-keepp", numberValidationMessage);
+        let autoBackupFilesToKeepValid = validateNumber($('#settings-backup-auto-files-to-keep').val(), "settings-backup-auto-files-to-keep", "hidden-settings-backup-auto-files-to-keep", numberValidationMessageZeroAllowed);
         return autoBackupDaysValid && autoBackupFilesToKeepValid;
     }
 
diff --git a/src/main/resources/templates/settings/settings.ftl b/src/main/resources/templates/settings/settings.ftl
index 06176c65f..66ac1114a 100644
--- a/src/main/resources/templates/settings/settings.ftl
+++ b/src/main/resources/templates/settings/settings.ftl
@@ -116,6 +116,7 @@
 
                             <script>
                                 numberValidationMessage = "${locale.getString("warning.empty.number")}";
+                                numberValidationMessageZeroAllowed = "${locale.getString("warning.empty.number.zero.allowed")}";
                             </script>
 
                             <div class="input-field col s12 m12 l8 offset-l2">
-- 
GitLab