Files
FocusBuddy/lib/l10n/app_en.arb
ytc1012 86a368e1e3 优化
2025-12-02 16:38:58 +08:00

636 lines
18 KiB
Plaintext

{
"@@locale": "en",
"appTitle": "FocusBuddy",
"@appTitle": {
"description": "The application title"
},
"startFocusing": "Start Focusing",
"@startFocusing": {
"description": "Button text to start a focus session"
},
"minutes": "{count, plural, =1{minute} other{minutes}}",
"@minutes": {
"description": "Minutes plural form",
"placeholders": {
"count": {
"type": "int"
}
}
},
"minutesValue": "{count} {minutes}",
"@minutesValue": {
"description": "Minutes with value",
"placeholders": {
"count": {
"type": "int"
},
"minutes": {}
}
},
"tapDistractionAnytime": "Tap 'I got distracted'\nanytime — no guilt.",
"@tapDistractionAnytime": {
"description": "Helper text on home screen"
},
"history": "History",
"@history": {
"description": "History navigation button"
},
"settings": "Settings",
"@settings": {
"description": "Settings navigation button"
},
"iGotDistracted": "I got distracted",
"@iGotDistracted": {
"description": "Main distraction button text"
},
"pause": "Pause",
"resume": "Resume",
"stopSession": "Stop session",
"whatPulledYouAway": "What pulled you away?",
"@whatPulledYouAway": {
"description": "Distraction sheet title"
},
"skipThisTime": "Skip this time",
"stopEarly": "Stop early?",
"stopEarlyMessage": "That's totally fine — you still focused for {minutes} {minuteText}!",
"@stopEarlyMessage": {
"placeholders": {
"minutes": {
"type": "int"
},
"minuteText": {}
}
},
"keepGoing": "Keep going",
"yesStop": "Yes, stop",
"distractionEncouragement": "It happens. Let's gently come back.",
"@distractionEncouragement": {
"description": "Encouragement message when distracted"
},
"focusComplete": "Focus session complete!",
"youFocusedFor": "You focused for",
"totalToday": "Total today: {minutes} mins",
"@totalToday": {
"placeholders": {
"minutes": {
"type": "int"
}
}
},
"distractionsCount": "Distractions: {count} {times}",
"@distractionsCount": {
"placeholders": {
"count": {
"type": "int"
},
"times": {}
}
},
"times": "{count, plural, =1{time} other{times}}",
"@times": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"startAnother": "Start Another",
"viewHistory": "View History",
"yourFocusJourney": "Your Focus Journey",
"noFocusSessionsYet": "No focus sessions yet",
"startFirstSession": "Start your first session\nto see your progress here!",
"today": "Today",
"sessions": "{count, plural, =1{{count} session} other{{count} sessions}}",
"@sessions": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"completed": "Completed",
"stoppedEarly": "Stopped early",
"distractions": "{count, plural, =1{distraction} other{distractions}}",
"@distractions": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"focusSettings": "Focus Settings",
"defaultFocusDuration": "Default Focus Duration",
"defaultLabel": "Default",
"about": "About",
"privacyPolicy": "Privacy Policy",
"termsOfService": "Terms of Service",
"aboutFocusBuddy": "About FocusBuddy",
"resetOnboarding": "Reset Onboarding",
"version": "Version 1.0.0 (MVP)",
"privacyPolicyTitle": "Privacy Policy",
"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",
"termsOfServiceTitle": "Terms of Service",
"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",
"close": "Close",
"aboutTitle": "About FocusBuddy",
"aboutSubtitle": "A gentle focus timer for neurodivergent minds",
"aboutQuote": "\"Focus is not about never getting distracted — it's about gently coming back every time you do.\"",
"aboutFeatures": "✨ No punishment for distractions\n💚 Encouragement over criticism\n🔒 100% offline and private\n🌱 Made with care",
"resetOnboardingTitle": "Reset Onboarding?",
"resetOnboardingMessage": "This will show the onboarding screens again when you restart the app.",
"cancel": "Cancel",
"reset": "Reset",
"onboardingReset": "Onboarding reset. Restart the app to see it again.",
"onboarding1Title": "Focus without guilt",
"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.",
"onboarding2Title": "Tap when you get distracted",
"onboarding2Description": "We'll gently remind you to come back.\n\nNo shame. No stress. Just a friendly nudge.",
"onboarding3Title": "Track your progress",
"onboarding3Description": "See how you're improving, one session at a time.\n\nEvery distraction is just data — not failure.",
"skip": "Skip",
"next": "Next",
"getStarted": "Get Started",
"notificationFocusInProgress": "Focus session in progress",
"notificationRemaining": "{time} remaining",
"@notificationRemaining": {
"placeholders": {
"time": {
"type": "String"
}
}
},
"notificationFocusCompleteTitle": "🎉 Focus session complete!",
"notificationFocusCompleteBodyNoDistractions": "You focused for {minutes} {minuteText} without distractions!",
"@notificationFocusCompleteBodyNoDistractions": {
"placeholders": {
"minutes": {
"type": "int"
},
"minuteText": {}
}
},
"notificationFocusCompleteBody": "You focused for {minutes} {minuteText}. Great effort!",
"@notificationFocusCompleteBody": {
"placeholders": {
"minutes": {
"type": "int"
},
"minuteText": {}
}
},
"distractionPhoneNotification": "Phone / Notification",
"distractionSocialMedia": "Social Media",
"distractionThoughts": "Thoughts / Daydream",
"distractionOther": "Other",
"language": "Language",
"selectLanguage": "Select Language",
"english": "English",
"chinese": "中文 (Chinese)",
"japanese": "日本語 (Japanese)",
"korean": "한국어 (Korean)",
"spanish": "Español (Spanish)",
"german": "Deutsch (German)",
"french": "Français (French)",
"portuguese": "Português (Portuguese)",
"russian": "Русский (Russian)",
"hindi": "हिन्दी (Hindi)",
"indonesian": "Bahasa Indonesia (Indonesian)",
"italian": "Italiano (Italian)",
"arabic": "العربية (Arabic)",
"points": "Points",
"@points": {
"description": "Points label"
},
"level": "Level",
"@level": {
"description": "Level label"
},
"checked": "Checked",
"@checked": {
"description": "Already checked in today"
},
"checkIn": "Check In",
"@checkIn": {
"description": "Check in button text"
},
"earnedPoints": "Earned:",
"@earnedPoints": {
"description": "Points earned label on complete screen"
},
"basePoints": "Base Points",
"@basePoints": {
"description": "Base points from focus time"
},
"honestyBonus": "Honesty Bonus",
"@honestyBonus": {
"description": "Bonus points for recording distractions"
},
"totalPoints": "Total Points: {count} ⚡",
"@totalPoints": {
"description": "Total accumulated points",
"placeholders": {
"count": {
"type": "int"
}
}
},
"distractionsRecorded": "({count} {distractionText} recorded)",
"@distractionsRecorded": {
"description": "Number of distractions recorded",
"placeholders": {
"count": {
"type": "int"
},
"distractionText": {}
}
},
"achievementUnlocked": "🎖️ Achievement Unlocked!",
"@achievementUnlocked": {
"description": "Achievement unlocked title"
},
"bonusPoints": "+{points} Points ⚡",
"@bonusPoints": {
"description": "Bonus points awarded",
"placeholders": {
"points": {
"type": "int"
}
}
},
"checkInSuccess": "Check-in successful! +{points} points ⚡",
"@checkInSuccess": {
"description": "Check-in success message",
"placeholders": {
"points": {
"type": "int"
}
}
},
"weeklyStreakBonus": "🎉 Weekly streak bonus!",
"@weeklyStreakBonus": {
"description": "Weekly streak bonus message"
},
"newAchievementUnlocked": "🎖️ New achievement unlocked!",
"@newAchievementUnlocked": {
"description": "New achievement unlocked message"
},
"alreadyCheckedIn": "You have already checked in today! Come back tomorrow 📅",
"@alreadyCheckedIn": {
"description": "Already checked in message"
},
"checkInCalendar": "Check-In Calendar 📅",
"@checkInCalendar": {
"description": "Check-in calendar section title"
},
"checkInToday": "📅 Check In Today",
"@checkInToday": {
"description": "Check in today button"
},
"checkedInToday": "✓ Checked In Today",
"@checkedInToday": {
"description": "Already checked in today status"
},
"currentStreak": "🔥 Current Streak",
"@currentStreak": {
"description": "Current check-in streak label"
},
"longestStreak": "🏆 Longest Streak",
"@longestStreak": {
"description": "Longest check-in streak label"
},
"days": "days",
"@days": {
"description": "Days label"
},
"daysCount": "{count} days",
"@daysCount": {
"description": "Days with count",
"placeholders": {
"count": {
"type": "int"
}
}
},
"achievements": "Achievements 🎖️",
"@achievements": {
"description": "Achievements section title"
},
"viewAllAchievements": "View All Achievements",
"@viewAllAchievements": {
"description": "View all achievements button"
},
"allAchievementsComingSoon": "Full achievements screen coming soon!",
"@allAchievementsComingSoon": {
"description": "Coming soon message for full achievements screen"
},
"profile": "Profile",
"@profile": {
"description": "Profile screen title"
},
"focuser": "Focuser",
"@focuser": {
"description": "Default user name"
},
"pointsToNextLevel": "{points} points to Level {level}",
"@pointsToNextLevel": {
"description": "Points needed to reach next level",
"placeholders": {
"points": {
"type": "int"
},
"level": {
"type": "int"
}
}
},
"achievement_first_session_name": "Focus Newbie",
"@achievement_first_session_name": {
"description": "First session achievement name"
},
"achievement_first_session_desc": "Complete your first focus session",
"@achievement_first_session_desc": {
"description": "First session achievement description"
},
"achievement_sessions_10_name": "Getting Started",
"@achievement_sessions_10_name": {
"description": "10 sessions achievement name"
},
"achievement_sessions_10_desc": "Complete 10 focus sessions",
"@achievement_sessions_10_desc": {
"description": "10 sessions achievement description"
},
"achievement_sessions_50_name": "Focus Enthusiast",
"@achievement_sessions_50_name": {
"description": "50 sessions achievement name"
},
"achievement_sessions_50_desc": "Complete 50 focus sessions",
"@achievement_sessions_50_desc": {
"description": "50 sessions achievement description"
},
"achievement_sessions_100_name": "Focus Master",
"@achievement_sessions_100_name": {
"description": "100 sessions achievement name"
},
"achievement_sessions_100_desc": "Complete 100 focus sessions",
"@achievement_sessions_100_desc": {
"description": "100 sessions achievement description"
},
"achievement_honest_bronze_name": "Honest Tracker · Bronze",
"@achievement_honest_bronze_name": {
"description": "50 distractions achievement name"
},
"achievement_honest_bronze_desc": "Record 50 distractions honestly",
"@achievement_honest_bronze_desc": {
"description": "50 distractions achievement description"
},
"achievement_honest_silver_name": "Honest Tracker · Silver",
"@achievement_honest_silver_name": {
"description": "200 distractions achievement name"
},
"achievement_honest_silver_desc": "Record 200 distractions honestly",
"@achievement_honest_silver_desc": {
"description": "200 distractions achievement description"
},
"achievement_honest_gold_name": "Honest Tracker · Gold",
"@achievement_honest_gold_name": {
"description": "500 distractions achievement name"
},
"achievement_honest_gold_desc": "Record 500 distractions honestly",
"@achievement_honest_gold_desc": {
"description": "500 distractions achievement description"
},
"achievement_marathon_name": "Marathon Runner",
"@achievement_marathon_name": {
"description": "10 hours achievement name"
},
"achievement_marathon_desc": "Accumulate 10 hours of focus time",
"@achievement_marathon_desc": {
"description": "10 hours achievement description"
},
"achievement_century_name": "Century Club",
"@achievement_century_name": {
"description": "100 hours achievement name"
},
"achievement_century_desc": "Accumulate 100 hours of focus time",
"@achievement_century_desc": {
"description": "100 hours achievement description"
},
"achievement_master_name": "Focus Grandmaster",
"@achievement_master_name": {
"description": "1000 hours achievement name"
},
"achievement_master_desc": "Accumulate 1000 hours of focus time",
"@achievement_master_desc": {
"description": "1000 hours achievement description"
},
"achievement_persistence_star_name": "Persistence Star",
"@achievement_persistence_star_name": {
"description": "7 day streak achievement name"
},
"achievement_persistence_star_desc": "Check in for 7 consecutive days",
"@achievement_persistence_star_desc": {
"description": "7 day streak achievement description"
},
"achievement_monthly_habit_name": "Monthly Habit",
"@achievement_monthly_habit_name": {
"description": "30 day streak achievement name"
},
"achievement_monthly_habit_desc": "Check in for 30 consecutive days",
"@achievement_monthly_habit_desc": {
"description": "30 day streak achievement description"
},
"achievement_centurion_name": "Centurion",
"@achievement_centurion_name": {
"description": "100 day streak achievement name"
},
"achievement_centurion_desc": "Check in for 100 consecutive days",
"@achievement_centurion_desc": {
"description": "100 day streak achievement description"
},
"achievement_year_warrior_name": "Year Warrior",
"@achievement_year_warrior_name": {
"description": "365 day streak achievement name"
},
"achievement_year_warrior_desc": "Check in for 365 consecutive days",
"@achievement_year_warrior_desc": {
"description": "365 day streak achievement description"
},
"total": "Total",
"@total": {
"description": "Total label (e.g., total time)"
},
"status": "Status",
"@status": {
"description": "Status label"
},
"pointsBreakdown": "Points Breakdown",
"@pointsBreakdown": {
"description": "Points breakdown section title"
},
"focusTimePoints": "Focus Time",
"@focusTimePoints": {
"description": "Points from focus time label"
},
"focusTimePointsDesc": "1 point per minute of focus",
"@focusTimePointsDesc": {
"description": "Focus time points description"
},
"honestyBonusLabel": "Honesty Bonus",
"@honestyBonusLabel": {
"description": "Honesty bonus label in breakdown"
},
"honestyBonusDesc": "Extra points for recording distractions",
"@honestyBonusDesc": {
"description": "Honesty bonus description"
},
"checkInPoints": "Daily Check-In",
"@checkInPoints": {
"description": "Daily check-in points label"
},
"checkInPointsDesc": "Base points for daily check-in",
"@checkInPointsDesc": {
"description": "Daily check-in points description"
},
"streakBonus": "Streak Bonus",
"@streakBonus": {
"description": "Streak bonus label"
},
"streakBonusDesc": "{days} consecutive check-ins",
"@streakBonusDesc": {
"description": "Streak bonus description",
"placeholders": {
"days": {
"type": "int"
}
}
},
"achievementBonusLabel": "Achievement Bonus",
"@achievementBonusLabel": {
"description": "Achievement bonus points label"
},
"weekdayS": "S",
"@weekdayS": {
"description": "Sunday abbreviation"
},
"weekdayM": "M",
"@weekdayM": {
"description": "Monday abbreviation"
},
"weekdayT": "T",
"@weekdayT": {
"description": "Tuesday abbreviation"
},
"weekdayW": "W",
"@weekdayW": {
"description": "Wednesday abbreviation"
},
"weekdayTh": "T",
"@weekdayTh": {
"description": "Thursday abbreviation"
},
"weekdayF": "F",
"@weekdayF": {
"description": "Friday abbreviation"
},
"weekdaySa": "S",
"@weekdaySa": {
"description": "Saturday abbreviation"
}
}