feat: birthday tracking, dashboard KPIs, and app name customization (#88)

- Add Birthdays module: CRUD with calendar/reminder auto-sync, photo upload, age notes
- Add DB migration 18 (birthdays table with calendar_event_id, trigger, indexes)
- Add dashboard widgets: birthdays, family participants, budget overview
- Add Settings > General: admins can set a custom app name (reflected in title/sidebar/login)
- Improve service worker: network-first caching for mutable JS/CSS assets
- Add translations for 16 locales (birthday keys)

Fixes applied during integration:
- innerHTML replaced with insertAdjacentHTML/replaceChildren throughout birthdays.js and dashboard.js
- docker-compose.yml personal dev changes reverted

Co-authored-by: Rafael Foster <rafaelgfoster@gmail.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Ulas Kalayci
2026-04-27 07:37:09 +02:00
39 changed files with 4026 additions and 156 deletions
+53
View File
@@ -38,6 +38,7 @@
"shopping": "التسوق",
"notes": "الملاحظات",
"contacts": "جهات الاتصال",
"birthdays": "أعياد الميلاد",
"budget": "الميزانية",
"settings": "الإعدادات",
"main": "القائمة الرئيسية",
@@ -82,6 +83,19 @@
"allDay": "طوال اليوم",
"shoppingMore": "+{{count}} أخرى",
"weather": "الطقس",
"familyMembers": "أفراد العائلة",
"participantsAdded": "مشاركون مضافون",
"upcomingBirthdays": "أعياد الميلاد القادمة",
"noBirthdays": "لا توجد أعياد ميلاد بعد",
"daysLeft": "{{count}} أيام",
"budgetOverview": "نظرة عامة على الميزانية",
"monthlyIncome": "الدخل",
"monthlyExpenses": "المصروفات",
"monthlyBalance": "الرصيد",
"savingsRate": "معدل الادخار",
"topExpense": "أكبر مصروف",
"budgetEntries": "القيود",
"noBudgetData": "لا توجد بيانات ميزانية لهذا الشهر.",
"customize": "تخصيص",
"customizeTitle": "تخصيص الأدوات",
"customizeReset": "الافتراضي",
@@ -537,6 +551,7 @@
"tabAccount": "الحساب",
"tabsAriaLabel": "أقسام الإعدادات",
"sectionDesign": "التصميم",
"sectionAppName": "اسم التطبيق",
"sectionShopping": "التسوق",
"shoppingCategoriesLabel": "فئات التسوق",
"shoppingCategoriesHint": "إضافة الفئات أو إعادة تسميتها أو حذفها أو ترتيبها.",
@@ -554,6 +569,16 @@
"sectionCalendarSync": "مزامنة التقويم",
"sectionFamily": "أفراد العائلة",
"cardAppearance": "المظهر",
"appNameTitle": "اسم التطبيق",
"appNameLabel": "اسم التطبيق",
"appNameHint": "يظهر هذا الاسم في الشريط الجانبي وعنوان المتصفح وشاشة تسجيل الدخول.",
"appNamePlaceholder": "Oikos",
"appNameSavedToast": "تم حفظ اسم التطبيق.",
"sectionDate": "التاريخ",
"dateFormatTitle": "تنسيق التاريخ",
"dateFormatLabel": "تنسيق التاريخ المفضل",
"dateFormatHint": "اختر كيف تظهر التواريخ في التطبيق.",
"dateFormatSavedToast": "تم حفظ تنسيق التاريخ.",
"themeSystem": "النظام",
"themeSysLabel": "استخدام إعداد النظام",
"themeLight": "فاتح",
@@ -760,6 +785,34 @@
"placeholder": "بحث…",
"noResults": "لم يتم العثور على نتائج."
},
"birthdays": {
"title": "أعياد الميلاد",
"addButton": "إضافة عيد ميلاد",
"searchPlaceholder": "ابحث عن أعياد الميلاد…",
"upcomingTitle": "أعياد الميلاد القادمة",
"upcomingHint": "الاحتفالات القادمة، وهي متزامنة بالفعل مع التقويم.",
"peopleTitle": "الأشخاص",
"peopleHint": "ابحث وراجع وعدّل جميع أعياد الميلاد المحفوظة.",
"emptyTitle": "لا توجد أعياد ميلاد بعد",
"emptyDescription": "أضف عيد ميلاد ليبقى ظاهرًا في التقويم والتذكيرات.",
"newTitle": "عيد ميلاد جديد",
"editTitle": "تعديل عيد الميلاد",
"nameLabel": "الاسم",
"birthDateLabel": "تاريخ الميلاد",
"photoLabel": "الصورة الشخصية",
"removePhoto": "إزالة الصورة",
"notesLabel": "ملاحظات",
"notesPlaceholder": "أفكار هدايا، الكعكة المفضلة، ملاحظات عائلية…",
"calendarHint": "يتم إضافة كل عيد ميلاد تلقائيًا إلى التقويم ونظام التذكيرات.",
"requiredFields": "الاسم وتاريخ الميلاد مطلوبان.",
"createdToast": "تم حفظ عيد الميلاد.",
"updatedToast": "تم تحديث عيد الميلاد.",
"deletedToast": "تم حذف عيد الميلاد.",
"deleteConfirm": "هل تريد حذف عيد ميلاد \"{{name}}\"؟",
"ageNoteToday": "سيكمل {{age}} عامًا اليوم.",
"ageNoteTomorrow": "سيكمل {{age}} عامًا غدًا.",
"ageNoteDays": "سيكمل {{age}} عامًا بعد {{days}} يومًا."
},
"reminders": {
"sectionTitle": "تذكير",
"enableLabel": "تعيين تذكير",
+54
View File
@@ -38,6 +38,7 @@
"shopping": "Einkauf",
"notes": "Notizen",
"contacts": "Kontakte",
"birthdays": "Geburtstage",
"budget": "Budget",
"settings": "Einstellungen",
"main": "Hauptnavigation",
@@ -88,6 +89,19 @@
"allDay": "Ganztägig",
"shoppingMore": "+{{count}} weitere",
"weather": "Wetter",
"familyMembers": "Familienmitglieder",
"participantsAdded": "Teilnehmer hinzugefügt",
"upcomingBirthdays": "Nächste Geburtstage",
"noBirthdays": "Noch keine Geburtstage",
"daysLeft": "{{count}} Tage",
"budgetOverview": "Budgetübersicht",
"monthlyIncome": "Einnahmen",
"monthlyExpenses": "Ausgaben",
"monthlyBalance": "Saldo",
"savingsRate": "Sparquote",
"topExpense": "Größte Ausgabe",
"budgetEntries": "Einträge",
"noBudgetData": "Keine Budgetdaten in diesem Monat.",
"customize": "Anpassen",
"customizeTitle": "Widgets anpassen",
"customizeReset": "Standard",
@@ -562,6 +576,7 @@
"tabAccount": "Konto",
"tabsAriaLabel": "Einstellungsbereiche",
"sectionDesign": "Design",
"sectionAppName": "Anwendungsname",
"sectionShopping": "Einkauf",
"shoppingCategoriesLabel": "Einkaufskategorien",
"shoppingCategoriesHint": "Kategorien hinzufügen, umbenennen, löschen oder sortieren.",
@@ -579,6 +594,16 @@
"sectionCalendarSync": "Kalender-Synchronisation",
"sectionFamily": "Familienmitglieder",
"cardAppearance": "Darstellung",
"appNameTitle": "App-Name",
"appNameLabel": "Anwendungsname",
"appNameHint": "Dieser Name erscheint in der Seitenleiste, im Browser-Titel und auf dem Login-Bildschirm.",
"appNamePlaceholder": "Oikos",
"appNameSavedToast": "Anwendungsname gespeichert.",
"sectionDate": "Datum",
"dateFormatTitle": "Datumsformat",
"dateFormatLabel": "Bevorzugtes Datumsformat",
"dateFormatHint": "Wähle, wie Daten in der App angezeigt werden.",
"dateFormatSavedToast": "Datumsformat gespeichert.",
"themeSystem": "System",
"themeSysLabel": "System-Einstellung verwenden",
"themeLight": "Hell",
@@ -776,6 +801,35 @@
"pendingBadgeTitle": "{{count}} fällige Erinnerung",
"pendingBadgeTitlePlural": "{{count}} fällige Erinnerungen"
},
"birthdays": {
"title": "Geburtstage",
"addButton": "Geburtstag hinzufügen",
"searchPlaceholder": "Geburtstage suchen…",
"upcomingTitle": "Nächste Geburtstage",
"upcomingHint": "Die nächsten Feiern, bereits mit Kalender und Erinnerungen verknüpft.",
"peopleTitle": "Personen",
"peopleHint": "Alle gespeicherten Geburtstage durchsuchen, prüfen und bearbeiten.",
"emptyTitle": "Noch keine Geburtstage",
"emptyDescription": "Füge einen Geburtstag hinzu, damit er im Kalender und bei Erinnerungen erscheint.",
"newTitle": "Neuer Geburtstag",
"editTitle": "Geburtstag bearbeiten",
"nameLabel": "Name",
"birthDateLabel": "Geburtsdatum",
"photoLabel": "Profilbild",
"photoOptional": "Optional: Du kannst auch ohne Profilbild speichern.",
"removePhoto": "Bild entfernen",
"notesLabel": "Notizen",
"notesPlaceholder": "Geschenkideen, Lieblingskuchen, Familiennotizen…",
"calendarHint": "Jeder Geburtstag wird automatisch zum Kalender und Erinnerungssystem hinzugefügt.",
"requiredFields": "Name und Geburtsdatum sind erforderlich.",
"createdToast": "Geburtstag gespeichert.",
"updatedToast": "Geburtstag aktualisiert.",
"deletedToast": "Geburtstag gelöscht.",
"deleteConfirm": "Geburtstag von \"{{name}}\" löschen?",
"ageNoteToday": "Wird heute {{age}} Jahre alt.",
"ageNoteTomorrow": "Wird morgen {{age}} Jahre alt.",
"ageNoteDays": "Wird in {{days}} Tagen {{age}} Jahre alt."
},
"recipes": {
"title": "Rezepte",
"addRecipe": "Rezept hinzufügen",
+53
View File
@@ -38,6 +38,7 @@
"shopping": "Αγορές",
"notes": "Σημειώσεις",
"contacts": "Επαφές",
"birthdays": "Γενέθλια",
"budget": "Προϋπολογισμός",
"settings": "Ρυθμίσεις",
"main": "Κύρια πλοήγηση",
@@ -82,6 +83,19 @@
"allDay": "Όλη μέρα",
"shoppingMore": "+{{count}} ακόμα",
"weather": "Καιρός",
"familyMembers": "Μέλη οικογένειας",
"participantsAdded": "συμμετέχοντες προστέθηκαν",
"upcomingBirthdays": "Επόμενα γενέθλια",
"noBirthdays": "Δεν υπάρχουν γενέθλια ακόμα",
"daysLeft": "{{count}} ημέρες",
"budgetOverview": "Επισκόπηση προϋπολογισμού",
"monthlyIncome": "Έσοδα",
"monthlyExpenses": "Έξοδα",
"monthlyBalance": "Υπόλοιπο",
"savingsRate": "Ποσοστό αποταμίευσης",
"topExpense": "Μεγαλύτερο έξοδο",
"budgetEntries": "Καταχωρήσεις",
"noBudgetData": "Δεν υπάρχουν δεδομένα προϋπολογισμού αυτόν τον μήνα.",
"customize": "Προσαρμογή",
"customizeTitle": "Προσαρμογή widgets",
"customizeReset": "Επαναφορά",
@@ -537,6 +551,7 @@
"tabAccount": "Λογαριασμός",
"tabsAriaLabel": "Τμήματα ρυθμίσεων",
"sectionDesign": "Εμφάνιση",
"sectionAppName": "Όνομα εφαρμογής",
"sectionShopping": "Αγορές",
"shoppingCategoriesLabel": "Κατηγορίες αγορών",
"shoppingCategoriesHint": "Προσθέστε, μετονομάστε, διαγράψτε ή ταξινομήστε κατηγορίες.",
@@ -554,6 +569,16 @@
"sectionCalendarSync": "Συγχρονισμός ημερολογίου",
"sectionFamily": "Μέλη οικογένειας",
"cardAppearance": "Εμφάνιση",
"appNameTitle": "Όνομα εφαρμογής",
"appNameLabel": "Όνομα εφαρμογής",
"appNameHint": "Αυτό το όνομα εμφανίζεται στην πλαϊνή μπάρα, στον τίτλο του προγράμματος περιήγησης και στην οθόνη σύνδεσης.",
"appNamePlaceholder": "Oikos",
"appNameSavedToast": "Το όνομα εφαρμογής αποθηκεύτηκε.",
"sectionDate": "Ημερομηνία",
"dateFormatTitle": "Μορφή ημερομηνίας",
"dateFormatLabel": "Προτιμώμενη μορφή ημερομηνίας",
"dateFormatHint": "Επιλέξτε πώς εμφανίζονται οι ημερομηνίες στην εφαρμογή.",
"dateFormatSavedToast": "Η μορφή ημερομηνίας αποθηκεύτηκε.",
"themeSystem": "Σύστημα",
"themeSysLabel": "Χρήση ρύθμισης συστήματος",
"themeLight": "Ανοιχτό",
@@ -760,6 +785,34 @@
"placeholder": "Αναζήτηση…",
"noResults": "Δεν βρέθηκαν αποτελέσματα."
},
"birthdays": {
"title": "Γενέθλια",
"addButton": "Προσθήκη γενεθλίων",
"searchPlaceholder": "Αναζήτηση γενεθλίων…",
"upcomingTitle": "Επόμενα γενέθλια",
"upcomingHint": "Οι επόμενοι εορτασμοί, ήδη συγχρονισμένοι με το ημερολόγιο.",
"peopleTitle": "Άτομα",
"peopleHint": "Αναζητήστε, ελέγξτε και επεξεργαστείτε όλα τα αποθηκευμένα γενέθλια.",
"emptyTitle": "Δεν υπάρχουν γενέθλια ακόμη",
"emptyDescription": "Προσθέστε ένα γενέθλιο ώστε να εμφανίζεται στο ημερολόγιο και στις υπενθυμίσεις.",
"newTitle": "Νέα γενέθλια",
"editTitle": "Επεξεργασία γενεθλίων",
"nameLabel": "Όνομα",
"birthDateLabel": "Ημερομηνία γέννησης",
"photoLabel": "Φωτογραφία προφίλ",
"removePhoto": "Αφαίρεση φωτογραφίας",
"notesLabel": "Σημειώσεις",
"notesPlaceholder": "Ιδέες δώρων, αγαπημένη τούρτα, οικογενειακές σημειώσεις…",
"calendarHint": "Κάθε γενέθλιο προστίθεται αυτόματα στο ημερολόγιο και στο σύστημα υπενθυμίσεων.",
"requiredFields": "Το όνομα και η ημερομηνία γέννησης είναι υποχρεωτικά.",
"createdToast": "Τα γενέθλια αποθηκεύτηκαν.",
"updatedToast": "Τα γενέθλια ενημερώθηκαν.",
"deletedToast": "Τα γενέθλια διαγράφηκαν.",
"deleteConfirm": "Διαγραφή γενεθλίων για τον/την \"{{name}}\";",
"ageNoteToday": "Γίνεται {{age}} ετών σήμερα.",
"ageNoteTomorrow": "Γίνεται {{age}} ετών αύριο.",
"ageNoteDays": "Γίνεται {{age}} ετών σε {{days}} ημέρες."
},
"reminders": {
"sectionTitle": "Υπενθύμιση",
"enableLabel": "Ορισμός υπενθύμισης",
+54
View File
@@ -38,6 +38,7 @@
"shopping": "Shopping",
"notes": "Board",
"contacts": "Contacts",
"birthdays": "Birthdays",
"budget": "Budget",
"settings": "Settings",
"main": "Main navigation",
@@ -82,6 +83,19 @@
"allDay": "All day",
"shoppingMore": "+{{count}} more",
"weather": "Weather",
"familyMembers": "Family members",
"participantsAdded": "participants added",
"upcomingBirthdays": "Upcoming birthdays",
"noBirthdays": "No birthdays yet",
"daysLeft": "{{count}} days",
"budgetOverview": "Budget overview",
"monthlyIncome": "Income",
"monthlyExpenses": "Expenses",
"monthlyBalance": "Balance",
"savingsRate": "Savings rate",
"topExpense": "Top expense",
"budgetEntries": "Entries",
"noBudgetData": "No budget data this month.",
"customize": "Customize",
"customizeTitle": "Customize widgets",
"customizeReset": "Reset",
@@ -537,6 +551,7 @@
"tabAccount": "Account",
"tabsAriaLabel": "Settings sections",
"sectionDesign": "Appearance",
"sectionAppName": "Application name",
"sectionShopping": "Shopping",
"shoppingCategoriesLabel": "Shopping Categories",
"shoppingCategoriesHint": "Add, rename, delete or reorder categories.",
@@ -554,6 +569,16 @@
"sectionCalendarSync": "Calendar Sync",
"sectionFamily": "Family Members",
"cardAppearance": "Display",
"appNameTitle": "App name",
"appNameLabel": "Application name",
"appNameHint": "This name appears in the sidebar, browser title and login screen.",
"appNamePlaceholder": "Oikos",
"appNameSavedToast": "Application name saved.",
"sectionDate": "Date",
"dateFormatTitle": "Date format",
"dateFormatLabel": "Preferred date format",
"dateFormatHint": "Choose how dates are displayed throughout the app.",
"dateFormatSavedToast": "Date format saved.",
"themeSystem": "System",
"themeSysLabel": "Use system setting",
"themeLight": "Light",
@@ -751,6 +776,35 @@
"pendingBadgeTitle": "{{count}} reminder due",
"pendingBadgeTitlePlural": "{{count}} reminders due"
},
"birthdays": {
"title": "Birthdays",
"addButton": "Add birthday",
"searchPlaceholder": "Search birthdays…",
"upcomingTitle": "Next birthdays",
"upcomingHint": "The next people to celebrate, already synced to the calendar.",
"peopleTitle": "People",
"peopleHint": "Search, review and edit every saved birthday.",
"emptyTitle": "No birthdays yet",
"emptyDescription": "Add a birthday to keep it visible in the calendar and reminders.",
"newTitle": "New birthday",
"editTitle": "Edit birthday",
"nameLabel": "Name",
"birthDateLabel": "Birth date",
"photoLabel": "Profile picture",
"photoOptional": "Optional: you can save without a profile picture.",
"removePhoto": "Remove picture",
"notesLabel": "Notes",
"notesPlaceholder": "Gift ideas, favorite cake, family notes…",
"calendarHint": "Each birthday is automatically added to the calendar and reminder system.",
"requiredFields": "Name and birth date are required.",
"createdToast": "Birthday saved.",
"updatedToast": "Birthday updated.",
"deletedToast": "Birthday deleted.",
"deleteConfirm": "Delete birthday for \"{{name}}\"?",
"ageNoteToday": "Turns {{age}} today.",
"ageNoteTomorrow": "Turns {{age}} tomorrow.",
"ageNoteDays": "Turns {{age}} in {{days}} days."
},
"recipes": {
"title": "Recipes",
"addRecipe": "Add recipe",
+53
View File
@@ -38,6 +38,7 @@
"shopping": "Compras",
"notes": "Notas",
"contacts": "Contactos",
"birthdays": "Cumpleaños",
"budget": "Presupuesto",
"settings": "Ajustes",
"main": "Navegación principal",
@@ -82,6 +83,19 @@
"allDay": "Todo el día",
"shoppingMore": "+{{count}} más",
"weather": "Clima",
"familyMembers": "Miembros de la familia",
"participantsAdded": "participantes añadidos",
"upcomingBirthdays": "Próximos cumpleaños",
"noBirthdays": "Aún no hay cumpleaños",
"daysLeft": "{{count}} días",
"budgetOverview": "Resumen del presupuesto",
"monthlyIncome": "Ingresos",
"monthlyExpenses": "Gastos",
"monthlyBalance": "Saldo",
"savingsRate": "Tasa de ahorro",
"topExpense": "Mayor gasto",
"budgetEntries": "Movimientos",
"noBudgetData": "No hay datos de presupuesto este mes.",
"customize": "Personalizar",
"customizeTitle": "Personalizar widgets",
"customizeReset": "Restablecer",
@@ -537,6 +551,7 @@
"tabAccount": "Cuenta",
"tabsAriaLabel": "Secciones de configuración",
"sectionDesign": "Diseño",
"sectionAppName": "Nombre de la aplicación",
"sectionShopping": "Compras",
"shoppingCategoriesLabel": "Categorías de compra",
"shoppingCategoriesHint": "Añade, renombra, elimina u ordena las categorías.",
@@ -554,6 +569,16 @@
"sectionCalendarSync": "Sincronización de calendario",
"sectionFamily": "Miembros de la familia",
"cardAppearance": "Apariencia",
"appNameTitle": "Nombre de la app",
"appNameLabel": "Nombre de la aplicación",
"appNameHint": "Este nombre aparece en la barra lateral, el título del navegador y la pantalla de inicio de sesión.",
"appNamePlaceholder": "Oikos",
"appNameSavedToast": "Nombre de la aplicación guardado.",
"sectionDate": "Fecha",
"dateFormatTitle": "Formato de fecha",
"dateFormatLabel": "Formato de fecha preferido",
"dateFormatHint": "Elige cómo se muestran las fechas en toda la app.",
"dateFormatSavedToast": "Formato de fecha guardado.",
"themeSystem": "Sistema",
"themeSysLabel": "Usar configuración del sistema",
"themeLight": "Claro",
@@ -760,6 +785,34 @@
"placeholder": "Buscar…",
"noResults": "No se encontraron resultados."
},
"birthdays": {
"title": "Cumpleaños",
"addButton": "Añadir cumpleaños",
"searchPlaceholder": "Buscar cumpleaños…",
"upcomingTitle": "Próximos cumpleaños",
"upcomingHint": "Las próximas celebraciones, ya sincronizadas con el calendario.",
"peopleTitle": "Personas",
"peopleHint": "Busca, revisa y edita todos los cumpleaños guardados.",
"emptyTitle": "Todavía no hay cumpleaños",
"emptyDescription": "Añade un cumpleaños para mantenerlo visible en el calendario y en los recordatorios.",
"newTitle": "Nuevo cumpleaños",
"editTitle": "Editar cumpleaños",
"nameLabel": "Nombre",
"birthDateLabel": "Fecha de nacimiento",
"photoLabel": "Foto de perfil",
"removePhoto": "Eliminar foto",
"notesLabel": "Notas",
"notesPlaceholder": "Ideas de regalo, tarta favorita, notas familiares…",
"calendarHint": "Cada cumpleaños se añade automáticamente al calendario y al sistema de recordatorios.",
"requiredFields": "El nombre y la fecha de nacimiento son obligatorios.",
"createdToast": "Cumpleaños guardado.",
"updatedToast": "Cumpleaños actualizado.",
"deletedToast": "Cumpleaños eliminado.",
"deleteConfirm": "¿Eliminar el cumpleaños de \"{{name}}\"?",
"ageNoteToday": "Cumple {{age}} años hoy.",
"ageNoteTomorrow": "Cumple {{age}} años mañana.",
"ageNoteDays": "Cumplirá {{age}} años en {{days}} días."
},
"reminders": {
"sectionTitle": "Recordatorio",
"enableLabel": "Establecer recordatorio",
+53
View File
@@ -38,6 +38,7 @@
"shopping": "Courses",
"notes": "Notes",
"contacts": "Contacts",
"birthdays": "Anniversaires",
"budget": "Budget",
"settings": "Paramètres",
"main": "Navigation principale",
@@ -82,6 +83,19 @@
"allDay": "Toute la journée",
"shoppingMore": "+{{count}} de plus",
"weather": "Météo",
"familyMembers": "Membres de la famille",
"participantsAdded": "participants ajoutés",
"upcomingBirthdays": "Prochains anniversaires",
"noBirthdays": "Aucun anniversaire pour l'instant",
"daysLeft": "{{count}} jours",
"budgetOverview": "Aperçu du budget",
"monthlyIncome": "Revenus",
"monthlyExpenses": "Dépenses",
"monthlyBalance": "Solde",
"savingsRate": "Taux d'épargne",
"topExpense": "Plus grosse dépense",
"budgetEntries": "Écritures",
"noBudgetData": "Aucune donnée de budget ce mois-ci.",
"customize": "Personnaliser",
"customizeTitle": "Personnaliser les widgets",
"customizeReset": "Réinitialiser",
@@ -537,6 +551,7 @@
"tabAccount": "Compte",
"tabsAriaLabel": "Sections des paramètres",
"sectionDesign": "Apparence",
"sectionAppName": "Nom de l'application",
"sectionShopping": "Courses",
"shoppingCategoriesLabel": "Catégories de courses",
"shoppingCategoriesHint": "Ajoutez, renommez, supprimez ou réorganisez les catégories.",
@@ -554,6 +569,16 @@
"sectionCalendarSync": "Synchronisation du calendrier",
"sectionFamily": "Membres de la famille",
"cardAppearance": "Affichage",
"appNameTitle": "Nom de l'application",
"appNameLabel": "Nom de l'application",
"appNameHint": "Ce nom apparaît dans la barre latérale, le titre du navigateur et l'écran de connexion.",
"appNamePlaceholder": "Oikos",
"appNameSavedToast": "Nom de l'application enregistré.",
"sectionDate": "Date",
"dateFormatTitle": "Format de date",
"dateFormatLabel": "Format de date préféré",
"dateFormatHint": "Choisissez comment les dates sont affichées dans l'application.",
"dateFormatSavedToast": "Format de date enregistré.",
"themeSystem": "Système",
"themeSysLabel": "Utiliser le paramètre système",
"themeLight": "Clair",
@@ -760,6 +785,34 @@
"placeholder": "Rechercher…",
"noResults": "Aucun résultat trouvé."
},
"birthdays": {
"title": "Anniversaires",
"addButton": "Ajouter un anniversaire",
"searchPlaceholder": "Rechercher des anniversaires…",
"upcomingTitle": "Prochains anniversaires",
"upcomingHint": "Les prochaines célébrations, déjà synchronisées avec le calendrier.",
"peopleTitle": "Personnes",
"peopleHint": "Recherchez, vérifiez et modifiez tous les anniversaires enregistrés.",
"emptyTitle": "Aucun anniversaire pour le moment",
"emptyDescription": "Ajoutez un anniversaire pour le garder visible dans le calendrier et les rappels.",
"newTitle": "Nouvel anniversaire",
"editTitle": "Modifier l'anniversaire",
"nameLabel": "Nom",
"birthDateLabel": "Date de naissance",
"photoLabel": "Photo de profil",
"removePhoto": "Supprimer la photo",
"notesLabel": "Notes",
"notesPlaceholder": "Idées de cadeaux, gâteau préféré, notes familiales…",
"calendarHint": "Chaque anniversaire est automatiquement ajouté au calendrier et au système de rappels.",
"requiredFields": "Le nom et la date de naissance sont obligatoires.",
"createdToast": "Anniversaire enregistré.",
"updatedToast": "Anniversaire mis à jour.",
"deletedToast": "Anniversaire supprimé.",
"deleteConfirm": "Supprimer l'anniversaire de \"{{name}}\" ?",
"ageNoteToday": "Fête ses {{age}} ans aujourd'hui.",
"ageNoteTomorrow": "Fêtera ses {{age}} ans demain.",
"ageNoteDays": "Fêtera ses {{age}} ans dans {{days}} jours."
},
"reminders": {
"sectionTitle": "Rappel",
"enableLabel": "Définir un rappel",
+53
View File
@@ -38,6 +38,7 @@
"shopping": "खरीदारी",
"notes": "नोट्स",
"contacts": "संपर्क",
"birthdays": "जन्मदिन",
"budget": "बजट",
"settings": "सेटिंग्स",
"main": "मुख्य नेविगेशन",
@@ -82,6 +83,19 @@
"allDay": "पूरे दिन",
"shoppingMore": "+{{count}} और",
"weather": "मौसम",
"familyMembers": "परिवार के सदस्य",
"participantsAdded": "प्रतिभागी जोड़े गए",
"upcomingBirthdays": "आने वाले जन्मदिन",
"noBirthdays": "अभी कोई जन्मदिन नहीं",
"daysLeft": "{{count}} दिन",
"budgetOverview": "बजट अवलोकन",
"monthlyIncome": "आय",
"monthlyExpenses": "खर्च",
"monthlyBalance": "शेष",
"savingsRate": "बचत दर",
"topExpense": "सबसे बड़ा खर्च",
"budgetEntries": "प्रविष्टियां",
"noBudgetData": "इस महीने बजट डेटा नहीं है।",
"customize": "अनुकूलित करें",
"customizeTitle": "विजेट अनुकूलित करें",
"customizeReset": "डिफ़ॉल्ट",
@@ -537,6 +551,7 @@
"tabAccount": "खाता",
"tabsAriaLabel": "सेटिंग्स अनुभाग",
"sectionDesign": "डिज़ाइन",
"sectionAppName": "ऐप का नाम",
"sectionShopping": "खरीदारी",
"shoppingCategoriesLabel": "खरीदारी श्रेणियां",
"shoppingCategoriesHint": "श्रेणियां जोड़ें, नाम बदलें, हटाएं या क्रम बदलें।",
@@ -554,6 +569,16 @@
"sectionCalendarSync": "कैलेंडर सिंक",
"sectionFamily": "परिवार के सदस्य",
"cardAppearance": "दिखावट",
"appNameTitle": "ऐप का नाम",
"appNameLabel": "ऐप का नाम",
"appNameHint": "यह नाम साइडबार, ब्राउज़र शीर्षक और लॉगिन स्क्रीन में दिखाई देगा।",
"appNamePlaceholder": "Oikos",
"appNameSavedToast": "ऐप का नाम सहेजा गया।",
"sectionDate": "तारीख",
"dateFormatTitle": "तारीख प्रारूप",
"dateFormatLabel": "पसंदीदा तारीख प्रारूप",
"dateFormatHint": "चुनें कि ऐप में तारीखें कैसे दिखाई दें।",
"dateFormatSavedToast": "तारीख प्रारूप सहेजा गया।",
"themeSystem": "सिस्टम",
"themeSysLabel": "सिस्टम सेटिंग का उपयोग करें",
"themeLight": "हल्का",
@@ -760,6 +785,34 @@
"placeholder": "खोजें…",
"noResults": "कोई परिणाम नहीं मिला।"
},
"birthdays": {
"title": "जन्मदिन",
"addButton": "जन्मदिन जोड़ें",
"searchPlaceholder": "जन्मदिन खोजें…",
"upcomingTitle": "आने वाले जन्मदिन",
"upcomingHint": "आने वाले समारोह, जो पहले से कैलेंडर से सिंक हैं।",
"peopleTitle": "लोग",
"peopleHint": "सहेजे गए सभी जन्मदिन खोजें, देखें और संपादित करें।",
"emptyTitle": "अभी तक कोई जन्मदिन नहीं",
"emptyDescription": "जन्मदिन जोड़ें ताकि वह कैलेंडर और रिमाइंडर में दिखाई दे।",
"newTitle": "नया जन्मदिन",
"editTitle": "जन्मदिन संपादित करें",
"nameLabel": "नाम",
"birthDateLabel": "जन्म तिथि",
"photoLabel": "प्रोफ़ाइल तस्वीर",
"removePhoto": "तस्वीर हटाएँ",
"notesLabel": "नोट्स",
"notesPlaceholder": "उपहार के विचार, पसंदीदा केक, परिवार के नोट्स…",
"calendarHint": "हर जन्मदिन अपने आप कैलेंडर और रिमाइंडर सिस्टम में जोड़ दिया जाता है।",
"requiredFields": "नाम और जन्म तिथि आवश्यक हैं।",
"createdToast": "जन्मदिन सहेज लिया गया।",
"updatedToast": "जन्मदिन अपडेट किया गया।",
"deletedToast": "जन्मदिन हटाया गया।",
"deleteConfirm": "\"{{name}}\" का जन्मदिन हटाएँ?",
"ageNoteToday": "आज {{age}} वर्ष का/की होगा/होगी।",
"ageNoteTomorrow": "कल {{age}} वर्ष का/की होगा/होगी।",
"ageNoteDays": "{{days}} दिनों में {{age}} वर्ष का/की होगा/होगी।"
},
"reminders": {
"sectionTitle": "अनुस्मारक",
"enableLabel": "अनुस्मारक सेट करें",
+53
View File
@@ -38,6 +38,7 @@
"shopping": "Spesa",
"notes": "Bacheca",
"contacts": "Contatti",
"birthdays": "Compleanni",
"budget": "Bilancio",
"settings": "Impostazioni",
"main": "Navigazione principale",
@@ -82,6 +83,19 @@
"allDay": "Tutto il giorno",
"shoppingMore": "+{{count}} altri",
"weather": "Meteo",
"familyMembers": "Membri della famiglia",
"participantsAdded": "partecipanti aggiunti",
"upcomingBirthdays": "Prossimi compleanni",
"noBirthdays": "Ancora nessun compleanno",
"daysLeft": "{{count}} giorni",
"budgetOverview": "Panoramica budget",
"monthlyIncome": "Entrate",
"monthlyExpenses": "Uscite",
"monthlyBalance": "Saldo",
"savingsRate": "Tasso di risparmio",
"topExpense": "Spesa principale",
"budgetEntries": "Movimenti",
"noBudgetData": "Nessun dato di budget questo mese.",
"customize": "Personalizza",
"customizeTitle": "Personalizza widget",
"customizeReset": "Ripristina",
@@ -537,6 +551,7 @@
"tabAccount": "Account",
"tabsAriaLabel": "Sezioni impostazioni",
"sectionDesign": "Aspetto",
"sectionAppName": "Nome dell'applicazione",
"sectionShopping": "Spesa",
"shoppingCategoriesLabel": "Categorie spesa",
"shoppingCategoriesHint": "Aggiungi, rinomina, elimina o riordina le categorie.",
@@ -554,6 +569,16 @@
"sectionCalendarSync": "Sincronizzazione calendario",
"sectionFamily": "Membri della famiglia",
"cardAppearance": "Visualizzazione",
"appNameTitle": "Nome dell'app",
"appNameLabel": "Nome dell'applicazione",
"appNameHint": "Questo nome appare nella barra laterale, nel titolo del browser e nella schermata di accesso.",
"appNamePlaceholder": "Oikos",
"appNameSavedToast": "Nome dell'applicazione salvato.",
"sectionDate": "Data",
"dateFormatTitle": "Formato data",
"dateFormatLabel": "Formato data preferito",
"dateFormatHint": "Scegli come vengono mostrate le date nell'app.",
"dateFormatSavedToast": "Formato data salvato.",
"themeSystem": "Sistema",
"themeSysLabel": "Usa impostazione di sistema",
"themeLight": "Chiaro",
@@ -760,6 +785,34 @@
"placeholder": "Cerca…",
"noResults": "Nessun risultato trovato."
},
"birthdays": {
"title": "Compleanni",
"addButton": "Aggiungi compleanno",
"searchPlaceholder": "Cerca compleanni…",
"upcomingTitle": "Prossimi compleanni",
"upcomingHint": "Le prossime ricorrenze, già sincronizzate con il calendario.",
"peopleTitle": "Persone",
"peopleHint": "Cerca, controlla e modifica tutti i compleanni salvati.",
"emptyTitle": "Nessun compleanno ancora",
"emptyDescription": "Aggiungi un compleanno per mantenerlo visibile nel calendario e nei promemoria.",
"newTitle": "Nuovo compleanno",
"editTitle": "Modifica compleanno",
"nameLabel": "Nome",
"birthDateLabel": "Data di nascita",
"photoLabel": "Foto profilo",
"removePhoto": "Rimuovi foto",
"notesLabel": "Note",
"notesPlaceholder": "Idee regalo, torta preferita, note di famiglia…",
"calendarHint": "Ogni compleanno viene aggiunto automaticamente al calendario e al sistema di promemoria.",
"requiredFields": "Nome e data di nascita sono obbligatori.",
"createdToast": "Compleanno salvato.",
"updatedToast": "Compleanno aggiornato.",
"deletedToast": "Compleanno eliminato.",
"deleteConfirm": "Eliminare il compleanno di \"{{name}}\"?",
"ageNoteToday": "Compie {{age}} anni oggi.",
"ageNoteTomorrow": "Compirà {{age}} anni domani.",
"ageNoteDays": "Compirà {{age}} anni tra {{days}} giorni."
},
"reminders": {
"sectionTitle": "Promemoria",
"enableLabel": "Imposta promemoria",
+53
View File
@@ -38,6 +38,7 @@
"shopping": "買い物",
"notes": "メモ",
"contacts": "連絡先",
"birthdays": "誕生日",
"budget": "家計",
"settings": "設定",
"main": "メインナビゲーション",
@@ -82,6 +83,19 @@
"allDay": "終日",
"shoppingMore": "+{{count}} 件",
"weather": "天気",
"familyMembers": "家族メンバー",
"participantsAdded": "人が追加済み",
"upcomingBirthdays": "今後の誕生日",
"noBirthdays": "誕生日はまだありません",
"daysLeft": "{{count}}日",
"budgetOverview": "予算の概要",
"monthlyIncome": "収入",
"monthlyExpenses": "支出",
"monthlyBalance": "残高",
"savingsRate": "貯蓄率",
"topExpense": "最大の支出",
"budgetEntries": "記録",
"noBudgetData": "今月の予算データはありません。",
"customize": "カスタマイズ",
"customizeTitle": "ウィジェットのカスタマイズ",
"customizeReset": "デフォルト",
@@ -537,6 +551,7 @@
"tabAccount": "アカウント",
"tabsAriaLabel": "設定カテゴリー",
"sectionDesign": "デザイン",
"sectionAppName": "アプリ名",
"sectionShopping": "買い物",
"shoppingCategoriesLabel": "買い物カテゴリー",
"shoppingCategoriesHint": "カテゴリーの追加、名前変更、削除、並び替えができます。",
@@ -554,6 +569,16 @@
"sectionCalendarSync": "カレンダー同期",
"sectionFamily": "家族メンバー",
"cardAppearance": "外観",
"appNameTitle": "アプリ名",
"appNameLabel": "アプリ名",
"appNameHint": "この名前はサイドバー、ブラウザのタイトル、ログイン画面に表示されます。",
"appNamePlaceholder": "Oikos",
"appNameSavedToast": "アプリ名を保存しました。",
"sectionDate": "日付",
"dateFormatTitle": "日付形式",
"dateFormatLabel": "希望する日付形式",
"dateFormatHint": "アプリ内で日付をどう表示するかを選択します。",
"dateFormatSavedToast": "日付形式を保存しました。",
"themeSystem": "システム設定",
"themeSysLabel": "システム設定を使用",
"themeLight": "ライト",
@@ -760,6 +785,34 @@
"placeholder": "検索…",
"noResults": "結果が見つかりませんでした。"
},
"birthdays": {
"title": "誕生日",
"addButton": "誕生日を追加",
"searchPlaceholder": "誕生日を検索…",
"upcomingTitle": "次の誕生日",
"upcomingHint": "次に祝う誕生日。すでにカレンダーに同期されています。",
"peopleTitle": "人物",
"peopleHint": "保存されたすべての誕生日を検索、確認、編集できます。",
"emptyTitle": "まだ誕生日はありません",
"emptyDescription": "誕生日を追加すると、カレンダーとリマインダーに表示されます。",
"newTitle": "新しい誕生日",
"editTitle": "誕生日を編集",
"nameLabel": "名前",
"birthDateLabel": "生年月日",
"photoLabel": "プロフィール画像",
"removePhoto": "画像を削除",
"notesLabel": "メモ",
"notesPlaceholder": "プレゼント案、好きなケーキ、家族メモ…",
"calendarHint": "各誕生日は自動的にカレンダーとリマインダーシステムに追加されます。",
"requiredFields": "名前と生年月日は必須です。",
"createdToast": "誕生日を保存しました。",
"updatedToast": "誕生日を更新しました。",
"deletedToast": "誕生日を削除しました。",
"deleteConfirm": "「{{name}}」の誕生日を削除しますか?",
"ageNoteToday": "今日で{{age}}歳になります。",
"ageNoteTomorrow": "明日で{{age}}歳になります。",
"ageNoteDays": "{{days}}日後に{{age}}歳になります。"
},
"reminders": {
"sectionTitle": "リマインダー",
"enableLabel": "リマインダーを設定",
+54
View File
@@ -38,6 +38,7 @@
"shopping": "Compras",
"notes": "Notas",
"contacts": "Contatos",
"birthdays": "Aniversários",
"budget": "Orçamento",
"settings": "Configurações",
"main": "Navegação principal",
@@ -82,6 +83,19 @@
"allDay": "Dia inteiro",
"shoppingMore": "+{{count}} mais",
"weather": "Clima",
"familyMembers": "Membros da família",
"participantsAdded": "participantes adicionados",
"upcomingBirthdays": "Próximos aniversários",
"noBirthdays": "Nenhum aniversário ainda",
"daysLeft": "{{count}} dias",
"budgetOverview": "Visão do orçamento",
"monthlyIncome": "Receitas",
"monthlyExpenses": "Despesas",
"monthlyBalance": "Saldo",
"savingsRate": "Taxa de poupança",
"topExpense": "Maior despesa",
"budgetEntries": "Lançamentos",
"noBudgetData": "Sem dados de orçamento neste mês.",
"customize": "Personalizar",
"customizeTitle": "Personalizar widgets",
"customizeReset": "Padrão",
@@ -537,6 +551,7 @@
"tabAccount": "Conta",
"tabsAriaLabel": "Seções de configurações",
"sectionDesign": "Design",
"sectionAppName": "Nome da aplicação",
"sectionShopping": "Compras",
"shoppingCategoriesLabel": "Categorias de compras",
"shoppingCategoriesHint": "Adicione, renomeie, exclua ou ordene categorias.",
@@ -554,6 +569,16 @@
"sectionCalendarSync": "Sincronização de calendário",
"sectionFamily": "Membros da família",
"cardAppearance": "Aparência",
"appNameTitle": "Nome do app",
"appNameLabel": "Nome da aplicação",
"appNameHint": "Este nome aparece na barra lateral, no título do navegador e no ecrã de login.",
"appNamePlaceholder": "Oikos",
"appNameSavedToast": "Nome da aplicação guardado.",
"sectionDate": "Data",
"dateFormatTitle": "Formato da data",
"dateFormatLabel": "Formato preferido da data",
"dateFormatHint": "Escolha como as datas aparecem em toda a aplicação.",
"dateFormatSavedToast": "Formato da data salvo.",
"themeSystem": "Sistema",
"themeSysLabel": "Usar configuração do sistema",
"themeLight": "Claro",
@@ -760,6 +785,35 @@
"placeholder": "Pesquisar…",
"noResults": "Nenhum resultado encontrado."
},
"birthdays": {
"title": "Aniversários",
"addButton": "Adicionar aniversário",
"searchPlaceholder": "Buscar aniversários…",
"upcomingTitle": "Próximos aniversários",
"upcomingHint": "As próximas comemorações, já sincronizadas com o calendário.",
"peopleTitle": "Pessoas",
"peopleHint": "Pesquise, revise e edite todos os aniversários salvos.",
"emptyTitle": "Nenhum aniversário ainda",
"emptyDescription": "Adicione um aniversário para mantê-lo visível no calendário e nos lembretes.",
"newTitle": "Novo aniversário",
"editTitle": "Editar aniversário",
"nameLabel": "Nome",
"birthDateLabel": "Data de nascimento",
"photoLabel": "Foto de perfil",
"photoOptional": "Opcional: você também pode salvar sem foto de perfil.",
"removePhoto": "Remover foto",
"notesLabel": "Notas",
"notesPlaceholder": "Ideias de presente, bolo favorito, notas da família…",
"calendarHint": "Cada aniversário é adicionado automaticamente ao calendário e ao sistema de lembretes.",
"requiredFields": "Nome e data de nascimento são obrigatórios.",
"createdToast": "Aniversário salvo.",
"updatedToast": "Aniversário atualizado.",
"deletedToast": "Aniversário excluído.",
"deleteConfirm": "Excluir o aniversário de \"{{name}}\"?",
"ageNoteToday": "Completa {{age}} anos hoje.",
"ageNoteTomorrow": "Completa {{age}} anos amanhã.",
"ageNoteDays": "Completa {{age}} anos em {{days}} dias."
},
"reminders": {
"sectionTitle": "Lembrete",
"enableLabel": "Definir lembrete",
+53
View File
@@ -38,6 +38,7 @@
"shopping": "Покупки",
"notes": "Заметки",
"contacts": "Контакты",
"birthdays": "Дни рождения",
"budget": "Бюджет",
"settings": "Настройки",
"main": "Главная навигация",
@@ -82,6 +83,19 @@
"allDay": "Весь день",
"shoppingMore": "+{{count}} ещё",
"weather": "Погода",
"familyMembers": "Члены семьи",
"participantsAdded": "участников добавлено",
"upcomingBirthdays": "Ближайшие дни рождения",
"noBirthdays": "Дней рождения пока нет",
"daysLeft": "{{count}} дн.",
"budgetOverview": "Обзор бюджета",
"monthlyIncome": "Доходы",
"monthlyExpenses": "Расходы",
"monthlyBalance": "Баланс",
"savingsRate": "Норма сбережений",
"topExpense": "Крупнейший расход",
"budgetEntries": "Записи",
"noBudgetData": "Нет данных бюджета за этот месяц.",
"customize": "Настроить",
"customizeTitle": "Настроить виджеты",
"customizeReset": "Сбросить",
@@ -537,6 +551,7 @@
"tabAccount": "Аккаунт",
"tabsAriaLabel": "Разделы настроек",
"sectionDesign": "Внешний вид",
"sectionAppName": "Название приложения",
"sectionShopping": "Покупки",
"shoppingCategoriesLabel": "Категории покупок",
"shoppingCategoriesHint": "Добавляйте, переименовывайте, удаляйте или сортируйте категории.",
@@ -554,6 +569,16 @@
"sectionCalendarSync": "Синхронизация календаря",
"sectionFamily": "Члены семьи",
"cardAppearance": "Отображение",
"appNameTitle": "Название приложения",
"appNameLabel": "Название приложения",
"appNameHint": "Это название отображается в боковом меню, заголовке браузера и на экране входа.",
"appNamePlaceholder": "Oikos",
"appNameSavedToast": "Название приложения сохранено.",
"sectionDate": "Дата",
"dateFormatTitle": "Формат даты",
"dateFormatLabel": "Предпочитаемый формат даты",
"dateFormatHint": "Выберите, как даты отображаются в приложении.",
"dateFormatSavedToast": "Формат даты сохранён.",
"themeSystem": "Система",
"themeSysLabel": "Использовать системную настройку",
"themeLight": "Светлая",
@@ -760,6 +785,34 @@
"placeholder": "Поиск…",
"noResults": "Результаты не найдены."
},
"birthdays": {
"title": "Дни рождения",
"addButton": "Добавить день рождения",
"searchPlaceholder": "Поиск дней рождения…",
"upcomingTitle": "Ближайшие дни рождения",
"upcomingHint": "Ближайшие праздники, уже синхронизированные с календарём.",
"peopleTitle": "Люди",
"peopleHint": "Ищите, просматривайте и редактируйте все сохранённые дни рождения.",
"emptyTitle": "Дней рождения пока нет",
"emptyDescription": "Добавьте день рождения, чтобы он отображался в календаре и напоминаниях.",
"newTitle": "Новый день рождения",
"editTitle": "Редактировать день рождения",
"nameLabel": "Имя",
"birthDateLabel": "Дата рождения",
"photoLabel": "Фото профиля",
"removePhoto": "Удалить фото",
"notesLabel": "Заметки",
"notesPlaceholder": "Идеи подарков, любимый торт, семейные заметки…",
"calendarHint": "Каждый день рождения автоматически добавляется в календарь и систему напоминаний.",
"requiredFields": "Имя и дата рождения обязательны.",
"createdToast": "День рождения сохранён.",
"updatedToast": "День рождения обновлён.",
"deletedToast": "День рождения удалён.",
"deleteConfirm": "Удалить день рождения \"{{name}}\"?",
"ageNoteToday": "Исполняется {{age}} сегодня.",
"ageNoteTomorrow": "Исполнится {{age}} завтра.",
"ageNoteDays": "Исполнится {{age}} через {{days}} дн."
},
"reminders": {
"sectionTitle": "Напоминание",
"enableLabel": "Установить напоминание",
+53
View File
@@ -38,6 +38,7 @@
"shopping": "Shopping",
"notes": "Anteckningar",
"contacts": "Kontakter",
"birthdays": "Födelsedagar",
"budget": "Budget",
"settings": "Inställningar",
"main": "Huvudnavigering",
@@ -82,6 +83,19 @@
"allDay": "Hela dagen",
"shoppingMore": "+{{count}} till",
"weather": "Väder",
"familyMembers": "Familjemedlemmar",
"participantsAdded": "deltagare tillagda",
"upcomingBirthdays": "Kommande födelsedagar",
"noBirthdays": "Inga födelsedagar ännu",
"daysLeft": "{{count}} dagar",
"budgetOverview": "Budgetöversikt",
"monthlyIncome": "Inkomster",
"monthlyExpenses": "Utgifter",
"monthlyBalance": "Saldo",
"savingsRate": "Sparandegrad",
"topExpense": "Största utgift",
"budgetEntries": "Poster",
"noBudgetData": "Ingen budgetdata denna månad.",
"customize": "Anpassa",
"customizeTitle": "Anpassa widgets",
"customizeReset": "Återställ",
@@ -537,6 +551,7 @@
"tabAccount": "Konto",
"tabsAriaLabel": "Inställningsavsnitt",
"sectionDesign": "Utseende",
"sectionAppName": "Appnamn",
"sectionShopping": "Inköp",
"shoppingCategoriesLabel": "Inköpskategorier",
"shoppingCategoriesHint": "Lägg till, byt namn, ta bort eller sortera om kategorier.",
@@ -554,6 +569,16 @@
"sectionCalendarSync": "Kalendersynkronisering",
"sectionFamily": "Familjemedlemmar",
"cardAppearance": "Visa",
"appNameTitle": "Appnamn",
"appNameLabel": "Appnamn",
"appNameHint": "Det här namnet visas i sidomenyn, webbläsarens titel och inloggningsskärmen.",
"appNamePlaceholder": "Oikos",
"appNameSavedToast": "Appnamn sparat.",
"sectionDate": "Datum",
"dateFormatTitle": "Datumformat",
"dateFormatLabel": "Önskat datumformat",
"dateFormatHint": "Välj hur datum visas i appen.",
"dateFormatSavedToast": "Datumformat sparat.",
"themeSystem": "System",
"themeSysLabel": "Använd systeminställning",
"themeLight": "Ljus",
@@ -760,6 +785,34 @@
"placeholder": "Sök…",
"noResults": "Inga resultat hittades."
},
"birthdays": {
"title": "Födelsedagar",
"addButton": "Lägg till födelsedag",
"searchPlaceholder": "Sök födelsedagar…",
"upcomingTitle": "Kommande födelsedagar",
"upcomingHint": "Nästa firanden, redan synkade med kalendern.",
"peopleTitle": "Personer",
"peopleHint": "Sök, granska och redigera alla sparade födelsedagar.",
"emptyTitle": "Inga födelsedagar ännu",
"emptyDescription": "Lägg till en födelsedag så att den syns i kalendern och påminnelserna.",
"newTitle": "Ny födelsedag",
"editTitle": "Redigera födelsedag",
"nameLabel": "Namn",
"birthDateLabel": "Födelsedatum",
"photoLabel": "Profilbild",
"removePhoto": "Ta bort bild",
"notesLabel": "Anteckningar",
"notesPlaceholder": "Presentidéer, favoritårta, familjeanteckningar…",
"calendarHint": "Varje födelsedag läggs automatiskt till i kalendern och påminnelsesystemet.",
"requiredFields": "Namn och födelsedatum krävs.",
"createdToast": "Födelsedag sparad.",
"updatedToast": "Födelsedag uppdaterad.",
"deletedToast": "Födelsedag borttagen.",
"deleteConfirm": "Ta bort födelsedagen för \"{{name}}\"?",
"ageNoteToday": "Fyller {{age}} år idag.",
"ageNoteTomorrow": "Fyller {{age}} år i morgon.",
"ageNoteDays": "Fyller {{age}} år om {{days}} dagar."
},
"reminders": {
"sectionTitle": "Påminnelse",
"enableLabel": "Ange påminnelse",
+53
View File
@@ -38,6 +38,7 @@
"shopping": "Alışveriş",
"notes": "Notlar",
"contacts": "Kişiler",
"birthdays": "Doğum Günleri",
"budget": "Bütçe",
"settings": "Ayarlar",
"main": "Ana gezinme",
@@ -82,6 +83,19 @@
"allDay": "Tüm gün",
"shoppingMore": "+{{count}} daha",
"weather": "Hava",
"familyMembers": "Aile üyeleri",
"participantsAdded": "katılımcı eklendi",
"upcomingBirthdays": "Yaklaşan doğum günleri",
"noBirthdays": "Henüz doğum günü yok",
"daysLeft": "{{count}} gün",
"budgetOverview": "Bütçe özeti",
"monthlyIncome": "Gelir",
"monthlyExpenses": "Giderler",
"monthlyBalance": "Bakiye",
"savingsRate": "Tasarruf oranı",
"topExpense": "En büyük gider",
"budgetEntries": "Kayıtlar",
"noBudgetData": "Bu ay bütçe verisi yok.",
"customize": "Özelleştir",
"customizeTitle": "Widget'ları özelleştir",
"customizeReset": "Sıfırla",
@@ -537,6 +551,7 @@
"tabAccount": "Hesap",
"tabsAriaLabel": "Ayar bölümleri",
"sectionDesign": "Görünüm",
"sectionAppName": "Uygulama adı",
"sectionShopping": "Alışveriş",
"shoppingCategoriesLabel": "Alışveriş Kategorileri",
"shoppingCategoriesHint": "Kategorileri ekleyin, yeniden adlandırın, silin veya sıralayın.",
@@ -554,6 +569,16 @@
"sectionCalendarSync": "Takvim Senkronizasyonu",
"sectionFamily": "Aile Üyeleri",
"cardAppearance": "Görünüm",
"appNameTitle": "Uygulama adı",
"appNameLabel": "Uygulama adı",
"appNameHint": "Bu ad kenar çubuğunda, tarayıcı başlığında ve giriş ekranında görünür.",
"appNamePlaceholder": "Oikos",
"appNameSavedToast": "Uygulama adı kaydedildi.",
"sectionDate": "Tarih",
"dateFormatTitle": "Tarih biçimi",
"dateFormatLabel": "Tercih edilen tarih biçimi",
"dateFormatHint": "Tarihlerin uygulamada nasıl görüneceğini seçin.",
"dateFormatSavedToast": "Tarih biçimi kaydedildi.",
"themeSystem": "Sistem",
"themeSysLabel": "Sistem ayarını kullan",
"themeLight": "Açık",
@@ -760,6 +785,34 @@
"placeholder": "Ara…",
"noResults": "Sonuç bulunamadı."
},
"birthdays": {
"title": "Doğum Günleri",
"addButton": "Doğum günü ekle",
"searchPlaceholder": "Doğum günlerinde ara…",
"upcomingTitle": "Yaklaşan doğum günleri",
"upcomingHint": "Takvimle zaten senkronize edilmiş sıradaki kutlamalar.",
"peopleTitle": "Kişiler",
"peopleHint": "Kaydedilen tüm doğum günlerini arayın, inceleyin ve düzenleyin.",
"emptyTitle": "Henüz doğum günü yok",
"emptyDescription": "Takvimde ve hatırlatıcılarda görünür kalması için bir doğum günü ekleyin.",
"newTitle": "Yeni doğum günü",
"editTitle": "Doğum gününü düzenle",
"nameLabel": "Ad",
"birthDateLabel": "Doğum tarihi",
"photoLabel": "Profil resmi",
"removePhoto": "Resmi kaldır",
"notesLabel": "Notlar",
"notesPlaceholder": "Hediye fikirleri, favori pasta, aile notları…",
"calendarHint": "Her doğum günü otomatik olarak takvime ve hatırlatma sistemine eklenir.",
"requiredFields": "Ad ve doğum tarihi gereklidir.",
"createdToast": "Doğum günü kaydedildi.",
"updatedToast": "Doğum günü güncellendi.",
"deletedToast": "Doğum günü silindi.",
"deleteConfirm": "\"{{name}}\" için doğum günü silinsin mi?",
"ageNoteToday": "Bugün {{age}} yaşına giriyor.",
"ageNoteTomorrow": "Yarın {{age}} yaşına giriyor.",
"ageNoteDays": "{{days}} gün içinde {{age}} yaşına girecek."
},
"reminders": {
"sectionTitle": "Hatırlatıcı",
"enableLabel": "Hatırlatıcı ayarla",
+53
View File
@@ -38,6 +38,7 @@
"shopping": "Покупки",
"notes": "Нотатки",
"contacts": "Контакти",
"birthdays": "Дні народження",
"budget": "Бюджет",
"settings": "Налаштування",
"main": "Головна навігація",
@@ -82,6 +83,19 @@
"allDay": "Весь день",
"shoppingMore": "+{{count}} ще",
"weather": "Погода",
"familyMembers": "Члени родини",
"participantsAdded": "учасників додано",
"upcomingBirthdays": "Найближчі дні народження",
"noBirthdays": "Днів народження ще немає",
"daysLeft": "{{count}} дн.",
"budgetOverview": "Огляд бюджету",
"monthlyIncome": "Доходи",
"monthlyExpenses": "Витрати",
"monthlyBalance": "Баланс",
"savingsRate": "Рівень заощаджень",
"topExpense": "Найбільша витрата",
"budgetEntries": "Записи",
"noBudgetData": "Немає бюджетних даних за цей місяць.",
"customize": "Налаштувати",
"customizeTitle": "Налаштувати віджети",
"customizeReset": "Скинути",
@@ -537,6 +551,7 @@
"tabAccount": "Обліковий запис",
"tabsAriaLabel": "Розділи налаштувань",
"sectionDesign": "Зовнішній вигляд",
"sectionAppName": "Назва застосунку",
"sectionShopping": "Покупки",
"shoppingCategoriesLabel": "Категорії покупок",
"shoppingCategoriesHint": "Додавайте, перейменовуйте, видаляйте або змінюйте порядок категорій.",
@@ -554,6 +569,16 @@
"sectionCalendarSync": "Синхронізація календаря",
"sectionFamily": "Члени родини",
"cardAppearance": "Відображення",
"appNameTitle": "Назва застосунку",
"appNameLabel": "Назва застосунку",
"appNameHint": "Ця назва відображається в бічному меню, заголовку браузера та на екрані входу.",
"appNamePlaceholder": "Oikos",
"appNameSavedToast": "Назву застосунку збережено.",
"sectionDate": "Дата",
"dateFormatTitle": "Формат дати",
"dateFormatLabel": "Бажаний формат дати",
"dateFormatHint": "Виберіть, як дати відображаються в застосунку.",
"dateFormatSavedToast": "Формат дати збережено.",
"themeSystem": "Системна",
"themeSysLabel": "Використовувати системні налаштування",
"themeLight": "Світла",
@@ -781,6 +806,34 @@
"placeholder": "Пошук…",
"noResults": "Результатів не знайдено."
},
"birthdays": {
"title": "Дні народження",
"addButton": "Додати день народження",
"searchPlaceholder": "Шукати дні народження…",
"upcomingTitle": "Найближчі дні народження",
"upcomingHint": "Найближчі святкування, уже синхронізовані з календарем.",
"peopleTitle": "Люди",
"peopleHint": "Шукайте, переглядайте й редагуйте всі збережені дні народження.",
"emptyTitle": "Поки що немає днів народження",
"emptyDescription": "Додайте день народження, щоб він відображався в календарі та нагадуваннях.",
"newTitle": "Новий день народження",
"editTitle": "Редагувати день народження",
"nameLabel": "Ім'я",
"birthDateLabel": "Дата народження",
"photoLabel": "Фото профілю",
"removePhoto": "Видалити фото",
"notesLabel": "Нотатки",
"notesPlaceholder": "Ідеї подарунків, улюблений торт, сімейні нотатки…",
"calendarHint": "Кожен день народження автоматично додається до календаря та системи нагадувань.",
"requiredFields": "Ім'я та дата народження є обов'язковими.",
"createdToast": "День народження збережено.",
"updatedToast": "День народження оновлено.",
"deletedToast": "День народження видалено.",
"deleteConfirm": "Видалити день народження для \"{{name}}\"?",
"ageNoteToday": "Сьогодні виповнюється {{age}}.",
"ageNoteTomorrow": "Завтра виповниться {{age}}.",
"ageNoteDays": "За {{days}} дн. виповниться {{age}}."
},
"onboarding": {
"step1Title": "Welcome to Oikos",
"step1Body": "Your personal family planner. Tasks, calendar, shopping and more all in one place.",
+53
View File
@@ -38,6 +38,7 @@
"shopping": "购物",
"notes": "便签",
"contacts": "联系人",
"birthdays": "生日",
"budget": "预算",
"settings": "设置",
"main": "主导航",
@@ -82,6 +83,19 @@
"allDay": "全天",
"shoppingMore": "+{{count}} 更多",
"weather": "天气",
"familyMembers": "家庭成员",
"participantsAdded": "位参与者已添加",
"upcomingBirthdays": "即将到来的生日",
"noBirthdays": "还没有生日",
"daysLeft": "{{count}} 天",
"budgetOverview": "预算概览",
"monthlyIncome": "收入",
"monthlyExpenses": "支出",
"monthlyBalance": "余额",
"savingsRate": "储蓄率",
"topExpense": "最大支出",
"budgetEntries": "记录",
"noBudgetData": "本月没有预算数据。",
"customize": "自定义",
"customizeTitle": "自定义小组件",
"customizeReset": "重置",
@@ -537,6 +551,7 @@
"tabAccount": "账户",
"tabsAriaLabel": "设置类别",
"sectionDesign": "外观",
"sectionAppName": "应用名称",
"sectionShopping": "购物",
"shoppingCategoriesLabel": "购物分类",
"shoppingCategoriesHint": "添加、重命名、删除或排序分类。",
@@ -554,6 +569,16 @@
"sectionCalendarSync": "日历同步",
"sectionFamily": "家庭成员",
"cardAppearance": "外观",
"appNameTitle": "应用名称",
"appNameLabel": "应用名称",
"appNameHint": "此名称会显示在侧边栏、浏览器标题和登录界面中。",
"appNamePlaceholder": "Oikos",
"appNameSavedToast": "应用名称已保存。",
"sectionDate": "日期",
"dateFormatTitle": "日期格式",
"dateFormatLabel": "首选日期格式",
"dateFormatHint": "选择日期在应用中的显示方式。",
"dateFormatSavedToast": "日期格式已保存。",
"themeSystem": "跟随系统",
"themeSysLabel": "使用系统设置",
"themeLight": "浅色",
@@ -760,6 +785,34 @@
"placeholder": "搜索…",
"noResults": "未找到结果。"
},
"birthdays": {
"title": "生日",
"addButton": "添加生日",
"searchPlaceholder": "搜索生日…",
"upcomingTitle": "即将到来的生日",
"upcomingHint": "接下来的生日庆祝,已同步到日历。",
"peopleTitle": "人物",
"peopleHint": "搜索、查看并编辑所有已保存的生日。",
"emptyTitle": "还没有生日",
"emptyDescription": "添加一个生日,让它显示在日历和提醒中。",
"newTitle": "新建生日",
"editTitle": "编辑生日",
"nameLabel": "姓名",
"birthDateLabel": "出生日期",
"photoLabel": "头像",
"removePhoto": "删除照片",
"notesLabel": "备注",
"notesPlaceholder": "礼物想法、最喜欢的蛋糕、家庭备注…",
"calendarHint": "每个生日都会自动添加到日历和提醒系统中。",
"requiredFields": "姓名和出生日期为必填项。",
"createdToast": "生日已保存。",
"updatedToast": "生日已更新。",
"deletedToast": "生日已删除。",
"deleteConfirm": "删除“{{name}}”的生日?",
"ageNoteToday": "今天满 {{age}} 岁。",
"ageNoteTomorrow": "明天满 {{age}} 岁。",
"ageNoteDays": "{{days}} 天后满 {{age}} 岁。"
},
"reminders": {
"sectionTitle": "提醒",
"enableLabel": "设置提醒",