From 9a80b785c8e777681d77abcae801d004561b0829 Mon Sep 17 00:00:00 2001 From: Rafael Foster Date: Thu, 30 Apr 2026 23:20:25 -0300 Subject: [PATCH] Refine budget loan entry flow --- public/locales/ar.json | 65 ++++++++--------- public/locales/de.json | 5 +- public/locales/el.json | 65 ++++++++--------- public/locales/en.json | 3 +- public/locales/es.json | 63 ++++++++-------- public/locales/fr.json | 61 ++++++++-------- public/locales/hi.json | 65 ++++++++--------- public/locales/it.json | 63 ++++++++-------- public/locales/ja.json | 65 ++++++++--------- public/locales/pt.json | 3 +- public/locales/ru.json | 65 ++++++++--------- public/locales/sv.json | 65 ++++++++--------- public/locales/tr.json | 65 ++++++++--------- public/locales/uk.json | 65 ++++++++--------- public/locales/zh.json | 65 ++++++++--------- public/pages/budget.js | 152 ++++++++++++++++++++++++++------------- public/styles/budget.css | 11 ++- 17 files changed, 511 insertions(+), 435 deletions(-) diff --git a/public/locales/ar.json b/public/locales/ar.json index 9684c58..12a0bef 100644 --- a/public/locales/ar.json +++ b/public/locales/ar.json @@ -553,7 +553,7 @@ "subcatCoursesCollege": "Courses / College", "subcatSchoolSupplies": "School supplies", "subcatLanguages": "Languages", - "subcatLoansInterest": "Loans / Interest", + "subcatLoansInterest": "القروض / الفوائد", "subcatBankFees": "Bank fees", "subcatInsuranceOther": "Insurance", "subcatInvestments": "Investments", @@ -566,37 +566,38 @@ "categoryAddedToast": "Category added.", "subcategoryAddedToast": "Subcategory added.", "emptyAction": "إضافة إدخال", - "loansTitle": "Loans", - "loansSummary": "{{count}} active · {{amount}} remaining", - "newLoan": "New loan", - "createLoan": "Create loan", - "editLoan": "Edit loan", - "deleteLoan": "Delete loan", - "deleteLoanConfirm": "Delete loan \"{{title}}\"? Payments already posted to the budget will also be removed.", - "loanRemainingAmount": "Remaining", - "loanRemainingInstallments": "Installments left", - "loanPaidAmount": "Paid", - "loansEmpty": "No active loans.", - "loanInstallmentMeta": "{{paid}} of {{total}} installments paid", - "loanRemainingOf": "of {{total}}", - "loanNextDue": "Next: {{month}}", - "loanPaidStatus": "Paid", - "markLoanPaid": "Mark paid", - "loanBorrowerLabel": "Borrower *", - "loanBorrowerPlaceholder": "e.g. Lais", - "loanTitleLabel": "Loan title", - "loanTitlePlaceholder": "e.g. Personal loan", - "loanAmountLabel": "Total amount *", - "loanInstallmentsLabel": "Installments *", - "loanStartMonthLabel": "First due month *", - "loanNotesLabel": "Notes", - "loanBorrowerRequired": "Borrower is required", - "loanInstallmentsRequired": "Enter the number of installments", - "loanStartMonthRequired": "Enter the first due month", - "loanAddedToast": "Loan added", - "loanSavedToast": "Loan saved", - "loanDeletedToast": "Loan deleted", - "loanPaymentAddedToast": "Payment recorded" + "loansTitle": "القروض", + "loansSummary": "{{count}} نشط · المتبقي {{amount}}", + "newLoan": "قرض جديد", + "createLoan": "إنشاء قرض", + "editLoan": "تعديل القرض", + "deleteLoan": "حذف القرض", + "deleteLoanConfirm": "هل تريد حذف القرض \"{{title}}\"؟ ستتم إزالة الدفعات المسجلة في الميزانية أيضًا.", + "loanRemainingAmount": "المتبقي", + "loanRemainingInstallments": "الأقساط المتبقية", + "loanPaidAmount": "المدفوع", + "loansEmpty": "لا توجد قروض نشطة.", + "loanInstallmentMeta": "تم دفع {{paid}} من {{total}} أقساط", + "loanRemainingOf": "من {{total}}", + "loanNextDue": "التالي: {{month}}", + "loanPaidStatus": "مدفوع", + "markLoanPaid": "تسجيل الدفع", + "loanBorrowerLabel": "الشخص *", + "loanBorrowerPlaceholder": "مثال: Lais", + "loanTitleLabel": "عنوان القرض", + "loanTitlePlaceholder": "مثال: قرض شخصي", + "loanAmountLabel": "المبلغ الإجمالي *", + "loanInstallmentsLabel": "الأقساط *", + "loanStartMonthLabel": "أول شهر استحقاق *", + "loanNotesLabel": "ملاحظات", + "loanBorrowerRequired": "الشخص مطلوب", + "loanInstallmentsRequired": "أدخل عدد الأقساط", + "loanStartMonthRequired": "أدخل أول شهر استحقاق", + "loanAddedToast": "تمت إضافة القرض", + "loanSavedToast": "تم حفظ القرض", + "loanDeletedToast": "تم حذف القرض", + "loanPaymentAddedToast": "تم تسجيل الدفع", + "typeLoan": "قرض" }, "settings": { "title": "الإعدادات", diff --git a/public/locales/de.json b/public/locales/de.json index 4500f45..b31a104 100644 --- a/public/locales/de.json +++ b/public/locales/de.json @@ -606,7 +606,7 @@ "loanRemainingOf": "von {{total}}", "loanNextDue": "Nächste: {{month}}", "loanPaidStatus": "Bezahlt", - "markLoanPaid": "Bezahlt", + "markLoanPaid": "Als bezahlt markieren", "loanBorrowerLabel": "Person *", "loanBorrowerPlaceholder": "z. B. Lais", "loanTitleLabel": "Darlehenstitel", @@ -621,7 +621,8 @@ "loanAddedToast": "Darlehen hinzugefügt", "loanSavedToast": "Darlehen gespeichert", "loanDeletedToast": "Darlehen gelöscht", - "loanPaymentAddedToast": "Zahlung erfasst" + "loanPaymentAddedToast": "Zahlung erfasst", + "typeLoan": "Darlehen" }, "settings": { "title": "Einstellungen", diff --git a/public/locales/el.json b/public/locales/el.json index 268662d..dc489f3 100644 --- a/public/locales/el.json +++ b/public/locales/el.json @@ -553,7 +553,7 @@ "subcatCoursesCollege": "Courses / College", "subcatSchoolSupplies": "School supplies", "subcatLanguages": "Languages", - "subcatLoansInterest": "Loans / Interest", + "subcatLoansInterest": "Δάνεια / Τόκοι", "subcatBankFees": "Bank fees", "subcatInsuranceOther": "Insurance", "subcatInvestments": "Investments", @@ -566,37 +566,38 @@ "categoryAddedToast": "Category added.", "subcategoryAddedToast": "Subcategory added.", "emptyAction": "Προσθήκη εγγραφής", - "loansTitle": "Loans", - "loansSummary": "{{count}} active · {{amount}} remaining", - "newLoan": "New loan", - "createLoan": "Create loan", - "editLoan": "Edit loan", - "deleteLoan": "Delete loan", - "deleteLoanConfirm": "Delete loan \"{{title}}\"? Payments already posted to the budget will also be removed.", - "loanRemainingAmount": "Remaining", - "loanRemainingInstallments": "Installments left", - "loanPaidAmount": "Paid", - "loansEmpty": "No active loans.", - "loanInstallmentMeta": "{{paid}} of {{total}} installments paid", - "loanRemainingOf": "of {{total}}", - "loanNextDue": "Next: {{month}}", - "loanPaidStatus": "Paid", - "markLoanPaid": "Mark paid", - "loanBorrowerLabel": "Borrower *", - "loanBorrowerPlaceholder": "e.g. Lais", - "loanTitleLabel": "Loan title", - "loanTitlePlaceholder": "e.g. Personal loan", - "loanAmountLabel": "Total amount *", - "loanInstallmentsLabel": "Installments *", - "loanStartMonthLabel": "First due month *", - "loanNotesLabel": "Notes", - "loanBorrowerRequired": "Borrower is required", - "loanInstallmentsRequired": "Enter the number of installments", - "loanStartMonthRequired": "Enter the first due month", - "loanAddedToast": "Loan added", - "loanSavedToast": "Loan saved", - "loanDeletedToast": "Loan deleted", - "loanPaymentAddedToast": "Payment recorded" + "loansTitle": "Δάνεια", + "loansSummary": "{{count}} ενεργά · απομένουν {{amount}}", + "newLoan": "Νέο δάνειο", + "createLoan": "Δημιουργία δανείου", + "editLoan": "Επεξεργασία δανείου", + "deleteLoan": "Διαγραφή δανείου", + "deleteLoanConfirm": "Να διαγραφεί το δάνειο «{{title}}»; Οι πληρωμές που έχουν ήδη περαστεί στον προϋπολογισμό θα αφαιρεθούν επίσης.", + "loanRemainingAmount": "Υπόλοιπο", + "loanRemainingInstallments": "Δόσεις που απομένουν", + "loanPaidAmount": "Πληρωμένο", + "loansEmpty": "Δεν υπάρχουν ενεργά δάνεια.", + "loanInstallmentMeta": "{{paid}} από {{total}} δόσεις πληρωμένες", + "loanRemainingOf": "από {{total}}", + "loanNextDue": "Επόμενη: {{month}}", + "loanPaidStatus": "Πληρωμένο", + "markLoanPaid": "Σήμανση πληρωμής", + "loanBorrowerLabel": "Άτομο *", + "loanBorrowerPlaceholder": "π.χ. Lais", + "loanTitleLabel": "Τίτλος δανείου", + "loanTitlePlaceholder": "π.χ. Προσωπικό δάνειο", + "loanAmountLabel": "Συνολικό ποσό *", + "loanInstallmentsLabel": "Δόσεις *", + "loanStartMonthLabel": "Πρώτος μήνας λήξης *", + "loanNotesLabel": "Σημειώσεις", + "loanBorrowerRequired": "Το άτομο είναι υποχρεωτικό", + "loanInstallmentsRequired": "Εισαγάγετε τον αριθμό δόσεων", + "loanStartMonthRequired": "Εισαγάγετε τον πρώτο μήνα λήξης", + "loanAddedToast": "Το δάνειο προστέθηκε", + "loanSavedToast": "Το δάνειο αποθηκεύτηκε", + "loanDeletedToast": "Το δάνειο διαγράφηκε", + "loanPaymentAddedToast": "Η πληρωμή καταγράφηκε", + "typeLoan": "Δάνειο" }, "settings": { "title": "Ρυθμίσεις", diff --git a/public/locales/en.json b/public/locales/en.json index 460ba14..e302cb3 100644 --- a/public/locales/en.json +++ b/public/locales/en.json @@ -596,7 +596,8 @@ "loanAddedToast": "Loan added", "loanSavedToast": "Loan saved", "loanDeletedToast": "Loan deleted", - "loanPaymentAddedToast": "Payment recorded" + "loanPaymentAddedToast": "Payment recorded", + "typeLoan": "Loan" }, "settings": { "title": "Settings", diff --git a/public/locales/es.json b/public/locales/es.json index aa7206d..42a3eae 100644 --- a/public/locales/es.json +++ b/public/locales/es.json @@ -566,37 +566,38 @@ "categoryAddedToast": "Categoría añadida.", "subcategoryAddedToast": "Subcategoría añadida.", "emptyAction": "Agregar entrada", - "loansTitle": "Loans", - "loansSummary": "{{count}} active · {{amount}} remaining", - "newLoan": "New loan", - "createLoan": "Create loan", - "editLoan": "Edit loan", - "deleteLoan": "Delete loan", - "deleteLoanConfirm": "Delete loan \"{{title}}\"? Payments already posted to the budget will also be removed.", - "loanRemainingAmount": "Remaining", - "loanRemainingInstallments": "Installments left", - "loanPaidAmount": "Paid", - "loansEmpty": "No active loans.", - "loanInstallmentMeta": "{{paid}} of {{total}} installments paid", - "loanRemainingOf": "of {{total}}", - "loanNextDue": "Next: {{month}}", - "loanPaidStatus": "Paid", - "markLoanPaid": "Mark paid", - "loanBorrowerLabel": "Borrower *", - "loanBorrowerPlaceholder": "e.g. Lais", - "loanTitleLabel": "Loan title", - "loanTitlePlaceholder": "e.g. Personal loan", - "loanAmountLabel": "Total amount *", - "loanInstallmentsLabel": "Installments *", - "loanStartMonthLabel": "First due month *", - "loanNotesLabel": "Notes", - "loanBorrowerRequired": "Borrower is required", - "loanInstallmentsRequired": "Enter the number of installments", - "loanStartMonthRequired": "Enter the first due month", - "loanAddedToast": "Loan added", - "loanSavedToast": "Loan saved", - "loanDeletedToast": "Loan deleted", - "loanPaymentAddedToast": "Payment recorded" + "loansTitle": "Préstamos", + "loansSummary": "{{count}} activos · {{amount}} restantes", + "newLoan": "Nuevo préstamo", + "createLoan": "Crear préstamo", + "editLoan": "Editar préstamo", + "deleteLoan": "Eliminar préstamo", + "deleteLoanConfirm": "¿Eliminar el préstamo \"{{title}}\"? También se eliminarán los pagos ya registrados en el presupuesto.", + "loanRemainingAmount": "Restante", + "loanRemainingInstallments": "Cuotas restantes", + "loanPaidAmount": "Pagado", + "loansEmpty": "No hay préstamos activos.", + "loanInstallmentMeta": "{{paid}} de {{total}} cuotas pagadas", + "loanRemainingOf": "de {{total}}", + "loanNextDue": "Siguiente: {{month}}", + "loanPaidStatus": "Pagado", + "markLoanPaid": "Marcar pagado", + "loanBorrowerLabel": "Persona *", + "loanBorrowerPlaceholder": "Ej. Lais", + "loanTitleLabel": "Título del préstamo", + "loanTitlePlaceholder": "Ej. Préstamo personal", + "loanAmountLabel": "Importe total *", + "loanInstallmentsLabel": "Cuotas *", + "loanStartMonthLabel": "Primer mes de vencimiento *", + "loanNotesLabel": "Notas", + "loanBorrowerRequired": "La persona es obligatoria", + "loanInstallmentsRequired": "Introduce el número de cuotas", + "loanStartMonthRequired": "Introduce el primer mes de vencimiento", + "loanAddedToast": "Préstamo añadido", + "loanSavedToast": "Préstamo guardado", + "loanDeletedToast": "Préstamo eliminado", + "loanPaymentAddedToast": "Pago registrado", + "typeLoan": "Préstamo" }, "settings": { "title": "Ajustes", diff --git a/public/locales/fr.json b/public/locales/fr.json index 767d26d..2375324 100644 --- a/public/locales/fr.json +++ b/public/locales/fr.json @@ -566,37 +566,38 @@ "categoryAddedToast": "Catégorie ajoutée.", "subcategoryAddedToast": "Sous-catégorie ajoutée.", "emptyAction": "Ajouter une entrée", - "loansTitle": "Loans", - "loansSummary": "{{count}} active · {{amount}} remaining", - "newLoan": "New loan", - "createLoan": "Create loan", - "editLoan": "Edit loan", - "deleteLoan": "Delete loan", - "deleteLoanConfirm": "Delete loan \"{{title}}\"? Payments already posted to the budget will also be removed.", - "loanRemainingAmount": "Remaining", - "loanRemainingInstallments": "Installments left", - "loanPaidAmount": "Paid", - "loansEmpty": "No active loans.", - "loanInstallmentMeta": "{{paid}} of {{total}} installments paid", - "loanRemainingOf": "of {{total}}", - "loanNextDue": "Next: {{month}}", - "loanPaidStatus": "Paid", - "markLoanPaid": "Mark paid", - "loanBorrowerLabel": "Borrower *", - "loanBorrowerPlaceholder": "e.g. Lais", - "loanTitleLabel": "Loan title", - "loanTitlePlaceholder": "e.g. Personal loan", - "loanAmountLabel": "Total amount *", - "loanInstallmentsLabel": "Installments *", - "loanStartMonthLabel": "First due month *", + "loansTitle": "Prêts", + "loansSummary": "{{count}} actifs · {{amount}} restants", + "newLoan": "Nouveau prêt", + "createLoan": "Créer le prêt", + "editLoan": "Modifier le prêt", + "deleteLoan": "Supprimer le prêt", + "deleteLoanConfirm": "Supprimer le prêt \"{{title}}\" ? Les paiements déjà enregistrés dans le budget seront aussi supprimés.", + "loanRemainingAmount": "Restant", + "loanRemainingInstallments": "Échéances restantes", + "loanPaidAmount": "Payé", + "loansEmpty": "Aucun prêt actif.", + "loanInstallmentMeta": "{{paid}} sur {{total}} échéances payées", + "loanRemainingOf": "sur {{total}}", + "loanNextDue": "Prochaine : {{month}}", + "loanPaidStatus": "Payé", + "markLoanPaid": "Marquer payé", + "loanBorrowerLabel": "Personne *", + "loanBorrowerPlaceholder": "Ex. Lais", + "loanTitleLabel": "Titre du prêt", + "loanTitlePlaceholder": "Ex. Prêt personnel", + "loanAmountLabel": "Montant total *", + "loanInstallmentsLabel": "Échéances *", + "loanStartMonthLabel": "Premier mois d’échéance *", "loanNotesLabel": "Notes", - "loanBorrowerRequired": "Borrower is required", - "loanInstallmentsRequired": "Enter the number of installments", - "loanStartMonthRequired": "Enter the first due month", - "loanAddedToast": "Loan added", - "loanSavedToast": "Loan saved", - "loanDeletedToast": "Loan deleted", - "loanPaymentAddedToast": "Payment recorded" + "loanBorrowerRequired": "La personne est obligatoire", + "loanInstallmentsRequired": "Indiquez le nombre d’échéances", + "loanStartMonthRequired": "Indiquez le premier mois d’échéance", + "loanAddedToast": "Prêt ajouté", + "loanSavedToast": "Prêt enregistré", + "loanDeletedToast": "Prêt supprimé", + "loanPaymentAddedToast": "Paiement enregistré", + "typeLoan": "Prêt" }, "settings": { "title": "Paramètres", diff --git a/public/locales/hi.json b/public/locales/hi.json index e173bac..a71d971 100644 --- a/public/locales/hi.json +++ b/public/locales/hi.json @@ -553,7 +553,7 @@ "subcatCoursesCollege": "Courses / College", "subcatSchoolSupplies": "School supplies", "subcatLanguages": "Languages", - "subcatLoansInterest": "Loans / Interest", + "subcatLoansInterest": "उधार / ब्याज", "subcatBankFees": "Bank fees", "subcatInsuranceOther": "Insurance", "subcatInvestments": "Investments", @@ -566,37 +566,38 @@ "categoryAddedToast": "Category added.", "subcategoryAddedToast": "Subcategory added.", "emptyAction": "प्रविष्टि जोड़ें", - "loansTitle": "Loans", - "loansSummary": "{{count}} active · {{amount}} remaining", - "newLoan": "New loan", - "createLoan": "Create loan", - "editLoan": "Edit loan", - "deleteLoan": "Delete loan", - "deleteLoanConfirm": "Delete loan \"{{title}}\"? Payments already posted to the budget will also be removed.", - "loanRemainingAmount": "Remaining", - "loanRemainingInstallments": "Installments left", - "loanPaidAmount": "Paid", - "loansEmpty": "No active loans.", - "loanInstallmentMeta": "{{paid}} of {{total}} installments paid", - "loanRemainingOf": "of {{total}}", - "loanNextDue": "Next: {{month}}", - "loanPaidStatus": "Paid", - "markLoanPaid": "Mark paid", - "loanBorrowerLabel": "Borrower *", - "loanBorrowerPlaceholder": "e.g. Lais", - "loanTitleLabel": "Loan title", - "loanTitlePlaceholder": "e.g. Personal loan", - "loanAmountLabel": "Total amount *", - "loanInstallmentsLabel": "Installments *", - "loanStartMonthLabel": "First due month *", - "loanNotesLabel": "Notes", - "loanBorrowerRequired": "Borrower is required", - "loanInstallmentsRequired": "Enter the number of installments", - "loanStartMonthRequired": "Enter the first due month", - "loanAddedToast": "Loan added", - "loanSavedToast": "Loan saved", - "loanDeletedToast": "Loan deleted", - "loanPaymentAddedToast": "Payment recorded" + "loansTitle": "उधार", + "loansSummary": "{{count}} सक्रिय · {{amount}} बाकी", + "newLoan": "नया उधार", + "createLoan": "उधार बनाएं", + "editLoan": "उधार संपादित करें", + "deleteLoan": "उधार हटाएं", + "deleteLoanConfirm": "उधार \"{{title}}\" हटाएं? बजट में दर्ज भुगतान भी हटा दिए जाएंगे।", + "loanRemainingAmount": "बाकी", + "loanRemainingInstallments": "बाकी किस्तें", + "loanPaidAmount": "भुगतान किया", + "loansEmpty": "कोई सक्रिय उधार नहीं।", + "loanInstallmentMeta": "{{total}} में से {{paid}} किस्तें चुकाई गईं", + "loanRemainingOf": "{{total}} में से", + "loanNextDue": "अगली: {{month}}", + "loanPaidStatus": "चुकाया गया", + "markLoanPaid": "भुगतान दर्ज करें", + "loanBorrowerLabel": "व्यक्ति *", + "loanBorrowerPlaceholder": "जैसे Lais", + "loanTitleLabel": "उधार का शीर्षक", + "loanTitlePlaceholder": "जैसे व्यक्तिगत उधार", + "loanAmountLabel": "कुल राशि *", + "loanInstallmentsLabel": "किस्तें *", + "loanStartMonthLabel": "पहला देय महीना *", + "loanNotesLabel": "नोट्स", + "loanBorrowerRequired": "व्यक्ति आवश्यक है", + "loanInstallmentsRequired": "किस्तों की संख्या दर्ज करें", + "loanStartMonthRequired": "पहला देय महीना दर्ज करें", + "loanAddedToast": "उधार जोड़ा गया", + "loanSavedToast": "उधार सहेजा गया", + "loanDeletedToast": "उधार हटाया गया", + "loanPaymentAddedToast": "भुगतान दर्ज किया गया", + "typeLoan": "उधार" }, "settings": { "title": "सेटिंग्स", diff --git a/public/locales/it.json b/public/locales/it.json index b6351bc..6d52c9d 100644 --- a/public/locales/it.json +++ b/public/locales/it.json @@ -566,37 +566,38 @@ "categoryAddedToast": "Categoria aggiunta.", "subcategoryAddedToast": "Sottocategoria aggiunta.", "emptyAction": "Aggiungi voce", - "loansTitle": "Loans", - "loansSummary": "{{count}} active · {{amount}} remaining", - "newLoan": "New loan", - "createLoan": "Create loan", - "editLoan": "Edit loan", - "deleteLoan": "Delete loan", - "deleteLoanConfirm": "Delete loan \"{{title}}\"? Payments already posted to the budget will also be removed.", - "loanRemainingAmount": "Remaining", - "loanRemainingInstallments": "Installments left", - "loanPaidAmount": "Paid", - "loansEmpty": "No active loans.", - "loanInstallmentMeta": "{{paid}} of {{total}} installments paid", - "loanRemainingOf": "of {{total}}", - "loanNextDue": "Next: {{month}}", - "loanPaidStatus": "Paid", - "markLoanPaid": "Mark paid", - "loanBorrowerLabel": "Borrower *", - "loanBorrowerPlaceholder": "e.g. Lais", - "loanTitleLabel": "Loan title", - "loanTitlePlaceholder": "e.g. Personal loan", - "loanAmountLabel": "Total amount *", - "loanInstallmentsLabel": "Installments *", - "loanStartMonthLabel": "First due month *", - "loanNotesLabel": "Notes", - "loanBorrowerRequired": "Borrower is required", - "loanInstallmentsRequired": "Enter the number of installments", - "loanStartMonthRequired": "Enter the first due month", - "loanAddedToast": "Loan added", - "loanSavedToast": "Loan saved", - "loanDeletedToast": "Loan deleted", - "loanPaymentAddedToast": "Payment recorded" + "loansTitle": "Prestiti", + "loansSummary": "{{count}} attivi · {{amount}} rimanenti", + "newLoan": "Nuovo prestito", + "createLoan": "Crea prestito", + "editLoan": "Modifica prestito", + "deleteLoan": "Elimina prestito", + "deleteLoanConfirm": "Eliminare il prestito \"{{title}}\"? Verranno rimossi anche i pagamenti già registrati nel bilancio.", + "loanRemainingAmount": "Rimanente", + "loanRemainingInstallments": "Rate rimanenti", + "loanPaidAmount": "Pagato", + "loansEmpty": "Nessun prestito attivo.", + "loanInstallmentMeta": "{{paid}} di {{total}} rate pagate", + "loanRemainingOf": "di {{total}}", + "loanNextDue": "Prossima: {{month}}", + "loanPaidStatus": "Pagato", + "markLoanPaid": "Segna pagato", + "loanBorrowerLabel": "Persona *", + "loanBorrowerPlaceholder": "Es. Lais", + "loanTitleLabel": "Titolo del prestito", + "loanTitlePlaceholder": "Es. Prestito personale", + "loanAmountLabel": "Importo totale *", + "loanInstallmentsLabel": "Rate *", + "loanStartMonthLabel": "Primo mese di scadenza *", + "loanNotesLabel": "Note", + "loanBorrowerRequired": "La persona è obbligatoria", + "loanInstallmentsRequired": "Inserisci il numero di rate", + "loanStartMonthRequired": "Inserisci il primo mese di scadenza", + "loanAddedToast": "Prestito aggiunto", + "loanSavedToast": "Prestito salvato", + "loanDeletedToast": "Prestito eliminato", + "loanPaymentAddedToast": "Pagamento registrato", + "typeLoan": "Prestito" }, "settings": { "title": "Impostazioni", diff --git a/public/locales/ja.json b/public/locales/ja.json index e365f1b..4d8d440 100644 --- a/public/locales/ja.json +++ b/public/locales/ja.json @@ -553,7 +553,7 @@ "subcatCoursesCollege": "Courses / College", "subcatSchoolSupplies": "School supplies", "subcatLanguages": "Languages", - "subcatLoansInterest": "Loans / Interest", + "subcatLoansInterest": "貸付 / 利息", "subcatBankFees": "Bank fees", "subcatInsuranceOther": "Insurance", "subcatInvestments": "Investments", @@ -566,37 +566,38 @@ "categoryAddedToast": "Category added.", "subcategoryAddedToast": "Subcategory added.", "emptyAction": "エントリを追加", - "loansTitle": "Loans", - "loansSummary": "{{count}} active · {{amount}} remaining", - "newLoan": "New loan", - "createLoan": "Create loan", - "editLoan": "Edit loan", - "deleteLoan": "Delete loan", - "deleteLoanConfirm": "Delete loan \"{{title}}\"? Payments already posted to the budget will also be removed.", - "loanRemainingAmount": "Remaining", - "loanRemainingInstallments": "Installments left", - "loanPaidAmount": "Paid", - "loansEmpty": "No active loans.", - "loanInstallmentMeta": "{{paid}} of {{total}} installments paid", - "loanRemainingOf": "of {{total}}", - "loanNextDue": "Next: {{month}}", - "loanPaidStatus": "Paid", - "markLoanPaid": "Mark paid", - "loanBorrowerLabel": "Borrower *", - "loanBorrowerPlaceholder": "e.g. Lais", - "loanTitleLabel": "Loan title", - "loanTitlePlaceholder": "e.g. Personal loan", - "loanAmountLabel": "Total amount *", - "loanInstallmentsLabel": "Installments *", - "loanStartMonthLabel": "First due month *", - "loanNotesLabel": "Notes", - "loanBorrowerRequired": "Borrower is required", - "loanInstallmentsRequired": "Enter the number of installments", - "loanStartMonthRequired": "Enter the first due month", - "loanAddedToast": "Loan added", - "loanSavedToast": "Loan saved", - "loanDeletedToast": "Loan deleted", - "loanPaymentAddedToast": "Payment recorded" + "loansTitle": "貸付", + "loansSummary": "{{count}} 件が進行中 · 残り {{amount}}", + "newLoan": "新しい貸付", + "createLoan": "貸付を作成", + "editLoan": "貸付を編集", + "deleteLoan": "貸付を削除", + "deleteLoanConfirm": "貸付「{{title}}」を削除しますか?予算に記録済みの返済も削除されます。", + "loanRemainingAmount": "残額", + "loanRemainingInstallments": "残り回数", + "loanPaidAmount": "返済済み", + "loansEmpty": "進行中の貸付はありません。", + "loanInstallmentMeta": "{{total}} 回中 {{paid}} 回返済済み", + "loanRemainingOf": "{{total}} のうち", + "loanNextDue": "次回:{{month}}", + "loanPaidStatus": "完済", + "markLoanPaid": "返済済みにする", + "loanBorrowerLabel": "相手 *", + "loanBorrowerPlaceholder": "例:Lais", + "loanTitleLabel": "貸付タイトル", + "loanTitlePlaceholder": "例:個人貸付", + "loanAmountLabel": "合計金額 *", + "loanInstallmentsLabel": "分割回数 *", + "loanStartMonthLabel": "初回支払月 *", + "loanNotesLabel": "メモ", + "loanBorrowerRequired": "相手を入力してください", + "loanInstallmentsRequired": "分割回数を入力してください", + "loanStartMonthRequired": "初回支払月を入力してください", + "loanAddedToast": "貸付を追加しました", + "loanSavedToast": "貸付を保存しました", + "loanDeletedToast": "貸付を削除しました", + "loanPaymentAddedToast": "返済を記録しました", + "typeLoan": "貸付" }, "settings": { "title": "設定", diff --git a/public/locales/pt.json b/public/locales/pt.json index 7f5557d..065fc1f 100644 --- a/public/locales/pt.json +++ b/public/locales/pt.json @@ -596,7 +596,8 @@ "loanAddedToast": "Empréstimo adicionado", "loanSavedToast": "Empréstimo salvo", "loanDeletedToast": "Empréstimo excluído", - "loanPaymentAddedToast": "Pagamento registrado" + "loanPaymentAddedToast": "Pagamento registrado", + "typeLoan": "Empréstimo" }, "settings": { "title": "Configurações", diff --git a/public/locales/ru.json b/public/locales/ru.json index 1b405a3..464f901 100644 --- a/public/locales/ru.json +++ b/public/locales/ru.json @@ -553,7 +553,7 @@ "subcatCoursesCollege": "Courses / College", "subcatSchoolSupplies": "School supplies", "subcatLanguages": "Languages", - "subcatLoansInterest": "Loans / Interest", + "subcatLoansInterest": "Займы / Проценты", "subcatBankFees": "Bank fees", "subcatInsuranceOther": "Insurance", "subcatInvestments": "Investments", @@ -566,37 +566,38 @@ "categoryAddedToast": "Category added.", "subcategoryAddedToast": "Subcategory added.", "emptyAction": "Добавить запись", - "loansTitle": "Loans", - "loansSummary": "{{count}} active · {{amount}} remaining", - "newLoan": "New loan", - "createLoan": "Create loan", - "editLoan": "Edit loan", - "deleteLoan": "Delete loan", - "deleteLoanConfirm": "Delete loan \"{{title}}\"? Payments already posted to the budget will also be removed.", - "loanRemainingAmount": "Remaining", - "loanRemainingInstallments": "Installments left", - "loanPaidAmount": "Paid", - "loansEmpty": "No active loans.", - "loanInstallmentMeta": "{{paid}} of {{total}} installments paid", - "loanRemainingOf": "of {{total}}", - "loanNextDue": "Next: {{month}}", - "loanPaidStatus": "Paid", - "markLoanPaid": "Mark paid", - "loanBorrowerLabel": "Borrower *", - "loanBorrowerPlaceholder": "e.g. Lais", - "loanTitleLabel": "Loan title", - "loanTitlePlaceholder": "e.g. Personal loan", - "loanAmountLabel": "Total amount *", - "loanInstallmentsLabel": "Installments *", - "loanStartMonthLabel": "First due month *", - "loanNotesLabel": "Notes", - "loanBorrowerRequired": "Borrower is required", - "loanInstallmentsRequired": "Enter the number of installments", - "loanStartMonthRequired": "Enter the first due month", - "loanAddedToast": "Loan added", - "loanSavedToast": "Loan saved", - "loanDeletedToast": "Loan deleted", - "loanPaymentAddedToast": "Payment recorded" + "loansTitle": "Займы", + "loansSummary": "{{count}} активных · осталось {{amount}}", + "newLoan": "Новый займ", + "createLoan": "Создать займ", + "editLoan": "Изменить займ", + "deleteLoan": "Удалить займ", + "deleteLoanConfirm": "Удалить займ «{{title}}»? Платежи, уже добавленные в бюджет, тоже будут удалены.", + "loanRemainingAmount": "Осталось", + "loanRemainingInstallments": "Осталось платежей", + "loanPaidAmount": "Оплачено", + "loansEmpty": "Нет активных займов.", + "loanInstallmentMeta": "Оплачено {{paid}} из {{total}} платежей", + "loanRemainingOf": "из {{total}}", + "loanNextDue": "Следующий: {{month}}", + "loanPaidStatus": "Оплачено", + "markLoanPaid": "Отметить оплату", + "loanBorrowerLabel": "Человек *", + "loanBorrowerPlaceholder": "Напр. Lais", + "loanTitleLabel": "Название займа", + "loanTitlePlaceholder": "Напр. Личный займ", + "loanAmountLabel": "Общая сумма *", + "loanInstallmentsLabel": "Платежи *", + "loanStartMonthLabel": "Первый месяц оплаты *", + "loanNotesLabel": "Заметки", + "loanBorrowerRequired": "Укажите человека", + "loanInstallmentsRequired": "Укажите количество платежей", + "loanStartMonthRequired": "Укажите первый месяц оплаты", + "loanAddedToast": "Займ добавлен", + "loanSavedToast": "Займ сохранён", + "loanDeletedToast": "Займ удалён", + "loanPaymentAddedToast": "Платёж записан", + "typeLoan": "Займ" }, "settings": { "title": "Настройки", diff --git a/public/locales/sv.json b/public/locales/sv.json index a6830c9..8bf7ca4 100644 --- a/public/locales/sv.json +++ b/public/locales/sv.json @@ -553,7 +553,7 @@ "subcatCoursesCollege": "Courses / College", "subcatSchoolSupplies": "School supplies", "subcatLanguages": "Languages", - "subcatLoansInterest": "Loans / Interest", + "subcatLoansInterest": "Lån / Ränta", "subcatBankFees": "Bank fees", "subcatInsuranceOther": "Insurance", "subcatInvestments": "Investments", @@ -566,37 +566,38 @@ "categoryAddedToast": "Category added.", "subcategoryAddedToast": "Subcategory added.", "emptyAction": "Lägg till post", - "loansTitle": "Loans", - "loansSummary": "{{count}} active · {{amount}} remaining", - "newLoan": "New loan", - "createLoan": "Create loan", - "editLoan": "Edit loan", - "deleteLoan": "Delete loan", - "deleteLoanConfirm": "Delete loan \"{{title}}\"? Payments already posted to the budget will also be removed.", - "loanRemainingAmount": "Remaining", - "loanRemainingInstallments": "Installments left", - "loanPaidAmount": "Paid", - "loansEmpty": "No active loans.", - "loanInstallmentMeta": "{{paid}} of {{total}} installments paid", - "loanRemainingOf": "of {{total}}", - "loanNextDue": "Next: {{month}}", - "loanPaidStatus": "Paid", - "markLoanPaid": "Mark paid", - "loanBorrowerLabel": "Borrower *", - "loanBorrowerPlaceholder": "e.g. Lais", - "loanTitleLabel": "Loan title", - "loanTitlePlaceholder": "e.g. Personal loan", - "loanAmountLabel": "Total amount *", - "loanInstallmentsLabel": "Installments *", - "loanStartMonthLabel": "First due month *", - "loanNotesLabel": "Notes", - "loanBorrowerRequired": "Borrower is required", - "loanInstallmentsRequired": "Enter the number of installments", - "loanStartMonthRequired": "Enter the first due month", - "loanAddedToast": "Loan added", - "loanSavedToast": "Loan saved", - "loanDeletedToast": "Loan deleted", - "loanPaymentAddedToast": "Payment recorded" + "loansTitle": "Lån", + "loansSummary": "{{count}} aktiva · {{amount}} kvar", + "newLoan": "Nytt lån", + "createLoan": "Skapa lån", + "editLoan": "Redigera lån", + "deleteLoan": "Ta bort lån", + "deleteLoanConfirm": "Ta bort lånet \"{{title}}\"? Betalningar som redan bokförts i budgeten tas också bort.", + "loanRemainingAmount": "Kvar", + "loanRemainingInstallments": "Delbetalningar kvar", + "loanPaidAmount": "Betalt", + "loansEmpty": "Inga aktiva lån.", + "loanInstallmentMeta": "{{paid}} av {{total}} delbetalningar betalda", + "loanRemainingOf": "av {{total}}", + "loanNextDue": "Nästa: {{month}}", + "loanPaidStatus": "Betalt", + "markLoanPaid": "Markera betalt", + "loanBorrowerLabel": "Person *", + "loanBorrowerPlaceholder": "t.ex. Lais", + "loanTitleLabel": "Lånetitel", + "loanTitlePlaceholder": "t.ex. Privat lån", + "loanAmountLabel": "Totalbelopp *", + "loanInstallmentsLabel": "Delbetalningar *", + "loanStartMonthLabel": "Första förfallomånaden *", + "loanNotesLabel": "Anteckningar", + "loanBorrowerRequired": "Person krävs", + "loanInstallmentsRequired": "Ange antal delbetalningar", + "loanStartMonthRequired": "Ange första förfallomånaden", + "loanAddedToast": "Lån tillagt", + "loanSavedToast": "Lån sparat", + "loanDeletedToast": "Lån borttaget", + "loanPaymentAddedToast": "Betalning registrerad", + "typeLoan": "Lån" }, "settings": { "title": "Inställningar", diff --git a/public/locales/tr.json b/public/locales/tr.json index a0829fa..a4cb4e3 100644 --- a/public/locales/tr.json +++ b/public/locales/tr.json @@ -553,7 +553,7 @@ "subcatCoursesCollege": "Courses / College", "subcatSchoolSupplies": "School supplies", "subcatLanguages": "Languages", - "subcatLoansInterest": "Loans / Interest", + "subcatLoansInterest": "Borçlar / Faiz", "subcatBankFees": "Bank fees", "subcatInsuranceOther": "Insurance", "subcatInvestments": "Investments", @@ -566,37 +566,38 @@ "categoryAddedToast": "Category added.", "subcategoryAddedToast": "Subcategory added.", "emptyAction": "Giriş ekle", - "loansTitle": "Loans", - "loansSummary": "{{count}} active · {{amount}} remaining", - "newLoan": "New loan", - "createLoan": "Create loan", - "editLoan": "Edit loan", - "deleteLoan": "Delete loan", - "deleteLoanConfirm": "Delete loan \"{{title}}\"? Payments already posted to the budget will also be removed.", - "loanRemainingAmount": "Remaining", - "loanRemainingInstallments": "Installments left", - "loanPaidAmount": "Paid", - "loansEmpty": "No active loans.", - "loanInstallmentMeta": "{{paid}} of {{total}} installments paid", - "loanRemainingOf": "of {{total}}", - "loanNextDue": "Next: {{month}}", - "loanPaidStatus": "Paid", - "markLoanPaid": "Mark paid", - "loanBorrowerLabel": "Borrower *", - "loanBorrowerPlaceholder": "e.g. Lais", - "loanTitleLabel": "Loan title", - "loanTitlePlaceholder": "e.g. Personal loan", - "loanAmountLabel": "Total amount *", - "loanInstallmentsLabel": "Installments *", - "loanStartMonthLabel": "First due month *", - "loanNotesLabel": "Notes", - "loanBorrowerRequired": "Borrower is required", - "loanInstallmentsRequired": "Enter the number of installments", - "loanStartMonthRequired": "Enter the first due month", - "loanAddedToast": "Loan added", - "loanSavedToast": "Loan saved", - "loanDeletedToast": "Loan deleted", - "loanPaymentAddedToast": "Payment recorded" + "loansTitle": "Borçlar", + "loansSummary": "{{count}} aktif · {{amount}} kaldı", + "newLoan": "Yeni borç", + "createLoan": "Borç oluştur", + "editLoan": "Borcu düzenle", + "deleteLoan": "Borcu sil", + "deleteLoanConfirm": "\"{{title}}\" borcu silinsin mi? Bütçeye işlenmiş ödemeler de kaldırılır.", + "loanRemainingAmount": "Kalan", + "loanRemainingInstallments": "Kalan taksit", + "loanPaidAmount": "Ödenen", + "loansEmpty": "Aktif borç yok.", + "loanInstallmentMeta": "{{paid}} / {{total}} taksit ödendi", + "loanRemainingOf": "{{total}} içinden", + "loanNextDue": "Sonraki: {{month}}", + "loanPaidStatus": "Ödendi", + "markLoanPaid": "Ödendi işaretle", + "loanBorrowerLabel": "Kişi *", + "loanBorrowerPlaceholder": "Örn. Lais", + "loanTitleLabel": "Borç başlığı", + "loanTitlePlaceholder": "Örn. Kişisel borç", + "loanAmountLabel": "Toplam tutar *", + "loanInstallmentsLabel": "Taksitler *", + "loanStartMonthLabel": "İlk vade ayı *", + "loanNotesLabel": "Notlar", + "loanBorrowerRequired": "Kişi gerekli", + "loanInstallmentsRequired": "Taksit sayısını girin", + "loanStartMonthRequired": "İlk vade ayını girin", + "loanAddedToast": "Borç eklendi", + "loanSavedToast": "Borç kaydedildi", + "loanDeletedToast": "Borç silindi", + "loanPaymentAddedToast": "Ödeme kaydedildi", + "typeLoan": "Borç" }, "settings": { "title": "Ayarlar", diff --git a/public/locales/uk.json b/public/locales/uk.json index f615f46..9f2ebc2 100644 --- a/public/locales/uk.json +++ b/public/locales/uk.json @@ -553,7 +553,7 @@ "subcatCoursesCollege": "Courses / College", "subcatSchoolSupplies": "School supplies", "subcatLanguages": "Languages", - "subcatLoansInterest": "Loans / Interest", + "subcatLoansInterest": "Позики / Відсотки", "subcatBankFees": "Bank fees", "subcatInsuranceOther": "Insurance", "subcatInvestments": "Investments", @@ -566,37 +566,38 @@ "categoryAddedToast": "Category added.", "subcategoryAddedToast": "Subcategory added.", "emptyAction": "Додати запис", - "loansTitle": "Loans", - "loansSummary": "{{count}} active · {{amount}} remaining", - "newLoan": "New loan", - "createLoan": "Create loan", - "editLoan": "Edit loan", - "deleteLoan": "Delete loan", - "deleteLoanConfirm": "Delete loan \"{{title}}\"? Payments already posted to the budget will also be removed.", - "loanRemainingAmount": "Remaining", - "loanRemainingInstallments": "Installments left", - "loanPaidAmount": "Paid", - "loansEmpty": "No active loans.", - "loanInstallmentMeta": "{{paid}} of {{total}} installments paid", - "loanRemainingOf": "of {{total}}", - "loanNextDue": "Next: {{month}}", - "loanPaidStatus": "Paid", - "markLoanPaid": "Mark paid", - "loanBorrowerLabel": "Borrower *", - "loanBorrowerPlaceholder": "e.g. Lais", - "loanTitleLabel": "Loan title", - "loanTitlePlaceholder": "e.g. Personal loan", - "loanAmountLabel": "Total amount *", - "loanInstallmentsLabel": "Installments *", - "loanStartMonthLabel": "First due month *", - "loanNotesLabel": "Notes", - "loanBorrowerRequired": "Borrower is required", - "loanInstallmentsRequired": "Enter the number of installments", - "loanStartMonthRequired": "Enter the first due month", - "loanAddedToast": "Loan added", - "loanSavedToast": "Loan saved", - "loanDeletedToast": "Loan deleted", - "loanPaymentAddedToast": "Payment recorded" + "loansTitle": "Позики", + "loansSummary": "{{count}} активних · залишилось {{amount}}", + "newLoan": "Нова позика", + "createLoan": "Створити позику", + "editLoan": "Редагувати позику", + "deleteLoan": "Видалити позику", + "deleteLoanConfirm": "Видалити позику «{{title}}»? Платежі, вже додані до бюджету, також буде видалено.", + "loanRemainingAmount": "Залишилось", + "loanRemainingInstallments": "Залишилось платежів", + "loanPaidAmount": "Сплачено", + "loansEmpty": "Немає активних позик.", + "loanInstallmentMeta": "Сплачено {{paid}} з {{total}} платежів", + "loanRemainingOf": "з {{total}}", + "loanNextDue": "Наступний: {{month}}", + "loanPaidStatus": "Сплачено", + "markLoanPaid": "Позначити сплату", + "loanBorrowerLabel": "Людина *", + "loanBorrowerPlaceholder": "Напр. Lais", + "loanTitleLabel": "Назва позики", + "loanTitlePlaceholder": "Напр. Особиста позика", + "loanAmountLabel": "Загальна сума *", + "loanInstallmentsLabel": "Платежі *", + "loanStartMonthLabel": "Перший місяць сплати *", + "loanNotesLabel": "Нотатки", + "loanBorrowerRequired": "Вкажіть людину", + "loanInstallmentsRequired": "Вкажіть кількість платежів", + "loanStartMonthRequired": "Вкажіть перший місяць сплати", + "loanAddedToast": "Позику додано", + "loanSavedToast": "Позику збережено", + "loanDeletedToast": "Позику видалено", + "loanPaymentAddedToast": "Платіж записано", + "typeLoan": "Позика" }, "settings": { "title": "Налаштування", diff --git a/public/locales/zh.json b/public/locales/zh.json index 4288973..9bcade2 100644 --- a/public/locales/zh.json +++ b/public/locales/zh.json @@ -553,7 +553,7 @@ "subcatCoursesCollege": "Courses / College", "subcatSchoolSupplies": "School supplies", "subcatLanguages": "Languages", - "subcatLoansInterest": "Loans / Interest", + "subcatLoansInterest": "借款 / 利息", "subcatBankFees": "Bank fees", "subcatInsuranceOther": "Insurance", "subcatInvestments": "Investments", @@ -566,37 +566,38 @@ "categoryAddedToast": "Category added.", "subcategoryAddedToast": "Subcategory added.", "emptyAction": "添加记录", - "loansTitle": "Loans", - "loansSummary": "{{count}} active · {{amount}} remaining", - "newLoan": "New loan", - "createLoan": "Create loan", - "editLoan": "Edit loan", - "deleteLoan": "Delete loan", - "deleteLoanConfirm": "Delete loan \"{{title}}\"? Payments already posted to the budget will also be removed.", - "loanRemainingAmount": "Remaining", - "loanRemainingInstallments": "Installments left", - "loanPaidAmount": "Paid", - "loansEmpty": "No active loans.", - "loanInstallmentMeta": "{{paid}} of {{total}} installments paid", - "loanRemainingOf": "of {{total}}", - "loanNextDue": "Next: {{month}}", - "loanPaidStatus": "Paid", - "markLoanPaid": "Mark paid", - "loanBorrowerLabel": "Borrower *", - "loanBorrowerPlaceholder": "e.g. Lais", - "loanTitleLabel": "Loan title", - "loanTitlePlaceholder": "e.g. Personal loan", - "loanAmountLabel": "Total amount *", - "loanInstallmentsLabel": "Installments *", - "loanStartMonthLabel": "First due month *", - "loanNotesLabel": "Notes", - "loanBorrowerRequired": "Borrower is required", - "loanInstallmentsRequired": "Enter the number of installments", - "loanStartMonthRequired": "Enter the first due month", - "loanAddedToast": "Loan added", - "loanSavedToast": "Loan saved", - "loanDeletedToast": "Loan deleted", - "loanPaymentAddedToast": "Payment recorded" + "loansTitle": "借款", + "loansSummary": "{{count}} 笔进行中 · 剩余 {{amount}}", + "newLoan": "新建借款", + "createLoan": "创建借款", + "editLoan": "编辑借款", + "deleteLoan": "删除借款", + "deleteLoanConfirm": "删除借款“{{title}}”?已记入预算的还款也会被删除。", + "loanRemainingAmount": "剩余金额", + "loanRemainingInstallments": "剩余期数", + "loanPaidAmount": "已还金额", + "loansEmpty": "没有进行中的借款。", + "loanInstallmentMeta": "已还 {{paid}} / {{total}} 期", + "loanRemainingOf": "共 {{total}}", + "loanNextDue": "下一期:{{month}}", + "loanPaidStatus": "已还清", + "markLoanPaid": "标记已还", + "loanBorrowerLabel": "借款人 *", + "loanBorrowerPlaceholder": "例如:Lais", + "loanTitleLabel": "借款标题", + "loanTitlePlaceholder": "例如:个人借款", + "loanAmountLabel": "总金额 *", + "loanInstallmentsLabel": "期数 *", + "loanStartMonthLabel": "首期月份 *", + "loanNotesLabel": "备注", + "loanBorrowerRequired": "请填写借款人", + "loanInstallmentsRequired": "请输入期数", + "loanStartMonthRequired": "请输入首期月份", + "loanAddedToast": "借款已添加", + "loanSavedToast": "借款已保存", + "loanDeletedToast": "借款已删除", + "loanPaymentAddedToast": "还款已记录", + "typeLoan": "借款" }, "settings": { "title": "设置", diff --git a/public/pages/budget.js b/public/pages/budget.js index 10c18a5..dc35df9 100644 --- a/public/pages/budget.js +++ b/public/pages/budget.js @@ -346,7 +346,6 @@ function renderBody() { _container.querySelector('#empty-cta-budget')?.addEventListener('click', () => { document.querySelector('.page-fab')?.click(); }); - _container.querySelector('#budget-add-loan')?.addEventListener('click', () => openLoanModal()); _container.querySelectorAll('[data-action="loan-pay"]').forEach((btn) => { btn.addEventListener('click', async () => { await markLoanPayment(parseInt(btn.dataset.id, 10)); @@ -445,6 +444,8 @@ function renderEntries() { function renderLoansDashboard() { const loans = state.loans?.loans ?? []; + if (!loans.length) return ''; + const summary = state.loans?.summary ?? {}; const activeLoans = loans.filter((loan) => loan.status === 'active'); @@ -458,10 +459,6 @@ function renderLoansDashboard() { amount: formatAmount(summary.remaining_amount ?? 0), })} -
@@ -560,6 +557,7 @@ function formatEntryDate(dateStr) { function openBudgetModal({ mode, entry = null }) { const isEdit = mode === 'edit'; const today = new Date().toISOString().slice(0, 10); + const todayMonth = today.slice(0, 7); const isExpense = isEdit ? entry.amount < 0 : true; const absAmount = isEdit ? Math.abs(entry.amount).toFixed(2) : ''; @@ -575,27 +573,29 @@ function openBudgetModal({ mode, entry = null }) { ).join(''); const content = ` -
+
+ ${!isEdit ? `` : ''}
-
+
-
+
-
+
@@ -603,7 +603,7 @@ function openBudgetModal({ mode, entry = null }) {
-
+
@@ -611,13 +611,13 @@ function openBudgetModal({ mode, entry = null }) {
-
+
-
+
+ +