585 lines
14 KiB
Dart
585 lines
14 KiB
Dart
// ignore: unused_import
|
|
import 'package:intl/intl.dart' as intl;
|
|
import 'app_localizations.dart';
|
|
|
|
// ignore_for_file: type=lint
|
|
|
|
/// The translations for English (`en`).
|
|
class AppLocalizationsEn extends AppLocalizations {
|
|
AppLocalizationsEn([String locale = 'en']) : super(locale);
|
|
|
|
@override
|
|
String get appTitle => 'FocusBuddy';
|
|
|
|
@override
|
|
String get startFocusing => 'Start Focusing';
|
|
|
|
@override
|
|
String minutes(int count) {
|
|
String _temp0 = intl.Intl.pluralLogic(
|
|
count,
|
|
locale: localeName,
|
|
other: 'minutes',
|
|
one: 'minute',
|
|
);
|
|
return '$_temp0';
|
|
}
|
|
|
|
@override
|
|
String minutesValue(int count, Object minutes) {
|
|
return '$count $minutes';
|
|
}
|
|
|
|
@override
|
|
String get tapDistractionAnytime =>
|
|
'Tap \'I got distracted\'\nanytime — no guilt.';
|
|
|
|
@override
|
|
String get history => 'History';
|
|
|
|
@override
|
|
String get settings => 'Settings';
|
|
|
|
@override
|
|
String get iGotDistracted => 'I got distracted';
|
|
|
|
@override
|
|
String get pause => 'Pause';
|
|
|
|
@override
|
|
String get resume => 'Resume';
|
|
|
|
@override
|
|
String get stopSession => 'Stop session';
|
|
|
|
@override
|
|
String get whatPulledYouAway => 'What pulled you away?';
|
|
|
|
@override
|
|
String get skipThisTime => 'Skip this time';
|
|
|
|
@override
|
|
String get stopEarly => 'Stop early?';
|
|
|
|
@override
|
|
String stopEarlyMessage(int minutes, Object minuteText) {
|
|
return 'That\'s totally fine — you still focused for $minutes $minuteText!';
|
|
}
|
|
|
|
@override
|
|
String get keepGoing => 'Keep going';
|
|
|
|
@override
|
|
String get yesStop => 'Yes, stop';
|
|
|
|
@override
|
|
String get distractionEncouragement => 'It happens. Let\'s gently come back.';
|
|
|
|
@override
|
|
String get focusComplete => 'Focus session complete!';
|
|
|
|
@override
|
|
String get youFocusedFor => 'You focused for';
|
|
|
|
@override
|
|
String totalToday(int minutes) {
|
|
return 'Total today: $minutes mins';
|
|
}
|
|
|
|
@override
|
|
String distractionsCount(int count, Object times) {
|
|
return 'Distractions: $count $times';
|
|
}
|
|
|
|
@override
|
|
String times(int count) {
|
|
String _temp0 = intl.Intl.pluralLogic(
|
|
count,
|
|
locale: localeName,
|
|
other: 'times',
|
|
one: 'time',
|
|
);
|
|
return '$_temp0';
|
|
}
|
|
|
|
@override
|
|
String get startAnother => 'Start Another';
|
|
|
|
@override
|
|
String get viewHistory => 'View History';
|
|
|
|
@override
|
|
String get yourFocusJourney => 'Your Focus Journey';
|
|
|
|
@override
|
|
String get noFocusSessionsYet => 'No focus sessions yet';
|
|
|
|
@override
|
|
String get startFirstSession =>
|
|
'Start your first session\nto see your progress here!';
|
|
|
|
@override
|
|
String get today => 'Today';
|
|
|
|
@override
|
|
String sessions(int count) {
|
|
String _temp0 = intl.Intl.pluralLogic(
|
|
count,
|
|
locale: localeName,
|
|
other: '$count sessions',
|
|
one: '$count session',
|
|
);
|
|
return '$_temp0';
|
|
}
|
|
|
|
@override
|
|
String get completed => 'Completed';
|
|
|
|
@override
|
|
String get stoppedEarly => 'Stopped early';
|
|
|
|
@override
|
|
String distractions(int count) {
|
|
String _temp0 = intl.Intl.pluralLogic(
|
|
count,
|
|
locale: localeName,
|
|
other: 'distractions',
|
|
one: 'distraction',
|
|
);
|
|
return '$_temp0';
|
|
}
|
|
|
|
@override
|
|
String get focusSettings => 'Focus Settings';
|
|
|
|
@override
|
|
String get defaultFocusDuration => 'Default Focus Duration';
|
|
|
|
@override
|
|
String get defaultLabel => 'Default';
|
|
|
|
@override
|
|
String get about => 'About';
|
|
|
|
@override
|
|
String get privacyPolicy => 'Privacy Policy';
|
|
|
|
@override
|
|
String get termsOfService => 'Terms of Service';
|
|
|
|
@override
|
|
String get aboutFocusBuddy => 'About FocusBuddy';
|
|
|
|
@override
|
|
String get resetOnboarding => 'Reset Onboarding';
|
|
|
|
@override
|
|
String get version => 'Version 1.0.0 (MVP)';
|
|
|
|
@override
|
|
String get privacyPolicyTitle => 'Privacy Policy';
|
|
|
|
@override
|
|
String get privacyPolicyContent =>
|
|
'FocusBuddy is 100% offline. We do not collect your name, email, location, or usage data. All sessions stay on your device.\n\nThere is no cloud sync, no account system, and no analytics tracking.\n\nFor the full privacy policy, visit:\nhttps://ytc1012.github.io/focusbuddy-site/privacy-policy.html';
|
|
|
|
@override
|
|
String get termsOfServiceTitle => 'Terms of Service';
|
|
|
|
@override
|
|
String get termsOfServiceContent =>
|
|
'FocusBuddy is provided \"as is\" without warranties. By using this app, you agree to use it at your own risk.\n\nThis app is designed as a focus timer tool and does not guarantee specific results. All data is stored locally on your device.\n\nFor the full terms of service, visit:\nhttps://ytc1012.github.io/focusbuddy-site/terms-of-service.html';
|
|
|
|
@override
|
|
String get close => 'Close';
|
|
|
|
@override
|
|
String get aboutTitle => 'About FocusBuddy';
|
|
|
|
@override
|
|
String get aboutSubtitle => 'A gentle focus timer for neurodivergent minds';
|
|
|
|
@override
|
|
String get aboutQuote =>
|
|
'\"Focus is not about never getting distracted — it\'s about gently coming back every time you do.\"';
|
|
|
|
@override
|
|
String get aboutFeatures =>
|
|
'✨ No punishment for distractions\n💚 Encouragement over criticism\n🔒 100% offline and private\n🌱 Made with care';
|
|
|
|
@override
|
|
String get resetOnboardingTitle => 'Reset Onboarding?';
|
|
|
|
@override
|
|
String get resetOnboardingMessage =>
|
|
'This will show the onboarding screens again when you restart the app.';
|
|
|
|
@override
|
|
String get cancel => 'Cancel';
|
|
|
|
@override
|
|
String get reset => 'Reset';
|
|
|
|
@override
|
|
String get onboardingReset =>
|
|
'Onboarding reset. Restart the app to see it again.';
|
|
|
|
@override
|
|
String get onboarding1Title => 'Focus without guilt';
|
|
|
|
@override
|
|
String get onboarding1Description =>
|
|
'This app is different — it won\'t punish you for losing focus.\n\nPerfect for ADHD, anxiety, or anyone who finds traditional timers too harsh.';
|
|
|
|
@override
|
|
String get onboarding2Title => 'Tap when you get distracted';
|
|
|
|
@override
|
|
String get onboarding2Description =>
|
|
'We\'ll gently remind you to come back.\n\nNo shame. No stress. Just a friendly nudge.';
|
|
|
|
@override
|
|
String get onboarding3Title => 'Track your progress';
|
|
|
|
@override
|
|
String get onboarding3Description =>
|
|
'See how you\'re improving, one session at a time.\n\nEvery distraction is just data — not failure.';
|
|
|
|
@override
|
|
String get skip => 'Skip';
|
|
|
|
@override
|
|
String get next => 'Next';
|
|
|
|
@override
|
|
String get getStarted => 'Get Started';
|
|
|
|
@override
|
|
String get notificationFocusInProgress => 'Focus session in progress';
|
|
|
|
@override
|
|
String notificationRemaining(String time) {
|
|
return '$time remaining';
|
|
}
|
|
|
|
@override
|
|
String get notificationFocusCompleteTitle => '🎉 Focus session complete!';
|
|
|
|
@override
|
|
String notificationFocusCompleteBodyNoDistractions(
|
|
int minutes,
|
|
Object minuteText,
|
|
) {
|
|
return 'You focused for $minutes $minuteText without distractions!';
|
|
}
|
|
|
|
@override
|
|
String notificationFocusCompleteBody(int minutes, Object minuteText) {
|
|
return 'You focused for $minutes $minuteText. Great effort!';
|
|
}
|
|
|
|
@override
|
|
String get distractionPhoneNotification => 'Phone / Notification';
|
|
|
|
@override
|
|
String get distractionSocialMedia => 'Social Media';
|
|
|
|
@override
|
|
String get distractionThoughts => 'Thoughts / Daydream';
|
|
|
|
@override
|
|
String get distractionOther => 'Other';
|
|
|
|
@override
|
|
String get language => 'Language';
|
|
|
|
@override
|
|
String get selectLanguage => 'Select Language';
|
|
|
|
@override
|
|
String get english => 'English';
|
|
|
|
@override
|
|
String get chinese => '中文 (Chinese)';
|
|
|
|
@override
|
|
String get japanese => '日本語 (Japanese)';
|
|
|
|
@override
|
|
String get korean => '한국어 (Korean)';
|
|
|
|
@override
|
|
String get spanish => 'Español (Spanish)';
|
|
|
|
@override
|
|
String get german => 'Deutsch (German)';
|
|
|
|
@override
|
|
String get french => 'Français (French)';
|
|
|
|
@override
|
|
String get portuguese => 'Português (Portuguese)';
|
|
|
|
@override
|
|
String get russian => 'Русский (Russian)';
|
|
|
|
@override
|
|
String get hindi => 'हिन्दी (Hindi)';
|
|
|
|
@override
|
|
String get indonesian => 'Bahasa Indonesia (Indonesian)';
|
|
|
|
@override
|
|
String get italian => 'Italiano (Italian)';
|
|
|
|
@override
|
|
String get arabic => 'العربية (Arabic)';
|
|
|
|
@override
|
|
String get points => 'Points';
|
|
|
|
@override
|
|
String get level => 'Level';
|
|
|
|
@override
|
|
String get checked => 'Checked';
|
|
|
|
@override
|
|
String get checkIn => 'Check In';
|
|
|
|
@override
|
|
String get earnedPoints => 'Earned:';
|
|
|
|
@override
|
|
String get basePoints => 'Base Points';
|
|
|
|
@override
|
|
String get honestyBonus => 'Honesty Bonus';
|
|
|
|
@override
|
|
String totalPoints(int count) {
|
|
return 'Total Points: $count ⚡';
|
|
}
|
|
|
|
@override
|
|
String distractionsRecorded(int count, Object distractionText) {
|
|
return '($count $distractionText recorded)';
|
|
}
|
|
|
|
@override
|
|
String get achievementUnlocked => '🎖️ Achievement Unlocked!';
|
|
|
|
@override
|
|
String bonusPoints(int points) {
|
|
return '+$points Points ⚡';
|
|
}
|
|
|
|
@override
|
|
String checkInSuccess(int points) {
|
|
return 'Check-in successful! +$points points ⚡';
|
|
}
|
|
|
|
@override
|
|
String get weeklyStreakBonus => '🎉 Weekly streak bonus!';
|
|
|
|
@override
|
|
String get newAchievementUnlocked => '🎖️ New achievement unlocked!';
|
|
|
|
@override
|
|
String get alreadyCheckedIn =>
|
|
'You have already checked in today! Come back tomorrow 📅';
|
|
|
|
@override
|
|
String get checkInCalendar => 'Check-In Calendar 📅';
|
|
|
|
@override
|
|
String get checkInToday => '📅 Check In Today';
|
|
|
|
@override
|
|
String get checkedInToday => '✓ Checked In Today';
|
|
|
|
@override
|
|
String get currentStreak => '🔥 Current Streak';
|
|
|
|
@override
|
|
String get longestStreak => '🏆 Longest Streak';
|
|
|
|
@override
|
|
String get days => 'days';
|
|
|
|
@override
|
|
String daysCount(int count) {
|
|
return '$count days';
|
|
}
|
|
|
|
@override
|
|
String get achievements => 'Achievements 🎖️';
|
|
|
|
@override
|
|
String get viewAllAchievements => 'View All Achievements';
|
|
|
|
@override
|
|
String get allAchievementsComingSoon =>
|
|
'Full achievements screen coming soon!';
|
|
|
|
@override
|
|
String get profile => 'Profile';
|
|
|
|
@override
|
|
String get focuser => 'Focuser';
|
|
|
|
@override
|
|
String pointsToNextLevel(int points, int level) {
|
|
return '$points points to Level $level';
|
|
}
|
|
|
|
@override
|
|
String get achievement_first_session_name => 'Focus Newbie';
|
|
|
|
@override
|
|
String get achievement_first_session_desc =>
|
|
'Complete your first focus session';
|
|
|
|
@override
|
|
String get achievement_sessions_10_name => 'Getting Started';
|
|
|
|
@override
|
|
String get achievement_sessions_10_desc => 'Complete 10 focus sessions';
|
|
|
|
@override
|
|
String get achievement_sessions_50_name => 'Focus Enthusiast';
|
|
|
|
@override
|
|
String get achievement_sessions_50_desc => 'Complete 50 focus sessions';
|
|
|
|
@override
|
|
String get achievement_sessions_100_name => 'Focus Master';
|
|
|
|
@override
|
|
String get achievement_sessions_100_desc => 'Complete 100 focus sessions';
|
|
|
|
@override
|
|
String get achievement_honest_bronze_name => 'Honest Tracker · Bronze';
|
|
|
|
@override
|
|
String get achievement_honest_bronze_desc =>
|
|
'Record 50 distractions honestly';
|
|
|
|
@override
|
|
String get achievement_honest_silver_name => 'Honest Tracker · Silver';
|
|
|
|
@override
|
|
String get achievement_honest_silver_desc =>
|
|
'Record 200 distractions honestly';
|
|
|
|
@override
|
|
String get achievement_honest_gold_name => 'Honest Tracker · Gold';
|
|
|
|
@override
|
|
String get achievement_honest_gold_desc => 'Record 500 distractions honestly';
|
|
|
|
@override
|
|
String get achievement_marathon_name => 'Marathon Runner';
|
|
|
|
@override
|
|
String get achievement_marathon_desc => 'Accumulate 10 hours of focus time';
|
|
|
|
@override
|
|
String get achievement_century_name => 'Century Club';
|
|
|
|
@override
|
|
String get achievement_century_desc => 'Accumulate 100 hours of focus time';
|
|
|
|
@override
|
|
String get achievement_master_name => 'Focus Grandmaster';
|
|
|
|
@override
|
|
String get achievement_master_desc => 'Accumulate 1000 hours of focus time';
|
|
|
|
@override
|
|
String get achievement_persistence_star_name => 'Persistence Star';
|
|
|
|
@override
|
|
String get achievement_persistence_star_desc =>
|
|
'Check in for 7 consecutive days';
|
|
|
|
@override
|
|
String get achievement_monthly_habit_name => 'Monthly Habit';
|
|
|
|
@override
|
|
String get achievement_monthly_habit_desc =>
|
|
'Check in for 30 consecutive days';
|
|
|
|
@override
|
|
String get achievement_centurion_name => 'Centurion';
|
|
|
|
@override
|
|
String get achievement_centurion_desc => 'Check in for 100 consecutive days';
|
|
|
|
@override
|
|
String get achievement_year_warrior_name => 'Year Warrior';
|
|
|
|
@override
|
|
String get achievement_year_warrior_desc =>
|
|
'Check in for 365 consecutive days';
|
|
|
|
@override
|
|
String get total => 'Total';
|
|
|
|
@override
|
|
String get status => 'Status';
|
|
|
|
@override
|
|
String get pointsBreakdown => 'Points Breakdown';
|
|
|
|
@override
|
|
String get focusTimePoints => 'Focus Time';
|
|
|
|
@override
|
|
String get focusTimePointsDesc => '1 point per minute of focus';
|
|
|
|
@override
|
|
String get honestyBonusLabel => 'Honesty Bonus';
|
|
|
|
@override
|
|
String get honestyBonusDesc => 'Extra points for recording distractions';
|
|
|
|
@override
|
|
String get checkInPoints => 'Daily Check-In';
|
|
|
|
@override
|
|
String get checkInPointsDesc => 'Base points for daily check-in';
|
|
|
|
@override
|
|
String get streakBonus => 'Streak Bonus';
|
|
|
|
@override
|
|
String streakBonusDesc(int days) {
|
|
return '$days consecutive check-ins';
|
|
}
|
|
|
|
@override
|
|
String get achievementBonusLabel => 'Achievement Bonus';
|
|
|
|
@override
|
|
String get weekdayS => 'S';
|
|
|
|
@override
|
|
String get weekdayM => 'M';
|
|
|
|
@override
|
|
String get weekdayT => 'T';
|
|
|
|
@override
|
|
String get weekdayW => 'W';
|
|
|
|
@override
|
|
String get weekdayTh => 'T';
|
|
|
|
@override
|
|
String get weekdayF => 'F';
|
|
|
|
@override
|
|
String get weekdaySa => 'S';
|
|
}
|