feat: 다국어 지원 및 다중 통화 환율 변환 기능 확대

- ExchangeRateService에 JPY, CNY 환율 지원 추가
- 구독 서비스별 다국어 표시 이름 지원
- 분석 화면 차트 및 UI/UX 개선
- 설정 화면 전면 리팩토링
- SMS 스캔 기능 사용성 개선
- 전체 앱 다국어 번역 확대

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
JiWoong Sul
2025-07-16 17:34:32 +09:00
parent 4d1c0f5dab
commit 0f0b02bf08
55 changed files with 4100 additions and 1197 deletions

View File

@@ -14,7 +14,7 @@ class SubscriptionModel extends HiveObject {
double monthlyCost;
@HiveField(3)
String billingCycle; // '월간', '연간', '주간' 등
String billingCycle; // 'monthly', 'yearly', 'weekly' - 영어 키값 사용
@HiveField(4)
DateTime nextBillingDate;
@@ -98,6 +98,32 @@ class SubscriptionModel extends HiveObject {
// 원래 가격 (이벤트와 관계없이 항상 정상 가격)
double get originalPrice => monthlyCost;
// 결제 주기를 영어 키값으로 정규화
static String normalizeBillingCycle(String cycle) {
switch (cycle.toLowerCase()) {
case 'monthly':
case '월간':
case '月間':
case '月付':
return 'monthly';
case 'weekly':
case '주간':
case '週間':
case '周付':
return 'weekly';
case 'yearly':
case '연간':
case '年間':
case '年付':
return 'yearly';
default:
return 'monthly'; // 기본값은 monthly
}
}
// 결제 주기를 영어 키값으로 반환 (내부 사용)
String get billingCycleKey => normalizeBillingCycle(billingCycle);
}
// Hive TypeAdapter 생성을 위한 명령어