import 'package:flutter/material.dart'; class AppLocalizations { final Locale locale; AppLocalizations(this.locale); static AppLocalizations of(BuildContext context) { return Localizations.of(context, AppLocalizations)!; } static const _localizedValues = >{ 'en': { 'appTitle': 'SubManager', 'subscriptionManagement': 'Subscription Management', 'addSubscription': 'Add Subscription', 'subscriptionName': 'Service Name', 'monthlyCost': 'Monthly Cost', 'billingCycle': 'Billing Cycle', 'nextBillingDate': 'Next Billing Date', 'save': 'Save', 'cancel': 'Cancel', 'delete': 'Delete', 'edit': 'Edit', 'totalSubscriptions': 'Total Subscriptions', 'totalMonthlyExpense': 'Total Monthly Expense', 'noSubscriptions': 'No subscriptions registered', 'addSubscriptionNow': 'Add Subscription Now', 'paymentReminder': 'Payment Reminder', 'expirationReminder': 'Expiration Reminder', 'daysLeft': 'days left', 'categoryManagement': 'Category Management', 'categoryName': 'Category Name', 'selectColor': 'Select Color', 'selectIcon': 'Select Icon', 'addCategory': 'Add Category', 'settings': 'Settings', 'darkMode': 'Dark Mode', 'language': 'Language', 'notifications': 'Notifications', 'appLock': 'App Lock', }, 'ko': { 'appTitle': '구독 관리', 'subscriptionManagement': '구독 관리', 'addSubscription': '구독 추가', 'subscriptionName': '서비스명', 'monthlyCost': '월 비용', 'billingCycle': '결제 주기', 'nextBillingDate': '다음 결제일', 'save': '저장', 'cancel': '취소', 'delete': '삭제', 'edit': '수정', 'totalSubscriptions': '총 구독', 'totalMonthlyExpense': '이번 달 총 지출', 'noSubscriptions': '등록된 구독 서비스가 없습니다', 'addSubscriptionNow': '구독 추가하기', 'paymentReminder': '결제 예정 알림', 'expirationReminder': '만료 예정 알림', 'daysLeft': '일 남음', 'categoryManagement': '카테고리 관리', 'categoryName': '카테고리 이름', 'selectColor': '색상 선택', 'selectIcon': '아이콘 선택', 'addCategory': '카테고리 추가', 'settings': '설정', 'darkMode': '다크 모드', 'language': '언어', 'notifications': '알림', 'appLock': '앱 잠금', }, }; String get appTitle => _localizedValues[locale.languageCode]!['appTitle']!; String get subscriptionManagement => _localizedValues[locale.languageCode]!['subscriptionManagement']!; String get addSubscription => _localizedValues[locale.languageCode]!['addSubscription']!; String get subscriptionName => _localizedValues[locale.languageCode]!['subscriptionName']!; String get monthlyCost => _localizedValues[locale.languageCode]!['monthlyCost']!; String get billingCycle => _localizedValues[locale.languageCode]!['billingCycle']!; String get nextBillingDate => _localizedValues[locale.languageCode]!['nextBillingDate']!; String get save => _localizedValues[locale.languageCode]!['save']!; String get cancel => _localizedValues[locale.languageCode]!['cancel']!; String get delete => _localizedValues[locale.languageCode]!['delete']!; String get edit => _localizedValues[locale.languageCode]!['edit']!; String get totalSubscriptions => _localizedValues[locale.languageCode]!['totalSubscriptions']!; String get totalMonthlyExpense => _localizedValues[locale.languageCode]!['totalMonthlyExpense']!; String get noSubscriptions => _localizedValues[locale.languageCode]!['noSubscriptions']!; String get addSubscriptionNow => _localizedValues[locale.languageCode]!['addSubscriptionNow']!; String get paymentReminder => _localizedValues[locale.languageCode]!['paymentReminder']!; String get expirationReminder => _localizedValues[locale.languageCode]!['expirationReminder']!; String get daysLeft => _localizedValues[locale.languageCode]!['daysLeft']!; String get categoryManagement => _localizedValues[locale.languageCode]!['categoryManagement']!; String get categoryName => _localizedValues[locale.languageCode]!['categoryName']!; String get selectColor => _localizedValues[locale.languageCode]!['selectColor']!; String get selectIcon => _localizedValues[locale.languageCode]!['selectIcon']!; String get addCategory => _localizedValues[locale.languageCode]!['addCategory']!; String get settings => _localizedValues[locale.languageCode]!['settings']!; String get darkMode => _localizedValues[locale.languageCode]!['darkMode']!; String get language => _localizedValues[locale.languageCode]!['language']!; String get notifications => _localizedValues[locale.languageCode]!['notifications']!; String get appLock => _localizedValues[locale.languageCode]!['appLock']!; } class AppLocalizationsDelegate extends LocalizationsDelegate { const AppLocalizationsDelegate(); @override bool isSupported(Locale locale) => ['en', 'ko'].contains(locale.languageCode); @override Future load(Locale locale) async { return AppLocalizations(locale); } @override bool shouldReload(AppLocalizationsDelegate old) => false; }