feat(değerlendirme): ay sonu değerlendirmesi sayfası

- Kakeibo'nun 4 sorusu, nasıl hesaplandığıyla birlikte
- Grup bazında planlanan/gerçekleşen, en çok harcanan kategoriler, haftalık dağılım
- "Nasıl daha iyi yapabilirim?" (Markdown) ve yalnızca başlıkları listelenen notlar

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-11-12 12:31:35 +03:00
parent 62e92f552a
commit 311cfc8c60
16 changed files with 627 additions and 56 deletions
+36
View File
@@ -294,6 +294,42 @@ export const t = {
over: 'Aşıldı',
},
review: {
ongoing: (last: string) => `Dönem ${last} tarihinde bitiyor; değerler kayıt girdikçe değişir.`,
q1: 'Ne kadar param vardı?',
q1Detail: (income: string, fixed: string) => `Gelir ${income} − sabit giderler ${fixed}`,
q1Debt: (debt: string) => ` − devreden borç ${debt}`,
q1Surplus: (surplus: string) => ` + devreden artı ${surplus}`,
q2: 'Ne kadar biriktirmek istedim?',
q2Detail: 'Dönem başında belirlenen birikim hedefi',
q3: 'Ne kadar harcadım?',
q3Detail: (budget: string, pct: string) => `Bütçenin ${pct} kadarı (${budget})`,
q3NoBudget: 'Bütçe dağıtılmamış',
q4: 'Ne kadar biriktirdim?',
above: (x: string) => (x === '0,00 ₺' ? 'Hedefe tam ulaşıldı' : `Hedefin ${x} üstünde 🎉`),
below: (x: string) => `Hedefin ${x} altında`,
deficit: (x: string) => `${x} açık; borç olarak sonraki döneme devreder`,
groupsTitle: 'Planlanan ve gerçekleşen',
groupLine: (spent: string, planned: string) => `${spent} / ${planned}`,
left: (x: string) => `${x} kaldı`,
over: (x: string) => `${x} aşıldı`,
categoriesTitle: 'En çok harcanan kategoriler',
categoriesEmpty: 'Bu dönemde henüz harcama yok.',
count: (n: number) => `${n} kayıt`,
showAll: (n: number) => `Tümünü göster (${n})`,
showLess: 'Daha az göster',
weeksTitle: 'Haftalık dağılım',
week: (n: number) => `${n}. hafta`,
reflectionTitle: 'Nasıl daha iyi yapabilirim?',
reflectionEmpty: 'Bu ay neler iyi gitti, neyi değiştirmek istersin? Kısa notlar yeterli.',
reflectionPlaceholder:
'- Dışarıda yemeği haftada bire indir\n- Market alışverişini listeyle yap',
reflectionSaved: 'Kaydedildi',
reflectionTooLong: 'Metin en fazla 20.000 karakter olabilir',
edit: 'Düzenle',
write: 'Yaz',
},
common: {
loading: 'Yükleniyor…',
retry: 'Tekrar dene',