diff --git a/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsValidator.java b/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsValidator.java index 049596dd9f87a0b4c77bb73246e2dee5091e9c53..b990f24ae0a2616ed4a8c255f31dc99bbfd6859a 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 f51bbe5a12fd6f08af0b548d9d104d184b0fccce..2378dca3e810a39acf20450f9b6a7480deb3391d 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 779be78e6791ff8fefb5670eea0605f253aad130..89cb6961c10179c30f7b3f0da87a1dc9fe774a77 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 ce75833d221b43e59947afc474204e82a320d2eb..a0c99e38e0bd5d2da4d22768472c03deec5fa300 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 886dc2089a95396d0cff5241d70e38ff034db5ff..4b1047b780fc0ba2867a86b243e3f241cab652bb 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 06176c65fa4f5f84e99fc466ae2b272a1788774c..66ac1114a5e656385490a608384fc9576eeb8352 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">