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

@@ -35,7 +35,7 @@ Future<void> main() async {
// 성능 최적화 설정
MemoryManager.optimizeImageCache();
MemoryManager().startAutoCleanup();
// 앱 시작 시 이미지 캐시 관리
try {
// 메모리 이미지 캐시는 유지하지만 필요한 경우 삭제할 수 있도록 준비
@@ -118,9 +118,10 @@ class SubManagerApp extends StatelessWidget {
builder: (context, localeProvider, themeProvider, child) {
// 시스템 UI 오버레이 스타일 적용
AdaptiveTheme.applySystemUIOverlay(context);
return MaterialApp(
title: 'SubManager',
key: ValueKey(localeProvider.locale),
title: 'Digital Rent Manager',
debugShowCheckedModeBanner: false,
theme: themeProvider.getTheme(context),
locale: localeProvider.locale,
@@ -133,6 +134,8 @@ class SubManagerApp extends StatelessWidget {
supportedLocales: const [
Locale('en'),
Locale('ko'),
Locale('ja'),
Locale('zh'),
],
navigatorKey: navigatorKey,
navigatorObservers: [AppNavigationObserver()],
@@ -144,10 +147,11 @@ class SubManagerApp extends StatelessWidget {
if (kDebugMode) {
PerformanceOptimizer().startFrameMonitoring();
}
return MediaQuery(
data: MediaQuery.of(context).copyWith(
textScaler: TextScaler.linear(themeProvider.largeText ? 1.2 : 1.0),
textScaler:
TextScaler.linear(themeProvider.largeText ? 1.2 : 1.0),
disableAnimations: themeProvider.reduceMotion,
),
child: child!,