import 'dart:async'; import 'package:flutter/foundation.dart'; import 'package:flutter/widgets.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:intl/intl.dart' as intl; /// Stub localization class for testing. /// The actual implementation is generated by flutter gen-l10n. class S { S([String locale = 'en']) : localeName = locale; final String localeName; static S? _current; static S get current { if (_current == null) { _current = S(); } return _current!; } static S of(BuildContext context) { return current; } static Future load(Locale locale) { _current = S(locale.toString()); return SynchronousFuture(current); } static const LocalizationsDelegate delegate = _SDelegate(); String get habits => 'Habits:'; String get statistics => 'Statistics'; String get emptyList => 'Empty list'; String get noDataAboutHabits => 'There is no data about habits.'; String get topStreak => 'Top streak'; String get currentStreak => 'Current streak'; String get total => 'Total'; String get unknown => 'Unknown'; String get warning => 'Warning'; String get allHabitsWillBeReplaced => 'All habits will be replaced with habits from backup.'; String get restore => 'Restore'; String get cancel => 'Cancel'; String get settings => 'Settings'; String get theme => 'Theme'; String get firstDayOfWeek => 'First day of the week'; String get notifications => 'Notifications'; String get notificationTime => 'Notification time'; String get soundEffects => 'Sound effects'; String get showMonthName => 'Show month name'; String get setColors => 'Set colors'; String get backup => 'Backup'; String get create => 'Create'; String get onboarding => 'Onboarding'; String get about => 'About'; String get habo => 'Habo'; String get copyright => '©2023 Habo'; String get termsAndConditions => 'Terms and Conditions'; String get privacyPolicy => 'Privacy Policy'; String get disclaimer => 'Disclaimer'; String get sourceCode => 'Source code (GitHub)'; String get ifYouWantToSupport => 'If you want to support Habo you can:'; String get buyMeACoffee => 'Buy me a coffee'; String get reset => 'Reset'; String get done => 'Done'; String get congratulationsReward => 'Congratulations! Your reward:'; String get ohNoSanction => 'Oh no! Your sanction:'; String get month => 'Month'; String get week => 'Week'; String get habitLoop => 'Habit loop'; String get habitLoopDescription => 'Habit Loop is a psychological model describing the process of habit formation.'; String get cue => 'Cue'; String get cueDescription => 'is the trigger that initiates your habit.'; String get routine => 'Routine'; String get routineDescription => 'is the action you take in response to the cue.'; String get reward => 'Reward'; String get rewardDescription => 'is the benefit or positive feeling you experience after performing the routine.'; String get editHabit => 'Edit Habit'; String get createHabit => 'Create Habit'; String get delete => 'Delete'; String get habitTitleEmptyError => 'The habit title can not be empty.'; String get save => 'Save'; String get exercise => 'Exercise'; String get habit => 'Habit'; String get useTwoDayRule => 'Use Two day rule'; String get twoDayRule => 'Two day rule'; String get twoDayRuleDescription => 'With two day rule, you can miss one day and do not lose a streak if the next day is successful.'; String get advancedHabitBuilding => 'Advanced habit building'; String get advancedHabitBuildingDescription => 'This section helps you better define your habits utilizing the Habit loop.'; String get at7AM => 'At 7:00AM'; String get do50PushUps => 'Do 50 push ups'; String get fifteenMinOfVideoGames => '15 min. of video games'; String get showReward => 'Show reward'; String get remainderOfReward => 'The reminder of the reward after a successful routine.'; String get habitContract => 'Habit contract'; String get habitContractDescription => 'While positive reinforcement is recommended, some people may opt for a habit contract.'; String get donateToCharity => 'Donate 10\$ to charity'; String get sanction => 'Sanction'; String get showSanction => 'Show sanction'; String get remainderOfSanction => 'The reminder of the sanction after a unsuccessful routine.'; String get dan => 'Dan'; String get accountabilityPartner => 'Accountability partner'; String get add => 'Add'; String get haboNeedsPermission => 'Habo needs permission to send notifications to work properly.'; String get allow => 'Allow'; String get date => 'Date'; String get check => 'Check'; String get fail => 'Fail'; String get skip => 'Skip'; String get note => 'Note'; String get yourCommentHere => 'Your note here'; String get close => 'Close'; String get createYourFirstHabit => 'Create your first habit.'; String get modify => 'Modify'; String get backupFailedError => 'ERROR: Creating backup failed.'; String get restoreFailedError => 'ERROR: Restoring backup failed.'; String get habitDeleted => 'Habit deleted.'; String get undo => 'Undo'; String get appNotifications => 'App notifications'; String get appNotificationsChannel => 'Notification channel for application notifications'; String get habitNotifications => 'Habit notifications'; String get habitNotificationsChannel => 'Notification channel for habit notifications'; String get doNotForgetToCheckYourHabits => 'Do not forget to check your habits.'; String themeSelect(String theme) => theme; String get defineYourHabits => 'Define your habits'; String get defineYourHabitsDescription => 'To better stick to your habits, you can define:'; String get cueNumbered => '1. Cue'; String get routineNumbered => '2. Routine'; String get rewardNumbered => '3. Reward'; String get logYourDays => 'Log your days'; String get successful => 'Successful'; String get notSoSuccessful => 'Not so successful'; String get skipDoesNotAffectStreaks => 'Skip (does not affect streaks)'; String get observeYourProgress => 'Observe your progress'; String get trackYourProgress => 'You can track your progress through the calendar view in every habit or on the statistics page.'; String get backupCreatedSuccessfully => 'Backup created successfully!'; String get backupFailed => 'Backup failed!'; String get restoreCompletedSuccessfully => 'Restore completed successfully!'; String get restoreFailed => 'Restore failed!'; String get fileNotFound => 'File not found'; String get fileTooLarge => 'File too large (max 10MB)'; String get invalidBackupFile => 'Invalid backup file'; String get progress => 'Progress'; String get enterAmount => 'Enter amount'; String get complete => 'Complete'; String get saveProgress => 'Save Progress'; String currentProgress(String current, String unit) => 'Current: $current $unit'; String targetProgress(String target, String unit) => 'Target: $target $unit'; String progressOf(String current, String target, String unit) => '$current / $target $unit'; String get numericHabit => 'Progressive'; String get targetValue => 'Target value'; String get partialValue => 'Partial value'; String get unit => 'Unit'; String get habitType => 'Habit type'; String get booleanHabit => 'Checkable (Yes/No)'; String get slider => 'Slider'; String get input => 'Input'; String get numericHabitDescription => 'Numeric habits let you track progress in increments throughout the day.'; String get partialValueDescription => 'To track progress in smaller increments'; String get categories => 'Categories'; String get addCategory => 'Add Category'; String get editCategory => 'Edit Category'; String get category => 'Category'; String get noCategoriesYet => 'No categories yet'; String get createFirstCategory => 'Create your first category to organize your habits'; String get pleaseEnterCategoryTitle => 'Please enter a category title'; String categoryAlreadyExists(String title) => 'Category "$title" already exists'; String categoryCreatedSuccessfully(String title) => 'Category "$title" created successfully'; String categoryUpdatedSuccessfully(String title) => 'Category "$title" updated successfully'; String categoryDeletedSuccessfully(String title) => 'Category "$title" deleted successfully'; String failedToSaveCategory(String error) => 'Failed to save category: $error'; String failedToDeleteCategory(String error) => 'Failed to delete category: $error'; String get selectCategories => 'Select Categories'; String selectedCategories(int count) => 'Selected Categories ($count)'; String get allCategories => 'All Categories'; String get deleteCategory => 'Delete Category'; String deleteCategoryConfirmation(String title) => 'Are you sure you want to delete "$title"?'; String noHabitsInCategory(String title) => 'No habits in "$title"'; String get createHabitForCategory => 'Create a habit and assign it to this category'; String get showCategories => 'Show Categories'; String get archive => 'Archive'; String get unarchive => 'Unarchive'; String get archiveHabit => 'Archive habit'; String get unarchiveHabit => 'Unarchive habit'; String get archivedHabits => 'Archived Habits'; String get noArchivedHabits => 'No archived habits'; String get viewArchivedHabits => 'View archived habits'; String get habitArchived => 'Habit archived'; String get habitUnarchived => 'Habit unarchived'; String get biometric => 'Biometric'; String get biometricLockEnabled => 'Biometric lock enabled'; String get biometricLockDisabled => 'Biometric lock disabled'; String get authenticationError => 'Authentication error'; String get biometricAuthenticationRequired => 'Biometric authentication required'; String get setupFingerprintFaceUnlock => 'Please set up your fingerprint or face unlock in device settings'; String get touchSensor => 'Touch sensor'; String get biometricNotRecognized => 'Biometric not recognized, try again'; String get biometricRequired => 'Biometric required'; String get biometricAuthenticationSucceeded => 'Biometric authentication succeeded'; String get deviceCredentialsRequired => 'Device credentials required'; String get setupDeviceCredentials => 'Please set up device credentials in settings'; String get setupTouchIdFaceId => 'Please set up your Touch ID or Face ID in device settings'; String get reenableTouchIdFaceId => 'Please reenable your Touch ID or Face ID'; String get biometricLock => 'Biometric Lock'; String biometricLockDescription(String authMethod) => 'Secure app with $authMethod'; String get authenticateToEnable => 'Authenticate to enable biometric lock'; String get authenticateToAccess => 'Please authenticate to access Habo'; String get authenticationRequired => 'Authentication Required'; String authenticationFailedMessage(String authMethod) => 'Please authenticate to access Habo using $authMethod'; String get tryAgain => 'Try Again'; String get authenticating => 'Authenticating…'; String get authenticate => 'Authenticate'; String get buildingBetterHabits => 'Building Better Habits'; String authenticationPrompt(String authMethod) => 'Please authenticate using $authMethod to access your habits'; String get devicePinPatternPassword => 'Device PIN, Pattern, or Password'; String get fingerprint => 'Fingerprint'; String get iris => 'Iris'; String get whatsNewTitle => "What's New"; String whatsNewVersion(String version) => 'Version $version'; String get featureNumericTitle => 'Numeric values in habits'; String get featureNumericDesc => 'Track counts like glasses of water or pages read'; String get featureDeepLinksTitle => 'URL scheme (deep links)'; String get featureDeepLinksDesc => 'Open Habo directly to screens like settings or create'; String get featureCategoriesTitle => 'Categories'; String get featureCategoriesDesc => 'Organize habits with category filters'; String get featureArchiveTitle => 'Archive'; String get featureArchiveDesc => 'Hide habits you no longer track without deleting'; String get featureMaterialYouTitle => 'Material You theme (Android)'; String get featureMaterialYouDesc => 'Dynamic colors that match your wallpaper'; String get featureSoundTitle => 'New sound engine'; String get featureSoundDesc => 'Adjustable volume'; String get featureLockTitle => 'Lock feature'; String get featureLockDesc => 'Secure the app with Face ID / Touch ID / biometrics'; String get featureIosSoundMixingTitle => 'Fixed sound mixing'; String get featureIosSoundMixingDesc => 'Habo sounds no longer interrupt your music or podcasts'; String get featureHomescreenWidgetTitle => 'Homescreen widget'; String get featureHomescreenWidgetDesc => 'View your habit progress at a glance from your home screen (experimental)'; String get featureLongpressCheckTitle => 'Longpress check'; String get featureLongpressCheckDesc => 'Longpress on habit buttons to quickly change status'; String get haboSyncComingSoon => 'Coming Soon'; String get haboSyncDescription => "Sync your habits across all your devices with Habo's end-to-end encrypted cloud service."; String get haboSyncLearnMore => 'Learn more at habo.space/sync'; String get habitsToday => 'Habits today'; String get or => 'or'; String get oneTapCheck => 'Single tap to check'; String get tapCheckLongPressMenu => 'Tap to check, long press for menu'; String get categoryName => 'Category name'; String get createCategory => 'Create category'; String get all => 'All'; String get selectIcon => 'Pick an icon'; String get searchIcons => 'Search'; String get habitArchivedSuccess => 'Habit archived'; String get habitUnarchivedSuccess => 'Habit unarchived'; } class _SDelegate extends LocalizationsDelegate { const _SDelegate(); @override Future load(Locale locale) => S.load(locale); @override bool isSupported(Locale locale) => true; @override bool shouldReload(_SDelegate old) => false; } class AppLocalizations { static const LocalizationsDelegate delegate = S.delegate; static S of(BuildContext context) => S.of(context); static List> localizationsDelegates = [ S.delegate, GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate, GlobalCupertinoLocalizations.delegate, ]; static List supportedLocales = [ const Locale('en'), ]; }