{
  "onboarding.start": "Let's go",
  "onboarding.maturity.help": "Affects word lists and the chat partner's replies. Changeable any time in Settings.",
  "maturity.pg": "PG",
  "maturity.adult": "18+",
  "settings.learning.maturity": "Content maturity",
  "settings.notifications.title": "Notifications",
  "settings.notifications.push": "Push notifications",
  "settings.notifications.pushOn": "On - you'll get streak reminders and friend pings.",
  "settings.notifications.pushOff": "Off - you won't get push reminders.",
  "settings.notifications.dismissed": "You asked us not to bring this up again. Want to change your mind?",
  "settings.notifications.reenable": "Re-enable the prompt",
  "settings.notifications.perKind": "Per-kind delivery",
  "settings.notifications.none": "No preferences loaded yet.",
  "settings.notifications.notification": "Notification",
  "settings.notifications.inApp": "In-app",
  "settings.notifications.pushColumn": "Push",
  "settings.notifications.saved": "Saving your notification preferences was successful.",
  "settings.notifications.signInHint.before": "Friend & compete alerts need an account.",
  "settings.notifications.signIn": "Sign in",
  "settings.notifications.signInHint.after": "to enable them.",
  "settings.notifications.signInBadge": "sign in",
  "notifications.prefs.title": "Notification preferences",
  "notifications.prefs.help": "Pick which kinds you want as in-app banners and as push notifications. Push only fires when you've also granted browser permission.",
  "notification.kind.streak_at_risk": "Streak at risk",
  "notification.kind.due_for_review": "Words due for review",
  "notification.cta.due_for_review": "Start a vocabulary challenge",
  "notification.kind.weekly_summary": "Weekly summary",
  "notification.kind.achievement_earned": "Achievement earned",
  "notification.kind.follows_follow_received": "New follower",
  "notification.kind.follows_follow_returned": "Follow returned",
  "notification.kind.follows_follow_overtook": "A friend passed you",
  "notification.kind.follows_follow_streak_milestone": "Friend streak milestone",
  "notification.kind.compete_invite": "Compete invite",
  "notification.feed.achievement_earned": "Achievement unlocked",
  "notification.feed.follows_follow_overtook": "A friend overtook you",
  "notification.push.streak_at_risk": "Don't lose your streak!",
  "notification.push.due_for_review": "Time to review",
  "notification.push.weekly_summary": "Your weekly summary",
  "notification.push.achievement_earned": "Achievement unlocked",
  "notification.push.follows_follow_received": "New follower",
  "notification.push.follows_follow_returned": "Follow returned",
  "notification.push.follows_follow_overtook": "Someone overtook you",
  "notification.push.follows_follow_streak_milestone": "Streak milestone",
  "notification.push.compete_invite": "Compete invite",
  "notification.push.fallback": "Open Deutschodoro to see what's new.",
  "notification.body.streak_at_risk": "Your streak is at risk. Play a quick session to keep it alive.",
  "notification.body.due_for_review": "{count} reviews were due.",
  "notification.body.due_for_reviewOne": "{count} review was due.",
  "notification.body.due_for_reviewUnknown": "You had reviews due.",
  "notification.body.weekly_summary": "Your weekly progress summary is ready.",
  "notification.body.achievement_earned": "You unlocked \"{name}\". Nice work!",
  "notification.body.achievement_earnedUnnamed": "You unlocked a new achievement. Nice work!",
  "notification.body.follows_follow_received": "Someone started following you.",
  "notification.body.follows_follow_returned": "Someone followed you back.",
  "notification.body.follows_follow_overtook": "A friend just passed you on the leaderboard.",
  "notification.body.follows_follow_streak_milestone": "A friend reached a streak milestone.",
  "notification.body.compete_invite": "{name} invited you to a Compete duel.",
  "notification.body.compete_inviteCode": "{name} invited you to a Compete duel. Party code: {code}.",
  "notification.body.friend": "A friend",
  "notification.panel.unseen": "{count} unseen",
  "notification.panel.markAllSeen": "Mark all seen",
  "notification.panel.markAllSeenAria": "Mark all as seen",
  "notification.panel.seen": "Seen",
  "notification.panel.markSeenAria": "Mark seen",
  "notification.panel.dismiss": "Dismiss",
  "notification.panel.empty": "You're all caught up.",
  "notification.time.now": "just now",
  "notification.time.minutes": "{count}m ago",
  "notification.time.minutesOne": "{count}m ago",
  "notification.time.hours": "{count}h ago",
  "notification.time.hoursOne": "{count}h ago",
  "notification.time.days": "{count}d ago",
  "notification.time.daysOne": "{count}d ago",
  "notification.time.weeks": "{count}w ago",
  "notification.time.weeksOne": "{count}w ago",
  "settings.learning.title": "Learning",
  "settings.learning.homeLevel": "Home level",
  "settings.learning.homeLevelHelp": "Default CEFR level for new challenges.",
  "settings.learning.glossLanguage": "Gloss language",
  "settings.learning.glossLanguageHelp": "Language used for challenge hints and word details.",
  "settings.learning.dailyGoal": "Daily goal",
  "settings.learning.dailyGoalHelp": "Points needed each day to keep your streak.",
  "settings.learning.timezone": "Timezone",
  "settings.learning.timezoneHelp": "Daily stats and streaks reset at local midnight.",
  "settings.learning.timezoneSaved": "Saving your preferred timezone was successful.",
  "settings.learning.defaultChallenge": "Default challenge type",
  "settings.learning.defaultChallengeHelp": "Picked when you tap \"Start\" without specifying.",
  "settings.learning.audio": "Audio",
  "challenge.idle": "Press start to begin a 10-question challenge.",
  "challenge.start": "Start",
  "challenge.loading": "Building your challenge...",
  "challenge.retry": "Retry",
  "challenge.otherLevel": "This round started at {level}, before you switched to {current}. Your next round will be at {current}.",
  "challenge.submitExpired": "This challenge expired. Start a new one.",
  "challenge.submitForbidden": "Your sign-in changed during this challenge. Start a new one to keep going.",
  "challenge.submitUnsaved": "Your answer was not saved. Try again.",
  "challenge.correct": "Correct:",
  "challenge.retryFinish": "Retry finish",
  "challenge.ruleDetail": "Rule detail",
  "challenge.hide": "Hide",
  "challenge.rules": "Rules",
  "challenge.rulesMistakes": "Rules + mistakes",
  "challenge.commonMistakes": "Common mistakes",
  "challenge.wordDetails": "Word details",
  "challenge.noPlural": "No plural",
  "challenge.next": "Next",
  "challenge.pause": "Pause",
  "challenge.resume": "Resume",
  "challenge.pauseHint": "Pause the countdown (P)",
  "challenge.resumeHint": "Resume the countdown (P)",
  "challenge.finish": "Finish",
  "challenge.wordsToReview": "Words to review",
  "challenge.questionsToReview": "Questions to review",
  "challenge.sentencesToReview": "Sentences to review",
  "challenge.summary.dayProgress": "{points} / {goal} points today",
  "challenge.summary.goalToGo": "{count} points to go today",
  "challenge.summary.goalToGoOne": "{count} point to go today",
  "challenge.summary.goalReached": "Daily goal reached!",
  "challenge.summary.goalReachedHelp": "Your streak is safe for today.",
  "challenge.summary.correctOf": "{correct} of {total} correct",
  "challenge.summary.points": "+{points} points",
  "challenge.summary.triviaNoPoints": "Fewer than half right earns no points. Get at least {needed} of {total} right to score.",
  "challenge.summary.excellent": "Excellent!",
  "challenge.summary.wellDone": "Well done!",
  "challenge.summary.keepPractising": "Keep practising.",
  "challenge.playAgain": "Play again",
  "challenge.home": "Home",
  "challenge.report.title": "Report a problem",
  "challenge.report.wrong": "Wrong answer",
  "challenge.report.ambiguous": "Multiple correct answers",
  "challenge.report.typo": "Typo / spelling",
  "challenge.report.audio": "Audio problem",
  "challenge.report.other": "Other",
  "challenge.report.placeholder": "Describe the issue...",
  "challenge.report.sent": "Thanks! We'll take a look.",
  "challenge.report.send": "Send",
  "challenge.report.close": "Close",
  "challenge.report.cancel": "Cancel",
  "challenge.report.screenshot": "Attach a screenshot (optional)",
  "challenge.report.screenshotHint": "Pick an image or paste one from the clipboard. PNG, JPEG or WebP, up to 5 MB.",
  "challenge.report.screenshotAlt": "Screenshot preview",
  "challenge.report.screenshotRemove": "Remove",
  "challenge.report.screenshotType": "Only PNG, JPEG or WebP images are accepted.",
  "challenge.report.screenshotSize": "The screenshot must be 5 MB or smaller.",
  "challenge.report.screenshotLimit": "You have reached the daily screenshot limit. Send the report without one.",
  "meaning.vulgar": "vulgar",
  "wordDetail.loading": "Loading word details...",
  "wordDetail.close": "Close",
  "wordDetail.present": "Present",
  "wordDetail.preterite": "Preterite",
  "wordDetail.subjunctive2": "Subjunctive II",
  "wordDetail.participle": "Participle II:",
  "wordDetail.imperative": "Imperative:",
  "wordDetail.auxiliary": "Auxiliary:",
  "wordDetail.article": "Article:",
  "wordDetail.plural": "Plural:",
  "wordDetail.genitive": "Genitive:",
  "wordDetail.diminutive": "Diminutive:",
  "wordDetail.comparative": "Comparative:",
  "wordDetail.superlative": "Superlative:",
  "settings.learning.audioOff": "Off - no audio",
  "settings.learning.audioManual": "Manual - play on click",
  "settings.learning.audioAuto": "Auto - autoplay every question",
  "level.A1": "Beginner",
  "level.A2": "Elementary",
  "level.B1": "Intermediate",
  "level.B2": "Upper-Int.",
  "level.C1": "Advanced",
  "level.C2": "Mastery",
  "challengeType.vocabulary.label": "Vocabulary",
  "challengeType.vocabulary.desc": "DE ↔ EN",
  "challengeType.article.label": "Articles",
  "challengeType.article.desc": "der / ein / mein / dieser",
  "challengeType.plural.label": "Plurals",
  "challengeType.plural.desc": "Singular → plural",
  "challengeType.separable.label": "Separable verbs",
  "challengeType.separable.desc": "Separable or not",
  "challengeType.reflexive.label": "Reflexive verbs",
  "challengeType.reflexive.desc": "Pick the pronoun",
  "challengeType.conjugation.label": "Conjugation",
  "challengeType.conjugation.desc": "Verb forms",
  "challengeType.auxiliary.label": "haben or sein",
  "challengeType.auxiliary.desc": "Auxiliaries",
  "challengeType.past-tense.label": "Past tenses",
  "challengeType.past-tense.desc": "Präteritum & Perfekt",
  "challengeType.adjective.label": "Adjective endings",
  "challengeType.adjective.desc": "Declension",
  "challengeType.n-declension.label": "N-declension",
  "challengeType.n-declension.desc": "Weak masculine nouns",
  "challengeType.preposition.label": "Prepositions",
  "challengeType.preposition.desc": "Fill in the gap",
  "challengeType.conjunction.label": "Conjunctions",
  "challengeType.conjunction.desc": "Connect clauses",
  "challengeType.fixed-expression.label": "Fixed expressions",
  "challengeType.fixed-expression.desc": "Match the meaning",
  "challengeType.regional-word.label": "Regional words",
  "challengeType.regional-word.desc": "Austrian and Swiss words",
  "dialectRegion.AT": "Austria",
  "dialectRegion.CH": "Switzerland",
  "regionalWord.regions": "Regions: {regions}",
  "regionalWord.change": "Change",
  "regionalWord.picker.title": "Which regions?",
  "regionalWord.picker.help": "Pick the regions whose words you want to learn.",
  "regionalWord.picker.start": "Start",
  "regionalWord.picker.save": "Save",
  "regionalWord.picker.cancel": "Cancel",
  "challengeType.word-order.label": "Word order",
  "challengeType.word-order.desc": "Build the sentence",
  "challenge.wordOrder.meaning": "Meaning: \"{meaning}\"",
  "challenge.wordOrder.germanInstruction": "Build a meaningful sentence from the words.",
  "challenge.wordOrder.answer": "Your sentence",
  "challenge.wordOrder.placeholder": "Tap words below to build the sentence",
  "challenge.wordOrder.soup": "Available words",
  "challenge.wordOrder.clear": "Clear",
  "challenge.wordOrder.check": "Check",
  "challengeType.matching.label": "Matching",
  "challengeType.matching.desc": "Match the pairs",
  "challenge.matching.set": "Set {current} of {total}",
  "challengeType.dictation.label": "Dictation",
  "challengeType.dictation.desc": "Hear it, type it",
  "challengeType.pronunciation.label": "Pronunciation",
  "challengeType.pronunciation.desc": "Hear it, say it",
  "challenge.audio.listen": "Listen to the whole text",
  "challenge.audio.tapSpeaker": "Tap the speaker to hear the whole text first, or just start.",
  "challenge.audio.start": "START",
  "challenge.audio.getReady": "Get ready…",
  "challenge.audio.tapToStart": "tap to start now",
  "challenge.audio.sentence": "SENTENCE {no} / {total}",
  "challenge.audio.playing": "Playing…",
  "challenge.audio.replay": "Play again",
  "challenge.audio.scoring": "Scoring…",
  "challenge.audio.checking": "Checking your sentences.",
  "challenge.audio.skip": "Skip this sentence",
  "challenge.audio.playAgain": "PLAY AGAIN ↺",
  "challenge.audio.overview": "BACK TO OVERVIEW",
  "challenge.control.playAudio": "Play audio (shortcut: A)",
  "challenge.control.audioMuted": "Audio is muted (toggle in header)",
  "challenge.control.noAudio": "No audio for this question",
  "challenge.control.showHint": "Show hint",
  "challenge.control.noHint": "No hint for this question",
  "challenge.dictation.overline": "DICTATION · {level}",
  "challenge.dictation.prompt": "Type what you hear.",
  "challenge.dictation.placeholder": "Type what you hear…",
  "challenge.dictation.enterHint": "Enter to submit · moves on automatically",
  "challenge.dictation.complete": "DICTATION COMPLETE",
  "challenge.pronunciation.overline": "PRONUNCIATION · {level}",
  "challenge.pronunciation.prompt": "Say what you hear.",
  "challenge.pronunciation.record": "Record your answer",
  "challenge.pronunciation.stop": "Stop recording",
  "challenge.pronunciation.recording": "Recording… tap to stop",
  "challenge.pronunciation.readyHint": "Tap submit, or re-record.",
  "challenge.pronunciation.idleHint": "Tap the mic and say the sentence.",
  "challenge.pronunciation.play": "Play",
  "challenge.pronunciation.redo": "Redo",
  "challenge.pronunciation.submit": "Submit",
  "challenge.pronunciation.complete": "PRONUNCIATION COMPLETE",
  "challenge.pronunciation.micUnsupported": "Recording is not supported in this browser.",
  "challenge.pronunciation.micDenied": "Microphone permission denied. Enable it to record.",
  "challenge.pronunciation.micError": "Could not access the microphone.",
  "challengeType.trivia.label": "Trivia",
  "challengeType.trivia.desc": "German trivia",
  "sidebar.trivia": "Trivia",
  "trivia.allCategories": "All categories",
  "trivia.allCategoriesDesc": "Every topic mixed",
  "trivia.category.animals-nature": "Animals & Nature",
  "trivia.category.art": "Art",
  "trivia.category.athletes": "Athletes",
  "trivia.category.fashion": "Fashion",
  "trivia.category.food": "Food",
  "trivia.category.history": "History",
  "trivia.category.landmarks": "Landmarks",
  "trivia.category.movies": "Movies",
  "trivia.category.music": "Music",
  "trivia.category.mythology": "Mythology",
  "trivia.category.scientists": "Scientists",
  "trivia.category.space": "Space",
  "trivia.category.tv": "TV Shows",
  "trivia.category.video-games": "Video Games",
  "challengeType.random.label": "Random",
  "challengeType.random.desc": "Surprise me",
  "challenge.unavailable.overline": "CHALLENGE · {name}",
  "challenge.unavailable.range": "available at",
  "challenge.unavailable.title": "Not available with your current settings",
  "challenge.unavailable.dictation.C1": "Dictation is designed for A1 through B2. At C1 and above, transcribing clearly spoken audio no longer stretches your listening.",
  "challenge.unavailable.dictation.C2": "Dictation is designed for A1 through B2. At C1 and above, transcribing clearly spoken audio no longer stretches your listening.",
  "challenge.unavailable.separable.C1": "Separable verb practice is designed for A1 through B2. At C1 and above, focus shifts to more advanced verb structures.",
  "challenge.unavailable.separable.C2": "Separable verb practice is designed for A1 through B2. At C1 and above, focus shifts to more advanced verb structures.",
  "challenge.unavailable.fixed-expression.A1": "Fixed-expression practice starts at A2.",
  "challenge.unavailable.n-declension.A1": "N-declension practice starts at B1.",
  "challenge.unavailable.n-declension.A2": "N-declension practice starts at B1.",
  "challenge.unavailable.trivia.A1": "Trivia starts at A2 because there is no A1 trivia content yet.",
  "challenge.unavailable.trivia.C1": "Trivia is currently available through B2.",
  "challenge.unavailable.trivia.C2": "Trivia is currently available through B2.",
  "challenge.unavailable.changeLevel": "Change level",
  "challenge.unavailable.backHome": "Back home",
  "nav.account": "Account",
  "nav.accountMenu": "Account menu",
  "nav.settings": "Settings",
  "nav.signIn": "Sign in",
  "nav.signedIn": "Signed in",
  "nav.viewProfile": "View profile",
  "nav.pickUsername": "Pick a username",
  "nav.signOut": "Sign out",
  "nav.deleteAccount": "Delete account",
  "nav.toggleTheme": "Toggle light/dark theme",
  "nav.lang.title": "Helper language",
  "nav.lang.heading": "Helper language",
  "nav.lang.enforced": "From B2 on, help is in German",
  "nav.level": "Level",
  "nav.more": "More",
  "nav.notifications": "Notifications",
  "nav.notificationSettings": "Notification settings",
  "nav.theme.light": "Light",
  "nav.theme.dark": "Dark",
  "nav.audio.off": "Off",
  "nav.audio.manual": "Manual",
  "nav.audio.auto": "Auto",
  "sidebar.courses": "Courses",
  "sidebar.new": "New",
  "sidebar.storyLessons": "Story-driven German lessons",
  "sidebar.challengeTypes": "Challenge types",
  "sidebar.showAll": "Show all {count}",
  "sidebar.selectedCount": "{count} selected",
  "sidebar.typesCount": "{count} challenge types",
  "sidebar.typesCountOne": "{count} challenge type",
  "sidebar.categoriesCount": "{count} categories",
  "sidebar.categoriesCountOne": "{count} category",
  "sidebar.showLess": "Show less",
  "sidebar.modes": "Modes",
  "mode.home": "Home",
  "mode.courses": "Courses",
  "mode.tv": "TV",
  "mode.germanTv": "German TV",
  "mode.friends": "Friends",
  "mode.compete": "Compete",
  "mode.profile": "Profile",
  "home.continueLesson": "Continue lesson",
  "home.resume": "Resume",
  "home.noLesson": "No lesson in progress",
  "home.noLessonHelp": "Start a course to learn German through stories.",
  "home.browseCourses": "Browse courses",
  "home.today": "Today",
  "home.overall": "Overall",
  "home.streak": "Streak",
  "home.goal": "goal",
  "home.pointsAllTime": "points all-time",
  "home.daysInRow": "days in a row",
  "home.daysInRowOne": "day in a row",
  "home.roundsToday": "{count} challenges today",
  "home.roundsTodayOne": "{count} challenge today",
  "home.goalProgress": "{points} / {goal} points",
  "home.goalToGo": "{count} to go",
  "home.goalInProgress": "Daily goal in progress",
  "home.goalNotMet": "Daily goal not met",
  "home.weekAria": "{count} of the last 7 days at goal",
  "home.goalReached": "Daily goal reached",
  "home.goalAria": "Daily goal: {points} of {goal} points",
  "home.quickChallenges": "Quick challenges",
  "home.singleSkill": "Single-skill practice",
  "right.stats": "Stats",
  "right.week": "Week",
  "right.friendsToday": "Friends today",
  "right.chatAd.eyebrow": "New",
  "right.chatAd.badge": "Free",
  "right.chatAd.badgeSub": "for now",
  "right.chatAd.title": "Speak German, live",
  "right.chatAd.cta": "Start a chat",
  "right.chatAd.urgency": "Free while we launch. Not forever.",
  "right.chatAd.ctaAnon": "Sign in and chat",
  "right.chatAd.urgencyAnon": "Free while we launch. An account is all it takes.",
  "right.chatAd.aisha": "Talking your way in is a skill. Practice it free, while the door is open.",
  "right.chatAd.jan": "First order a Brötchen. Then order the whole bakery. Still free.",
  "right.chatAd.memo": "I forget names, never grammar. Ten minutes a day, no charge yet.",
  "right.chatAd.katrin": "I crash cars, not conversations. Free practice, no insurance needed.",
  "right.chatAd.lukas": "Everyone stares at me anyway. Give them something worth hearing.",
  "right.chatAd.basti": "Questioning people is my job. Practice the answers before I ask.",
  "right.chatAd.paywall": "The paywall is not up yet. Use the gap while it lasts.",
  "right.chatAd.crew": "The whole crew agrees on one thing: talk now, while it costs nothing.",
  "right.competeWithFriends": "Compete with friends",
  "right.competeHelp": "Follow friends, compare streaks, and challenge each other to stay motivated.",
  "right.followWithFriends": "Follow your friends",
  "right.followHelp": "Follow friends and compare streaks to keep each other motivated.",
  "right.signInStart": "Sign in to get started",
  "right.you": "You",
  "right.todayShort": "today",
  "right.dayStreak": "d streak",
  "right.dayStreakOne": "d streak",
  "right.noFriends": "No friends yet.",
  "right.weeklyLeague": "Weekly League →",
  "right.noRankings": "No rankings yet.",
  "tv.intro": "Catalogue with community-voted quality + level cohort.",
  "tv.signInToVote": "Voting requires sign-in.",
  "tv.genre": "Genre",
  "tv.all": "All",
  "tv.loadingShows": "Loading shows...",
  "tv.noShows": "No shows seeded. Run go run ./cmd/cli seed-tv.",
  "tv.noMatches": "No shows match the current filters.",
  "tv.mostVoted": "Most voted",
  "tv.topRated": "Top-rated by the community.",
  "tv.votes": "votes",
  "tv.votesOne": "vote",
  "tv.noVotes": "No votes yet",
  "tv.loading": "Loading...",
  "tv.close": "Close",
  "tv.notFound": "Show not found",
  "tv.notFoundHelp": "This show does not exist or is no longer available.",
  "tv.backToShows": "Back to all shows",
  "tv.loadError": "Could not load this show.",
  "tv.retry": "Retry",
  "tv.inAppVotes": "in-app",
  "tv.noInAppVotes": "No in-app votes yet",
  "tv.yourRating": "Your rating",
  "tv.yourLevel": "Your level",
  "tv.watchRead": "Watch / read",
  "settings.appearance.title": "Appearance",
  "settings.appearance.theme": "Theme",
  "settings.appearance.themeHelp": "Colour scheme applied across the app.",
  "settings.appearance.zoom": "Zoom",
  "settings.appearance.zoomHelp": "Scale every page (80% to 150%).",
  "settings.contact.title": "Support",
  "settings.contact.email": "Contact / report a problem",
  "settings.contact.discord": "Join the community on Discord",
  "settings.account.title": "Account",
  "settings.account.displayName": "Display name",
  "settings.account.handle": "Handle",
  "settings.account.handleRenameWindow": "You can change your handle once within 30 days of claiming it.",
  "settings.account.save": "Save",
  "settings.account.signInSync": "Your data is stored on this device.",
  "settings.account.signInSyncAction": "Sign in",
  "settings.account.signInSyncAfter": "to sync across devices.",
  "settings.account.signedInWorkOS": "Signed in via WorkOS.",
  "profile.notFound": "Profile not found",
  "profile.notFoundHelp": "No learner with that handle. They may not have picked a username yet.",
  "profile.backHome": "Back home",
  "profile.loadFailed": "Could not load this profile.",
  "profile.tryAgain": "Try again",
  "notFound.title": "Page not found",
  "notFound.help": "This page does not exist or the link is broken.",
  "notFound.backHome": "Back home",
  "profile.editProfile": "Edit profile",
  "profile.signInToFollow": "Sign in to follow",
  "profile.follow": "Follow",
  "profile.following": "Following",
  "profile.friendsCheck": "Friends ✓",
  "profile.challenges": "Challenges",
  "profile.perfectRounds": "Perfect challenges",
  "profile.achievements": "Achievements",
  "profile.noAchievements": "No achievements to show yet.",
  "profile.achievementsOutOf": "{earned} of {total}",
  "profile.achievementsEarned": "{count} earned",
  "profile.recentAchievements": "Recently earned",
  "profile.nextAchievements": "Next achievements",
  "profile.viewAllAchievements": "View all",
  "profile.showLessAchievements": "Show less",
  "profile.achievementGroup.practice": "Practice",
  "profile.achievementGroup.streaks": "Streaks",
  "profile.achievementGroup.social": "Social",
  "profile.achievementGroup.competition": "Competition",
  "profile.achievementGroup.courses": "Courses",
  "profile.achievementGroup.exploration": "Exploration",
  "profile.fadingWords": "Words to review",
  "profile.fadingWordsHelp": "These words are overdue or were missed recently.",
  "profile.noFadingWords": "You're caught up. Words that need a refresh will appear here.",
  "profile.wordsDue": "Next {count}",
  "profile.wordsDueOne": "Next word",
  "profile.reviewWord": "Review",
  "profile.drillThese": "Review these words",
  "profile.reviewMissedToday": "Missed today",
  "profile.reviewMissedYesterday": "Missed once yesterday",
  "profile.reviewMissedDaysAgo": "Missed once {count} days ago",
  "profile.reviewMissedTimes": "Missed {count} times recently",
  "profile.reviewOverdueDay": "1 day overdue",
  "profile.reviewOverdueDays": "{count} days overdue",
  "profile.reviewNeedsRefresh": "Needs a refresh",
  "profile.memberSince": "member since {date}",
  "profile.best": "best",
  "profile.friendsLabel": "friends",
  "profile.friendsLabelOne": "friend",
  "profile.followersLabel": "followers",
  "profile.followersLabelOne": "follower",
  "profile.followingLabel": "following",
  "profile.allTime": "all time",
  "profile.sessions1010": "10/10 challenges",
  "profile.activity": "Activity",
  "profile.streakAtRisk": "Streak at risk today",
  "compete.matchSetup": "Duel setup",
  "compete.mode": "Mode",
  "compete.challenge": "Challenge",
  "compete.level": "Level",
  "compete.quickMatch": "Matchmaking",
  "compete.quickMatchHelp": "Get paired with another learner queuing for the same challenge and level.",
  "compete.findMatch": "Find a duel",
  "compete.playFriend": "Play a friend",
  "compete.notifyFriend": "Notify a friend (optional)",
  "compete.noInvite": "No invite - just share the code",
  "compete.createRoom": "Start a party",
  "compete.orJoin": "or join with a code",
  "compete.join": "Join",
  "compete.looking": "Looking for another player...",
  "compete.cancel": "Cancel",
  "compete.rounds": "rounds",
  "compete.points": "points",
  "compete.youWon": "You won! 🏆",
  "compete.youLost": "You lost",
  "compete.draw": "It's a draw",
  "compete.abandoned": "Duel abandoned",
  "friends.findLabel": "Find a friend by username",
  "friends.findPlaceholder": "@username",
  "friends.openProfile": "Open profile",
  "friends.findHelp": "Open their profile, then follow them.",
  "friends.unfollow": "Unfollow",
  "friends.following": "Following",
  "friends.followers": "Followers",
  "friends.noFollowing": "You are not following anyone yet.",
  "friends.noFollowers": "Nobody follows you yet.",
  "friends.signIn.title": "Friends come with an account",
  "friends.signIn.body": "Following other learners and comparing streaks needs somewhere to live: your account. Signing in takes a moment and keeps your progress on every device.",
  "discord.joinBlurb": "Practise with other learners, ask questions and share feedback in our Discord community.",
  "discord.joinCta": "Join us on Discord",
  "compete.signIn.title": "Compete comes with an account",
  "compete.signIn.body": "A duel pairs you with another learner in real time, so both sides need an account to play from. Signing in takes a moment and is free.",
  "pomodoro.pause": "Pause Pomodoro",
  "pomodoro.start": "Start Pomodoro",
  "pomodoro.title": "Pomodoro",
  "pomodoro.total": "Total",
  "pomodoro.practice": "Practice",
  "pomodoro.reset": "Reset timer",
  "pomodoro.hideDial": "Hide Pomodoro dial",
  "pomodoro.showDial": "Show Pomodoro dial",
  "pomodoro.legendFocus": "{min} min focus",
  "pomodoro.legendPractice": "{min} min practice",
  "pomodoro.setTotal": "Set total session to {min} minutes",
  "pomodoro.setPractice": "Set practice to {min} minutes",
  "auth.signedInAnotherTab": "You signed in in another tab.",
  "auth.signedOutAnotherTab": "You signed out in another tab.",
  "auth.reload": "Reload",
  "auth.welcomeBack": "Welcome back",
  "auth.createAccount": "Create your account",
  "auth.signInHelp": "Sign in to sync progress and unlock more challenges.",
  "auth.createHelp": "Save your streak across devices. Free forever.",
  "auth.chatHelp": "Sign in to talk German with your own partner. Free while we launch.",
  "auth.continueGoogle": "Continue with Google",
  "auth.continueMicrosoft": "Continue with Microsoft",
  "auth.continueApple": "Continue with Apple",
  "auth.orEmail": "or email",
  "auth.continueEmail": "Continue with email",
  "auth.newHere": "New here?",
  "auth.haveAccount": "Have an account?",
  "auth.securedBy": "Secured by",
  "mode.wordgroups": "Word lists",
  "wordgroups.chooseTitle": "Choose your topics",
  "wordgroups.intro": "Browse themed word lists and practice the words that matter to you.",
  "wordgroups.active": "active",
  "wordgroups.ofGroups": "of {count} lists",
  "wordgroups.ofGroupsOne": "of {count} list",
  "wordgroups.detailSubtitle": "Themed vocabulary",
  "wordgroups.searchLabel": "Search list names and German words",
  "wordgroups.searchPlaceholder": "Search list names and German words",
  "wordgroups.prefixNote": "1-2 letters match whole words; prefix search starts at 3.",
  "wordgroups.showMore": "Show {count} more words",
  "wordgroups.showMoreOne": "Show {count} more word",
  "wordgroups.moreMatches": "{count} more matched",
  "wordgroups.moreMatchesOne": "{count} more matched",
  "wordgroups.wordsLoading": "Searching German words...",
  "wordgroups.wordsError": "Could not search German words.",
  "wordgroups.categoryFilter": "Filter by category",
  "wordgroups.all": "All",
  "wordgroups.loading": "Loading word lists...",
  "wordgroups.loadingDetail": "Loading word list...",
  "wordgroups.loadError": "Could not load word lists.",
  "wordgroups.detailError": "Could not load this word list.",
  "wordgroups.notFound": "Word list not found",
  "wordgroups.notFoundHelp": "This list does not exist or is no longer available.",
  "wordgroups.selectionError": "Could not update this word list. Try again.",
  "wordgroups.retry": "Retry",
  "wordgroups.empty": "No word lists match your search.",
  "wordgroups.words": "words",
  "wordgroups.wordsOne": "word",
  "wordgroups.mature": "18+",
  "wordgroups.matureLabel": "Adults only (18+)",
  "wordgroups.view": "View list",
  "wordgroups.viewAll": "View all",
  "wordgroups.noneSelected": "No lists selected yet.",
  "wordgroups.browseAll": "Browse all lists",
  "wordgroups.add": "Add list",
  "wordgroups.remove": "Remove list",
  "wordgroups.inList": "In your list",
  "wordgroups.practice": "Practice",
  "wordgroups.back": "All word lists",
  "wordgroups.preview": "Word preview",
  "wordgroups.previewCount": "Preview: {shown} of {count} words",
  "wordgroups.previewCountOne": "Preview: {shown} of {count} word",
  "wordgroups.german": "German",
  "wordgroups.translation": "Translation",
  "wordgroups.level": "Level",
  "wordgroups.showAboveLevel": "Show meanings above your level ({count})",
  "wordgroups.hideAboveLevel": "Hide meanings above your level ({count})",
  "wordgroups.aboveLevelHint": "Applies to every word list",
  "wordgroups.noWords": "No words are available in this list.",
  "wordgroups.category.Everyday": "Everyday",
  "wordgroups.category.Food": "Food",
  "wordgroups.category.Home": "Home",
  "wordgroups.category.People": "People",
  "wordgroups.category.Health": "Health",
  "wordgroups.category.Work": "Work",
  "wordgroups.category.Travel": "Travel",
  "wordgroups.category.Animals": "Animals",
  "wordgroups.category.Nature": "Nature",
  "wordgroups.category.Sports": "Sports",
  "wordgroups.category.Culture": "Culture",
  "wordgroups.category.Tech": "Tech",
  "wordgroups.category.Society": "Society",
  "wordgroups.category.Education": "Education",
  "wordgroups.category.Clothing": "Clothing",
  "wordgroups.category.Language": "Language",
  "band.wordgroups.overline": "MODE · WORD LISTS",
  "band.wordgroups.title": "Word lists",
  "band.home.overline": "OVERVIEW · {level}",
  "band.home.title": "Good day.",
  "band.home.sub": "Streak - keep going",
  "band.home.streakDays": "{count} days",
  "band.home.streakDaysOne": "{count} day",
  "band.challenge.overline": "CHALLENGE · {level}{desc}",
  "band.challenge.overlineNoLevel": "CHALLENGE{desc}",
  "band.challenge.title": "Challenge",
  "band.challenge.randomStat": "Random",
  "band.challenge.randomSub": "Random mix",
  "band.courses.overline": "MODE · COURSES",
  "band.courses.title": "Courses",
  "band.course.overline": "MODE · COURSE",
  "band.course.title": "Course",
  "band.lesson.overline": "MODE · LESSON",
  "band.lesson.title": "Lesson",
  "band.tv.overline": "MODE · CATALOGUE",
  "band.tv.title": "German TV",
  "band.friends.overline": "MODE · FRIENDS",
  "band.friends.title": "Friends",
  "band.profile.overline": "PROFILE",
  "band.profile.title": "Profile",
  "band.compete.overline": "MODE · WEEKLY LEAGUE",
  "band.compete.title": "Compete",
  "band.settings.overline": "ACCOUNT & APP",
  "band.settings.title": "Settings",
  "common.done": "Done",
  "wordDetail.notes": "Note:",
  "wordDetail.declension": "Declension",
  "wordDetail.declensionNote": "A nominalized adjective: the article follows the person described, and the ending changes with it.",
  "wordDetail.siblings": "Siblings:",
  "wordDetail.siblingsNote": "The same word, split into separate entries because the meanings take different grammar. Tap one to compare.",
  "wordDetail.definite": "definite",
  "wordDetail.indefinite": "indefinite",
  "case.nominative": "Nominative",
  "case.accusative": "Accusative",
  "case.dative": "Dative",
  "case.genitive": "Genitive",
  "gender.male": "masculine",
  "gender.female": "feminine",
  "gender.neutral": "neuter",
  "gender.plural": "plural",
  "grammar.positive": "positive form",
  "grammar.comparative": "comparative",
  "grammar.superlative": "superlative",
  "grammar.singular": "singular",
  "grammar.plural": "plural",
  "grammar.predicative": "predicative",
  "grammar.form": "form",
  "onboarding.welcome": "Welcome",
  "onboarding.deepLink": "Quick one-time setup for this device. The page you opened loads right after.",
  "onboarding.step": "Step {step} of {total}",
  "onboarding.back": "Back",
  "onboarding.next": "Next",
  "onboarding.lang.title": "Your language",
  "onboarding.lang.subtitle": "Which language should hints and translations be in?",
  "onboarding.level.title": "Your level",
  "onboarding.level.subtitle": "So we can pick exercises at the right difficulty.",
  "onboarding.level.help": "Not sure? Pick something lower - you can change your level any time from the top bar.",
  "onboarding.level.hint": "Choose a level",
  "onboarding.age.title": "Your age",
  "onboarding.age.subtitle": "Just the age group, so the content fits.",
  "onboarding.age.help": "We ask for an age group, never a date of birth. It only decides which content you are shown, and is never public.",
  "onboarding.age.hint": "Choose an age group",
  "onboarding.maturity.title": "18+ content",
  "onboarding.maturity.subtitle": "Would you like to see adult content too?",
  "onboarding.maturity.hint": "Please choose an option",
  "onboarding.maturity.noTitle": "No, hide it",
  "onboarding.maturity.noDesc": "Only content suitable for all ages.",
  "onboarding.maturity.yesTitle": "Yes, show 18+ content",
  "onboarding.maturity.yesDesc": "Includes swearing and adult themes.",
  "level.desc.A1": "First words and sentences - you are just starting out.",
  "level.desc.A2": "Shopping, directions, small talk.",
  "level.desc.B1": "Handle everyday life, follow simple texts.",
  "level.desc.B2": "Hold discussions, follow the news.",
  "level.desc.C1": "Fluent at work, comfortable with complex texts.",
  "level.desc.C2": "Near-native, nuance included.",
  "settings.learning.maturityMinor": "18+ content is not available for your age group.",
  "matureOptIn.hidden": "18+ content is hidden.",
  "matureOptIn.show": "Show 18+ content",
  "matureOptIn.cancel": "Not now",
  "matureOptIn.done": "Done",
  "settings.learning.age": "Age group",
  "settings.learning.ageUnset": "Not set",
  "settings.learning.ageChoose": "Choose age group",
  "settings.learning.dialectRegions": "Regional words",
  "settings.learning.dialectRegionsUnset": "Not set",
  "grammar.strong": "strong",
  "grammar.weak": "weak",
  "grammar.mixed": "mixed",
  "grammar.definite": "definite article",
  "grammar.indefinite": "indefinite article",
  "grammar.negation": "negative article",
  "grammar.possessive": "possessive article",
  "grammar.demonstrative": "demonstrative article",
  "challenge.articleForm": "Article form",
  "help.adjective.predicative": "After sein the adjective takes no ending.",
  "help.case.nominative": "Nominative: the subject.",
  "help.case.accusative": "Accusative: the direct object.",
  "help.case.dative": "Dative: the indirect object.",
  "help.case.genitive": "Genitive: possession.",
  "rule.adjStrong.title": "strong declension (no article)",
  "rule.adjStrong.text": "No article, so the adjective carries the case and gender signal itself: strong endings.",
  "rule.adjStrong.mistakes": "Dative masculine/neuter is -em: kaltem Wasser.\nGenitive masculine/neuter is -en, not -es: trotz starken Regens.",
  "rule.adjWeak.title": "weak declension (after der/die/das)",
  "rule.adjWeak.text": "der/die/das already shows case and gender, so the adjective only takes -e or -en.",
  "rule.adjWeak.mistakes": "der schöne Hund, never der schöner Hund.\nAll plurals and all datives take -en.",
  "rule.adjMixedEin.title": "mixed declension (after ein)",
  "rule.adjMixedEin.text": "After ein-words: strong where ein shows nothing (nominative masculine, nominative/accusative neuter), weak everywhere else.",
  "rule.adjMixedEin.mistakes": "ein guter Mann, but der gute Mann.\nOutside those three slots, everything singular ends in -e or -en.",
  "rule.adjMixedKein.title": "mixed declension (after kein)",
  "rule.adjMixedKein.text": "kein declines like ein: strong where the article shows nothing, weak everywhere else.",
  "rule.adjMixedKein.mistakes": "kein gutes Buch, but das gute Buch.\nkein has plural forms too: keine klugen Ideen.",
  "rule.adjPredicative.title": "predicative adjective (after sein)",
  "rule.adjPredicative.text": "After sein/werden/bleiben the adjective takes no ending. Comparative: -er. Superlative: am ...-sten.",
  "rule.adjPredicative.mistakes": "Der Hund ist klein, never kleiner to match the noun.\nThe comparative is klüger, not mehr klug.",
  "rule.adjIndeclinable.title": "indeclinable adjective",
  "rule.adjIndeclinable.text": "rosa, lila, prima and a few other loanwords never take endings: the dictionary form fits every case, gender and number.",
  "rule.auxHaben.title": "haben as the Perfekt helper",
  "rule.auxHaben.text": "haben is the default: every verb with an accusative object, every reflexive verb, all modal verbs, and verbs describing an activity rather than a change of place or state.",
  "rule.auxHaben.mistakes": "Ich habe geschlafen, not ich bin geschlafen: staying asleep is no change of state.\nThe Plusquamperfekt uses the same helper in the Präteritum: ich hatte geschlafen.",
  "rule.auxSein.title": "sein as the Perfekt helper",
  "rule.auxSein.text": "sein takes the Perfekt of verbs of motion from A to B (gehen, fahren, kommen, fliegen), verbs of change of state (aufstehen, einschlafen, sterben, aufwachen), and sein, werden and bleiben themselves.",
  "rule.auxSein.mistakes": "Er ist gefahren, not er hat gefahren, when no object is named.\nThe Plusquamperfekt uses the same helper in the Präteritum: er war gefahren.",
  "rule.pastWeak.title": "weak (regular) verbs",
  "rule.pastWeak.text": "Weak verbs keep their stem: the Präteritum is stem + -te plus the personal ending, and the Partizip II is ge- + stem + -t. machen, machte, gemacht; lernen, lernte, gelernt.",
  "rule.pastWeak.mistakes": "Stems in -d/-t insert an e: arbeiten, arbeitete, gearbeitet.\nInseparable prefixes drop the ge-: verkaufen, verkaufte, verkauft.",
  "rule.pastStrong.title": "strong and mixed verbs",
  "rule.pastStrong.text": "Strong verbs change the stem vowel in the Präteritum and end the Partizip II in -en: gehen, ging, gegangen; sprechen, sprach, gesprochen. Mixed verbs do both, taking the -te ending on a changed stem: denken, dachte, gedacht.",
  "rule.pastStrong.mistakes": "The Präteritum of a strong verb takes no -te: ich ging, never ich gingte.\n1st and 3rd person singular are identical in the Präteritum: ich ging, er ging.",
  "rule.pastPresentFromPast.title": "reading the present off the past",
  "rule.pastPresentFromPast.text": "A strong verb's three principal parts (infinitive, Präteritum, Partizip II) each carry their own stem vowel, and the present adds a fourth change in the du and er/sie/es forms: ging comes from gehen, so the present is geht; sprach comes from sprechen, so it is spricht.",
  "rule.pastPresentFromPast.mistakes": "The past stem is not the present stem: ging gives geht, not gieht.\ne -> i/ie and a -> ä appear only in the du and er/sie/es forms: du sprichst, but wir sprechen.",
  "rule.pluralCountWarning": "But not when counting: after a number this unit stays singular - fünf {countPlural}, never fünf {plural}.",
  "rule.pluralCountingUnit.badge": "no plural",
  "rule.pluralCountingUnit.mistakes": "die {plural} is right in every other context; only the counted phrase drops the plural\nFeminine units do take the plural: zwei Flaschen Wein, drei Tassen Kaffee, fünf Minuten\nIt is the unit that stays singular, not what is measured: fünf Glas Wein, but fünf Gläser standing on the table",
  "rule.pluralCountingUnit.text": "Masculine and neuter nouns for currencies, weights and measures stay in the singular after a number: fünf {countPlural}, not fünf {plural}. Away from counting, {article} {german} takes its ordinary plural die {plural} (50 Cent, 30 Grad, 100 Gramm; but die Cents in seiner Hand).",
  "rule.pluralCountingUnit.title": "counting unit",
  "rule.pluralDiminutive.badge": "no ending",
  "rule.pluralDiminutive.text": "Diminutives in -chen and -lein never change in the plural; the article alone does the work: das Mädchen, die Mädchen.",
  "rule.pluralDiminutive.title": "diminutive",
  "rule.pluralFemaleIn.badge": "-nen",
  "rule.pluralFemaleIn.mistakes": "An -(e)n plural never takes umlaut",
  "rule.pluralFemaleIn.text": "The female suffix -in doubles its n in the plural: die Lehrerin, die Lehrerinnen; die Königin, die Königinnen.",
  "rule.pluralFemaleIn.title": "female -in",
  "rule.pluralFeminineDefault.badge": "-(e)n",
  "rule.pluralFeminineDefault.mistakes": "About 35 one-syllable feminines take umlaut + -e instead: die Hand, die Hände; die Stadt, die Städte; die Nacht, die Maus, die Wurst\ndie Mutter and die Tochter umlaut only: die Mütter, die Töchter",
  "rule.pluralFeminineDefault.text": "About 90% of feminine nouns form the plural with -(e)n, and an -(e)n plural never takes umlaut: die Lampe, die Lampen; die Frau, die Frauen.",
  "rule.pluralFeminineDefault.title": "feminine default",
  "rule.pluralFeminineE.badge": "-e",
  "rule.pluralFeminineE.text": "Unusual: most feminines take -(e)n, and the umlaut + -e group covers most of the rest. A plain feminine -e plural is rare; memorize it.",
  "rule.pluralFeminineE.title": "feminine -e",
  "rule.pluralFeminineUmlautE.badge": "-e + umlaut",
  "rule.pluralFeminineUmlautE.mistakes": "Most other feminines take -(e)n without umlaut; the exceptions are rare (die Mütter, die Töchter, die Omas)",
  "rule.pluralFeminineUmlautE.text": "This is one of about 35 one-syllable feminines that take umlaut + -e instead of the feminine -(e)n default: die Hand, die Hände; die Stadt, die Städte; die Nacht, die Maus, die Wurst, die Kraft. The list is closed; memorize its members.",
  "rule.pluralFeminineUmlautE.title": "feminine umlaut + -e",
  "rule.pluralIrregular.badge": "{article}",
  "rule.pluralIrregular.text": "The plural of {article} {german} does not follow one of the five regular markers (-e, -er, -(e)n, -s, no ending); memorize {plural} together with the noun.",
  "rule.pluralIrregular.title": "irregular plural",
  "rule.pluralMasculineE.badge": "-e",
  "rule.pluralMasculineE.mistakes": "Compare der Stuhl, die Stühle: whether a masculine -e plural umlauts must be memorized per word",
  "rule.pluralMasculineE.text": "Masculine default: add -e. About half of the masculines with a, o, u also umlaut; this one does not: der Tag, die Tage; der Arm, die Arme.",
  "rule.pluralMasculineE.title": "masculine default",
  "rule.pluralMasculineEn.badge": "-(e)n",
  "rule.pluralMasculineEn.mistakes": "An -(e)n plural never takes umlaut",
  "rule.pluralMasculineEn.text": "A few masculines outside the weak nouns also take -(e)n; memorize them: der Staat, die Staaten; der See, der Schmerz, der Muskel, der Nerv.",
  "rule.pluralMasculineEn.title": "masculine -(e)n",
  "rule.pluralMasculineEr.badge": "-er + umlaut",
  "rule.pluralMasculineEr.mistakes": "An -er plural is never feminine\nThe -er plural always umlauts when the stem vowel is a, o, u, or au",
  "rule.pluralMasculineEr.text": "A small masculine set takes -er, always with umlaut where possible: der Mann, die Männer; der Wald, die Wälder; der Gott, der Wurm, der Irrtum. Memorize the members.",
  "rule.pluralMasculineEr.title": "masculine -er",
  "rule.pluralMasculineUmlautE.badge": "-e + umlaut",
  "rule.pluralMasculineUmlautE.mistakes": "An umlauted plural is rarely feminine (only the Hand/Stadt list, die Mutter and die Tochter)",
  "rule.pluralMasculineUmlautE.text": "Masculine default with umlaut: der Stuhl, die Stühle; der Baum, die Bäume. About half of the umlaut-capable masculines umlaut in the -e plural; the other half do not (der Tag, die Tage). Which half a word falls in must be memorized.",
  "rule.pluralMasculineUmlautE.title": "masculine -e + umlaut",
  "rule.pluralNeuterE.badge": "-e",
  "rule.pluralNeuterE.mistakes": "Neuter -e plurals almost never umlaut (the exception is das Floß, die Flöße); umlaut + -e usually signals a masculine or a Hand/Stadt feminine",
  "rule.pluralNeuterE.text": "Neuter default: add -e without umlaut: das Jahr, die Jahre; das Spiel, die Spiele; das Brot, die Brote.",
  "rule.pluralNeuterE.title": "neuter default",
  "rule.pluralNeuterEn.badge": "-(e)n",
  "rule.pluralNeuterEn.mistakes": "The neuter default is -e without umlaut; these are exceptions",
  "rule.pluralNeuterEn.text": "A small set of neuters takes -(e)n; memorize them: das Auge, die Augen; das Ohr, das Bett, das Hemd, das Ende, das Herz.",
  "rule.pluralNeuterEn.title": "neuter -(e)n",
  "rule.pluralNeuterEr.badge": "-er + umlaut",
  "rule.pluralNeuterEr.mistakes": "An -er plural is never feminine\nThe -er plural always umlauts when the stem vowel is a, o, u, or au",
  "rule.pluralNeuterEr.text": "About 100 mostly one-syllable neuters take -er, always with umlaut where possible: das Kind, die Kinder; das Buch, die Bücher; das Haus, das Land, das Bild, das Dorf.",
  "rule.pluralNeuterEr.title": "neuter -er",
  "rule.pluralNeuterUmlautE.badge": "-e + umlaut",
  "rule.pluralNeuterUmlautE.text": "Very unusual: neuters normally take -e without umlaut. Memorize this one (like das Floß, die Flöße).",
  "rule.pluralNeuterUmlautE.title": "neuter umlaut + -e",
  "rule.pluralNoEnding.badge": "no ending",
  "rule.pluralNoEnding.text": "This noun takes no plural ending; singular and plural look the same: das Gebäude, die Gebäude.",
  "rule.pluralNoEnding.title": "no ending",
  "rule.pluralNoEndingElEnEr.badge": "no ending",
  "rule.pluralNoEndingElEnEr.mistakes": "Some masculines of this group umlaut instead: der Vater, die Väter; der Apfel, der Vogel, der Bruder, der Garten",
  "rule.pluralNoEndingElEnEr.text": "Masculine and neuter nouns in -el, -en, -er take no plural ending; only the article changes: der Löffel, die Löffel; das Messer, die Messer; der Wagen, die Wagen.",
  "rule.pluralNoEndingElEnEr.title": "no ending",
  "rule.pluralNone.badge": "none",
  "rule.pluralNone.text": "{article} {german} has no plural; it is only used in the singular. Language names, materials and abstract nouns often work this way.",
  "rule.pluralNone.title": "no plural",
  "rule.pluralS.badge": "-s",
  "rule.pluralS.mistakes": "An -s plural never takes umlaut",
  "rule.pluralS.text": "Nouns ending in a full vowel (a, i, o, u, y), recent loanwords, and abbreviations take -s: das Auto, die Autos; das Hotel, die Hotels; die CD, die CDs.",
  "rule.pluralS.title": "-s plural",
  "rule.pluralSE.badge": "-se",
  "rule.pluralSE.text": "Nouns in -nis (and other short s-final nouns) double the s before the plural -e: das Ergebnis, die Ergebnisse; die Kenntnis, die Kenntnisse; der Bus, die Busse.",
  "rule.pluralSE.title": "doubled s",
  "rule.pluralSwap.badge": "swap",
  "rule.pluralSwap.mistakes": "Casual German sometimes says Themas; the swapped form is the standard one",
  "rule.pluralSwap.text": "Latin and Greek endings swap instead of adding: das Museum, die Museen; das Thema, die Themen; der Rhythmus, die Rhythmen; das Datum, die Daten; das Konto, die Konten.",
  "rule.pluralSwap.title": "foreign ending swap",
  "rule.pluralUmlautFeminine.badge": "umlaut",
  "rule.pluralUmlautFeminine.text": "die Mutter and die Tochter are the only feminines that mark the plural with umlaut alone: die Mütter, die Töchter.",
  "rule.pluralUmlautFeminine.title": "umlaut only",
  "rule.pluralUmlautMasculine.badge": "umlaut",
  "rule.pluralUmlautMasculine.mistakes": "Most -el/-en/-er masculines stay unchanged instead: der Löffel, die Löffel",
  "rule.pluralUmlautMasculine.text": "The Väter group: some masculine -el/-en/-er nouns mark the plural with umlaut alone: der Vater, die Väter; der Apfel, die Äpfel; der Vogel, der Bruder, der Garten, der Mantel. Memorize the members.",
  "rule.pluralUmlautMasculine.title": "umlaut only",
  "rule.pluralUmlautNeuter.badge": "umlaut",
  "rule.pluralUmlautNeuter.text": "Rare for neuters: the plural is marked by umlaut alone, like das Kloster, die Klöster.",
  "rule.pluralUmlautNeuter.title": "umlaut only",
  "rule.pluralWeakMasculine.badge": "-(e)n",
  "rule.pluralWeakMasculine.mistakes": "An -(e)n plural never takes umlaut",
  "rule.pluralWeakMasculine.text": "Weak masculines (n-declension) take -(e)n in the plural and in every case except the nominative singular: der Student, die Studenten; der Junge, die Jungen. Members: masculine persons and animals in -e, plus -ent, -ant, -ist, -oge nouns.",
  "rule.pluralWeakMasculine.title": "weak masculine",
  "chat.moderation.warning": "Let's keep this conversation safe and respectful.",
  "chat.moderation.terminated": "This chat has ended because of repeated unsafe messages.",
  "chat.moderation.self_harm": "I'm sorry you're going through this. Please contact someone you trust or a qualified crisis service now. If you may be in immediate danger, call your local emergency number.",
  "chat.moderation.off_topic": "Let's return to the role-play. You can ask language questions that help with the scenario.",
  "chat.moderation.output_fallback": "Sorry, can we stay with the topic?",
  "chat.moderation.output_terminated": "This chat ended because the partner repeatedly produced unsafe replies. You are not penalized.",
  "challengeType.spelling-bee.label": "Spelling",
  "challengeType.spelling-bee.desc": "Hear it, spell it",
  "challenge.spellingBee.overline": "SPELLING · {level}",
  "challenge.spellingBee.prompt": "Spell what you hear.",
  "challenge.spellingBee.placeholder": "Type the word…",
  "challenge.spellingBee.enterHint": "Enter to submit · moves on automatically",
  "challenge.spellingBee.complete": "SPELLING COMPLETE",
  "challenge.spellingBee.word": "WORD {no} / {total}",
  "challenge.spellingBee.showDefinition": "Show definition",
  "challenge.spellingBee.hideDefinition": "Hide definition",
  "challenge.spellingBee.definitionFree": "Free hint - it does not affect your score.",
  "mode.chat": "Chat",
  "band.chat.overline": "MODE · CONVERSATION",
  "band.chat.title": "Chat",
  "challengeType.chat.label": "Chat",
  "challengeType.chat.desc": "Talk in German",
  "chat.loading": "Loading…",
  "chat.disabled.title": "Chat is not available yet",
  "chat.disabled.body": "This mode is still being prepared. Please check back later.",
  "chat.signIn.title": "Chat comes with an account",
  "chat.signIn.body": "A chat is a real conversation that gets graded, so it needs somewhere to live: your account. Signing in takes a moment, and every chat is free while we launch.",
  "chat.signIn.cta": "Sign in and start talking",
  "chat.picker.title": "Pick a scenario",
  "chat.picker.intro": "Play a short role-play in German. Reach the goal, then end the conversation to get it graded.",
  "chat.picker.none": "No scenarios at this level yet. Try another one.",
  "chat.picker.start": "Start",
  "chat.picker.goal": "Goal: ",
  "chat.picker.role": "You are: ",
  "chat.allowance.unlimited": "Unlimited chats",
  "chat.allowance.daily": "{count} left today",
  "chat.allowance.monthly": "{count} left this month",
  "chat.allowance.none": "You have used up your chats for now. Come back later.",
  "chat.pane.turns": "Turn {used} of {max}",
  "chat.pane.thinking": "Your partner is replying…",
  "chat.pane.placeholder": "Write your answer in German",
  "chat.pane.send": "Send",
  "chat.pane.finish": "End conversation",
  "chat.pane.needMore": "{count} more to be graded",
  "chat.pane.otherLevel": "You started this {level} chat before switching to {current}. End it to pick a scenario at {current}.",
  "chat.pane.goal": "Your goal",
  "chat.pane.level": "Level {level}",
  "chat.mic.record": "Record",
  "chat.mic.stop": "Stop",
  "chat.mic.transcribing": "Transcribing…",
  "chat.mic.confirmTitle": "We heard",
  "chat.mic.sendIt": "Send",
  "chat.mic.edit": "Edit",
  "chat.mic.again": "Record again",
  "chat.mic.empty": "We did not catch that. Try recording again.",
  "chat.mic.unsupported": "Recording is not supported in this browser.",
  "chat.mic.denied": "Microphone access was denied.",
  "chat.mic.error": "The microphone could not be started.",
  "chat.audio.play": "Play",
  "chat.audio.playing": "Playing…",
  "chat.audio.none": "No audio",
  "chat.ended.title": "Conversation ended",
  "chat.ended.terminated": "This conversation was stopped.",
  "chat.ended.expired": "This conversation timed out.",
  "chat.ended.seeResult": "See my result",
  "chat.recap.title": "Conversation graded",
  "chat.recap.score": "points",
  "chat.recap.feedback": "Feedback",
  "chat.recap.issues": "What to fix",
  "chat.recap.modelAnswer": "How it could sound",
  "chat.recap.again": "New conversation",
  "chat.recap.home": "Back home",
  "chat.recap.verdict.pass": "Goal reached",
  "chat.recap.verdict.partial": "Partly there",
  "chat.recap.verdict.fail": "Not yet",
  "chat.recap.hardZero.minimum_turns": "Not graded: you sent {used} of the {min} messages this scenario needs.",
  "chat.recap.hardZero.minimum_text": "Not graded: your messages were too short to grade.",
  "chat.recap.hardZero.duplicate_transcript": "Not graded: this is the same conversation you sent before.",
  "chat.recap.hardZero.moderation_termination": "Not graded: this conversation was stopped.",
  "chat.announce.started": "Conversation started.",
  "chat.announce.sending": "Sending your message.",
  "chat.announce.recording": "Recording.",
  "chat.announce.transcribed": "We heard: {text}",
  "chat.announce.grading": "Grading your conversation.",
  "chat.announce.graded": "Your conversation has been graded.",
  "chat.error.allowance": "You have used up your chats for now. Come back later.",
  "chat.error.disabled": "Chat is not available right now.",
  "chat.error.busy": "Chat is busy right now. Please try again in a moment.",
  "chat.error.cooldown": "Chat is paused for now. Please try again later.",
  "chat.error.turnLimit": "This conversation has no turns left.",
  "chat.error.inFlight": "Your previous message is still being answered.",
  "chat.error.transcriptionQuota": "No recordings left in this conversation. Please type instead.",
  "chat.error.transcriptionUnavailable": "Recording is unavailable right now. Please type instead.",
  "chat.error.generic": "Something went wrong. Please try again.",
  "chat.error.network": "Network error - please try again.",
  "chat.error.audioUnavailable": "Audio is unavailable right now.",
  "chat.error.completionInFlight": "Your conversation is already being graded.",
  "chat.error.gone": "This conversation is no longer available.",
  "chat.pane.grading": "Grading your conversation…",
  "sidebar.lesen": "Reading",
  "reading.superhirn": "Brainiac",
  "reading.superhirnDesc": "Read up on a subject, then test yourself",
  "reading.news": "News",
  "reading.newsDesc": "The news at your level",
  "reading.scopeFilter": "Area",
  "reading.regionFilter": "State",
  "reading.scopeSoon": "AT, CH: coming later",
  "reading.startsAtA2": "Texts start at level A2. Try one anyway, or keep practising A1 words first.",
  "reading.scope.international": "International",
  "reading.nationwide": "Nationwide",
  "reading.region.DE-BW": "Baden-Württemberg",
  "reading.region.DE-BY": "Bavaria",
  "reading.region.DE-BE": "Berlin",
  "reading.region.DE-BB": "Brandenburg",
  "reading.region.DE-HB": "Bremen",
  "reading.region.DE-HH": "Hamburg",
  "reading.region.DE-HE": "Hesse",
  "reading.region.DE-MV": "Mecklenburg-Western Pomerania",
  "reading.region.DE-NI": "Lower Saxony",
  "reading.region.DE-NW": "North Rhine-Westphalia",
  "reading.region.DE-RP": "Rhineland-Palatinate",
  "reading.region.DE-SL": "Saarland",
  "reading.region.DE-SN": "Saxony",
  "reading.region.DE-ST": "Saxony-Anhalt",
  "reading.region.DE-SH": "Schleswig-Holstein",
  "reading.region.DE-TH": "Thuringia",
  "reading.topicFilter": "Topic",
  "reading.categoryFilter": "Category",
  "reading.all": "All",
  "reading.topic.curiosities": "Curiosities",
  "reading.topic.world": "World",
  "reading.topic.tech": "Tech",
  "reading.topic.domestic": "Domestic",
  "reading.loading": "Loading texts...",
  "reading.loadError": "Could not load the texts.",
  "reading.retry": "Retry",
  "reading.empty": "No texts here yet.",
  "reading.loadMore": "Load more",
  "reading.blocked": "Paused",
  "reading.blockedHint": "You had a Challenge or a chat on this text in the last 30 days. You can still read it; it joins Challenges again after 30 days.",
  "reading.isRead": "Read",
  "reading.back": "Back to the list",
  "reading.loadingPiece": "Loading the text...",
  "reading.pieceError": "Could not load this text.",
  "reading.aiBadge": "AI-generated",
  "reading.levelLabel": "Level",
  "reading.source": "Source:",
  "reading.listen": "Listen",
  "reading.stop": "Stop",
  "reading.attribution": "AI-generated text. Rewritten in its own words by an AI from an article by {source}, {date}, without editorial review.",
  "reading.original": "Original: \"{headline}\" ({url})",
  "reading.attributionByline": "AI-generated text. Rewritten in its own words by an AI from an article by {source} (by {author}), {date}, without editorial review.",
  "reading.attributionNoDate": "AI-generated text. Rewritten in its own words by an AI from an article by {source}, without editorial review.",
  "reading.attributionBylineNoDate": "AI-generated text. Rewritten in its own words by an AI from an article by {source} (by {author}), without editorial review.",
  "reading.markError": "Could not save the read mark. Please try again.",
  "reading.markRead": "Mark as read",
  "reading.next": "Next text",
  "band.lesenSuperhirn.overline": "READING · BRAINIAC",
  "band.lesenSuperhirn.title": "Brainiac",
  "band.lesenNews.overline": "READING · NEWS",
  "band.lesenNews.title": "News",
  "band.lesenPiece.overline": "MODE · READING",
  "band.lesenPiece.title": "Reading",
  "lesen_superhirn.signIn.title": "Your session ended",
  "lesen_superhirn.signIn.body": "Sign in again to keep reading. Your read marks are safe.",
  "lesen_news.signIn.title": "Your session ended",
  "lesen_news.signIn.body": "Sign in again to keep reading. Your read marks are safe.",
  "lesen_piece.signIn.title": "Your session ended",
  "lesen_piece.signIn.body": "Sign in again to keep reading. Your read marks are safe.",
  "challengeType.reading-quiz.label": "Reading questions",
  "challengeType.reading-quiz.desc": "Questions on your texts",
  "band.lesenChoice.overline": "READING · WHAT NOW?",
  "band.lesenChoice.title": "What now?",
  "reading.dock.open": "What now?",
  "reading.dock.count": "{count} read, ready for a Challenge",
  "reading.dock.none": "Mark a text as read to continue here.",
  "reading.dock.error": "Could not load your read texts.",
  "reading.choice.overline": "After reading",
  "reading.choice.title": "What now?",
  "reading.choice.chatTitle": "What do you want to talk about?",
  "reading.choice.loadError": "Could not load your read texts.",
  "reading.choice.questions": "Questions",
  "reading.choice.questionsDesc": "3 questions on each of your {count} most recently read texts, at the level you read.",
  "reading.choice.questionsLocked": "Read {count} more to unlock questions.",
  "reading.choice.questionsLockedOne": "Read {count} more to unlock questions.",
  "reading.choice.chat": "Chat",
  "reading.choice.chatDesc": "Talk about a text: among friends, as an interview or as a debate.",
  "reading.choice.skip": "Skip",
  "reading.choice.skipDesc": "Keep reading. Your read texts are remembered for 30 days.",
  "reading.choice.pieceLabel": "Text",
  "reading.choice.kindLabel": "Kind of conversation",
  "reading.choice.startChat": "Start chat",
  "reading.choice.back": "Back",
  "reading.choice.notEnough": "You need {count} read texts for this.",
  "reading.choice.notReady": "This text is no longer ready. Pick another one.",
  "reading.choice.chatActive": "You already have a chat running. Finish it first.",
  "reading.choice.openActiveChat": "Go to the running chat",
  "reading.choice.noScenario": "This text has no scenario for this kind of conversation yet.",
  "reading.choice.startError": "That did not work. Please try again.",
  "reading.kind.friend": "Among friends",
  "reading.kind.friendDesc": "A relaxed chat about the text.",
  "reading.kind.interview": "Interview",
  "reading.kind.interviewDesc": "You interview a fitting person.",
  "reading.kind.debate": "Debate",
  "reading.kind.debateDesc": "The AI takes one side, you take the other.",
  "reading.keepReading": "Keep reading",
  "lesen_choice.signIn.title": "Your session ended",
  "lesen_choice.signIn.body": "Sign in again to keep reading. Your read marks are safe.",
  "achievement.total_challenges_bronze.name": "Getting started",
  "achievement.total_challenges_bronze.desc": "Finish 10 challenges.",
  "achievement.total_challenges_silver.name": "Regular",
  "achievement.total_challenges_silver.desc": "Finish 100 challenges.",
  "achievement.total_challenges_gold.name": "Dedicated",
  "achievement.total_challenges_gold.desc": "Finish 1,000 challenges.",
  "achievement.streak_bronze.name": "Week streak",
  "achievement.streak_bronze.desc": "Practice 7 days in a row.",
  "achievement.streak_silver.name": "Month streak",
  "achievement.streak_silver.desc": "Practice 30 days in a row.",
  "achievement.streak_gold.name": "Centurion",
  "achievement.streak_gold.desc": "Practice 100 days in a row.",
  "achievement.compete_wins_bronze.name": "First win",
  "achievement.compete_wins_bronze.desc": "Win your first Compete match.",
  "achievement.compete_wins_silver.name": "Contender",
  "achievement.compete_wins_silver.desc": "Win 25 Compete matches.",
  "achievement.compete_wins_gold.name": "Champion",
  "achievement.compete_wins_gold.desc": "Win 250 Compete matches.",
  "achievement.compete_win_streak_bronze.name": "On a roll",
  "achievement.compete_win_streak_bronze.desc": "Win 3 Compete matches in a row.",
  "achievement.compete_win_streak_silver.name": "Hot streak",
  "achievement.compete_win_streak_silver.desc": "Win 10 Compete matches in a row.",
  "achievement.compete_win_streak_gold.name": "Unstoppable",
  "achievement.compete_win_streak_gold.desc": "Win 25 Compete matches in a row.",
  "achievement.friends_bronze.name": "First friend",
  "achievement.friends_bronze.desc": "Make a mutual friend.",
  "achievement.friends_silver.name": "Connected",
  "achievement.friends_silver.desc": "Make 10 mutual friends.",
  "achievement.friends_gold.name": "Community member",
  "achievement.friends_gold.desc": "Make 50 mutual friends.",
  "achievement.perfect_rounds_bronze.name": "Flawless",
  "achievement.perfect_rounds_bronze.desc": "Finish a 10/10 round.",
  "achievement.perfect_rounds_silver.name": "Precise",
  "achievement.perfect_rounds_silver.desc": "Finish 25 perfect rounds.",
  "achievement.perfect_rounds_gold.name": "Methodical",
  "achievement.perfect_rounds_gold.desc": "Finish 250 perfect rounds.",
  "achievement.courses_completed_bronze.name": "First course",
  "achievement.courses_completed_bronze.desc": "Complete your first course.",
  "achievement.courses_completed_silver.name": "Bookworm",
  "achievement.courses_completed_silver.desc": "Complete 5 courses.",
  "achievement.courses_completed_gold.name": "Scholar",
  "achievement.courses_completed_gold.desc": "Complete 10 courses.",
  "achievement.level_a1_first.name": "Hello, Deutsch",
  "achievement.level_a1_first.desc": "Try a level A1 challenge.",
  "achievement.level_a2_first.name": "Beyond hello",
  "achievement.level_a2_first.desc": "Try a level A2 challenge.",
  "achievement.level_b1_first.name": "Holding your own",
  "achievement.level_b1_first.desc": "Try a level B1 challenge.",
  "achievement.level_b2_first.name": "At ease",
  "achievement.level_b2_first.desc": "Try a level B2 challenge.",
  "achievement.level_c1_first.name": "Fluent territory",
  "achievement.level_c1_first.desc": "Try a level C1 challenge.",
  "achievement.level_c2_first.name": "Mastery",
  "achievement.level_c2_first.desc": "Try a level C2 challenge.",
  "achievement.try_all_types.name": "Curious mind",
  "achievement.try_all_types.desc": "Try every challenge type at least once.",
  "achievement.try_all_levels.name": "Range finder",
  "achievement.try_all_levels.desc": "Try every CEFR level at least once.",
  "achievement.comeback.name": "Welcome back",
  "achievement.comeback.desc": "Restart your streak after letting it lapse.",
  "achievement.night_owl.name": "Night owl",
  "achievement.night_owl.desc": "Finish a challenge between midnight and 4 AM.",
  "achievement.marathon.name": "Marathon",
  "achievement.marathon.desc": "Finish 10 challenges in one day.",
  "achievement.all_achievements.name": "Completionist",
  "achievement.all_achievements.desc": "Earn every visible achievement.",
  "settings.learning.goal.sleepyhead": "Sleepyhead",
  "settings.learning.goal.casual": "Casual",
  "settings.learning.goal.serious": "Serious",
  "settings.learning.goal.fire": "Fire",
  "settings.learning.dailyGoalValue": "{emoji} {tier} · {points} pts",
  "settings.learning.dailyGoalAria": "Daily points goal",
  "settings.notifications.pushToggleAria": "Toggle push notifications",
  "settings.account.displayNameLimit": "1-30 characters",
  "settings.account.handleLimit": "a-z, 0-9, _ · 3-20 characters",
  "settings.account.handleDaysLeft": "{count} days left to rename",
  "settings.account.handleDaysLeftOne": "{count} day left to rename",
  "settings.account.handleHelp.before": "Need a different handle? Reach out on",
  "settings.account.handleHelp.after": " and we'll help.",
  "settings.account.handleHelpNoDiscord": "Need a different handle? Contact support and we'll help.",
  "settings.account.error.pickHandle": "Pick a handle.",
  "settings.account.error.handleInvalid": "3-20 characters, lowercase letters, digits, or underscore, start with a letter.",
  "settings.account.error.pickDisplayName": "Pick a display name.",
  "settings.account.error.displayNameInvalid": "1-30 characters, letters / digits / underscore, start with a letter.",
  "wordClass.noun": "noun",
  "wordClass.verb": "verb",
  "wordClass.adjective": "adjective",
  "wordClass.adverb": "adverb",
  "wordClass.preposition": "preposition",
  "wordClass.pronoun": "pronoun",
  "wordClass.conjunction": "conjunction",
  "wordClass.numeral": "numeral",
  "wordClass.interjection": "interjection",
  "wordClass.expression": "expression",
  "wordClass.idiom": "idiom",
  "wordClass.verbpression": "verbal expression",
  "wordClass.initialism": "initialism",
  "settings.account.checking": "checking…",
  "settings.error.handleTaken": "Already taken - try another.",
  "settings.error.handleLocked": "Handle can no longer be changed here.",
  "settings.error.network": "Network error - please try again.",
  "settings.error.usernameNotAllowed": "Username not allowed - try another.",
  "settings.error.notAllowed": "Not allowed - try another.",
  "settings.error.requestFailed": "Request failed ({status}).",
  "settings.error.pushNotConfigured": "Push isn't configured on the server yet.",
  "settings.error.pushUnsupported": "This browser doesn't support push notifications.",
  "settings.error.pushDenied": "Browser denied notification permission. Update site settings to allow notifications and try again.",
  "settings.error.pushFailed": "Push subscription failed; try again.",
  "settings.error.pushRemoveFailed": "Failed to remove subscription on the server.",
  "settings.error.saveLevel": "Failed to save level",
  "settings.error.saveDailyGoal": "Failed to save daily goal",
  "settings.error.saveContent": "Failed to save content preference",
  "settings.error.saveLang": "Failed to save language",
  "settings.error.saveTimezone": "Saving your preferred timezone failed.",
  "settings.error.noUser": "No user context - try refreshing.",
  "common.close": "Close",
  "common.dismiss": "Dismiss",
  "common.cancel": "Cancel",
  "nav.home": "Deutschodoro - home",
  "nav.audio.aria.off": "Audio: off (click for manual)",
  "nav.audio.aria.manual": "Audio: manual (click for auto)",
  "nav.audio.aria.auto": "Audio: auto (click to mute)",
  "nav.audio.title.off": "Audio: off (click for manual)",
  "nav.audio.title.manual": "Audio: manual - A or click to play (click for auto)",
  "nav.audio.title.auto": "Audio: auto - plays on new question (click to mute)",
  "usernamePicker.title": "Pick a display name",
  "usernamePicker.intro": "This is what other learners see. We'll derive a @handle from it automatically; you can tweak it. You can change your handle within 30 days.",
  "usernamePicker.suggest": "Suggest a random display name",
  "usernamePicker.skip": "Maybe later",
  "usernamePicker.claim": "Claim handle",
  "usernamePicker.claiming": "Claiming…",
  "accountDelete.title": "Delete your account?",
  "accountDelete.intro": "This is permanent. We'll wipe your progress, streak, vocabulary memory, achievements, friends, push subscriptions, and challenge history. There's no undo and no grace period.",
  "accountDelete.confirmBefore": "Type",
  "accountDelete.confirmAfter": "to confirm:",
  "accountDelete.deleting": "Deleting…",
  "challenge.audio.startNow": "Start now",
  "compete.partyCode": "Party code",
  "compete.copyCode": "Copy code",
  "compete.playAudio": "Play audio",
  "compete.opponent": "Opponent",
  "compete.opponentInline": "your opponent",
  "compete.opponentPickedAnon": "Your opponent picked this",
  "compete.opponentConnected": "Connected",
  "compete.opponentDisconnected": "Disconnected",
  "compete.opponentPicked": "{name} picked this",
  "compete.error.queueExpired": "Matchmaking timed out - please try again.",
  "compete.error.invalidCode": "That is not a valid party code.",
  "compete.error.noParty": "No open party with that code.",
  "compete.error.cancelled": "The duel was cancelled - your opponent left before it started.",
  "compete.error.gone": "The duel is no longer available.",
  "tv.type.cartoons": "Cartoons",
  "tv.type.news": "News",
  "tv.type.documentaries": "Documentaries",
  "tv.type.podcasts": "Podcasts",
  "tv.type.popular_music_videos": "Popular Music Videos",
  "tv.type.crime": "Crime",
  "tv.type.drama": "Drama",
  "tv.type.comedy": "Comedy",
  "tv.type.family": "Family",
  "tv.type.thriller": "Thriller",
  "tv.type.historical": "Historical",
  "tv.type.sci_fi": "Sci-Fi",
  "tv.type.action": "Action",
  "tv.trailer": "Trailer",
  "tv.imdbScore": "IMDb score",
  "auth.unavailable": "Sign-in service is temporarily unavailable. Try again in a minute.",
  "tv.watchExternally": "Watch externally",
  "tv.voteFailed": "Voting failed; try again.",
  "tv.voteLimitQuality": "Whoa - that's a lot of votes! Try again in an hour.",
  "tv.voteLimitLevel": "Vote limit hit; try again in an hour.",
  "challenge.backToLesson": "Back to lesson",
  "home.lessonLine": "Lesson {n}: {title}",
  "right.points": "pts",
  "right.pointsOne": "pt",
  "compete.teaser.badge": "COMING SOON",
  "compete.teaser.title": "Head-to-head",
  "compete.teaser.body": "Real-time duels against another learner at your level. Coming soon.",
  "compete.checking": "Checking for a live duel…",
  "compete.mode.speed": "Speed",
  "compete.mode.points": "Points",
  "compete.modeHelp.speed": "Fastest correct answer wins each round.",
  "compete.modeHelp.points": "Accuracy plus speed builds your score.",
  "compete.createRoomInvite": "Start a party and invite {name}",
  "compete.partyReady": "Party ready",
  "compete.shareCode": "Share this code with your opponent:",
  "compete.inviteSent": "Invite sent to {name} ✓",
  "compete.waitingJoin": "Waiting for an opponent to join…",
  "compete.cancelParty": "Cancel party",
  "compete.opponentFound": "Opponent found!",
  "compete.ready": "Ready",
  "compete.notReady": "Not ready",
  "compete.questions": "{count} questions",
  "compete.waitingOpponent": "Waiting for opponent…",
  "compete.imReady": "I'm ready",
  "compete.leave": "Leave",
  "compete.getReady": "Get ready…",
  "compete.go": "GO",
  "compete.questionOf": "Question {index}/{total}",
  "compete.secondsLeft": "{count}s left",
  "compete.lockedIn": "Answer locked in - waiting for {name}…",
  "compete.correctAnswer": "Correct answer:",
  "compete.noAnswer": "no answer",
  "compete.roundYou": "Round to you! 🎉",
  "compete.roundOpponent": "Round to {name}",
  "compete.roundNone": "No round winner",
  "compete.forfeit": "Forfeit duel",
  "compete.endedOpponentLeft": "The duel ended early - your opponent left.",
  "compete.endedForfeited": "The duel ended early - you forfeited.",
  "compete.stat.rounds": "Rounds",
  "compete.stat.correct": "Correct answers",
  "compete.playAgain": "Play again",
  "compete.backHome": "Back home"
}
