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:
@@ -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",
|
||||
|
||||
Reference in New Issue
Block a user