{
  "common.showAll": "Show all {count}",
  "common.showLess": "Show less",
  "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.discordColumn": "Discord",
  "settings.notifications.discordLinkHint": "Discord DMs need a linked account.",
  "settings.notifications.discordLink": "Link Discord",
  "settings.notifications.discordDMFailed": "We couldn't DM you on Discord. Allow direct messages from server members, then try again.",
  "settings.notifications.discordDMRetry": "Try again",
  "settings.notifications.discordDMRetryFailed": "Could not turn Discord DMs back on. Please try again.",
  "settings.notifications.saved": "Saving your notification preferences was successful.",
  "settings.notifications.signInHint.before": "Friend & duel alerts need an account.",
  "settings.notifications.signIn": "Sign in",
  "settings.notifications.signInHint.after": "to enable them.",
  "settings.notifications.signInBadge": "sign in",
  "pushOptIn.title": "Stay in the loop",
  "pushOptIn.body": "Get push notifications for streak reminders, friend activity, and achievements. You can turn this off in Settings any time.",
  "pushOptIn.never": "Never ask again",
  "pushOptIn.later": "Remind me in 1 week",
  "pushOptIn.accept": "Turn on",
  "pushOptIn.busy": "Setting up…",
  "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.FOLLOW_RECEIVED": "New follower",
  "notification.kind.FOLLOW_RETURNED": "Follow returned",
  "notification.kind.FRIEND_PASSED_YOU": "A friend passed you",
  "notification.kind.FOLLOW_STREAK_MILESTONE": "Friend streak milestone",
  "notification.kind.DUEL_INVITE": "Duel invite",
  "notification.feed.ACHIEVEMENT_EARNED": "Achievement unlocked",
  "notification.feed.FRIEND_PASSED_YOU": "A friend passed 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.FOLLOW_RECEIVED": "New follower",
  "notification.push.FOLLOW_RETURNED": "Follow returned",
  "notification.push.FRIEND_PASSED_YOU": "Someone passed you",
  "notification.push.FOLLOW_STREAK_MILESTONE": "Streak milestone",
  "notification.push.DUEL_INVITE": "Duel 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.FOLLOW_RECEIVED": "Someone started following you.",
  "notification.body.FOLLOW_RETURNED": "Someone followed you back.",
  "notification.body.FRIEND_PASSED_YOU": "A friend just passed you on the leaderboard.",
  "notification.body.FOLLOW_STREAK_MILESTONE": "A friend reached a streak milestone.",
  "notification.body.DUEL_INVITE": "{name} invited you to a duel.",
  "notification.body.DUEL_INVITECode": "{name} invited you to a duel. Duel 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.wordOrder.incomplete": "Use more of the words before checking your answer.",
  "challenge.finishing": "Finishing the round...",
  "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.nextKey": "Space",
  "challenge.leave.title": "Leave the current challenge?",
  "challenge.leave.body": "You've answered at least one question. If you leave now, your progress in this round will be lost.",
  "challenge.leave.keep": "Keep playing",
  "challenge.leave.confirm": "Leave challenge",
  "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.object-pronoun.label": "Object pronouns",
  "challengeType.object-pronoun.desc": "Pick the object 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.passive.label": "Passive voice",
  "challengeType.passive.desc": "Turn active sentences into the passive",
  "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.negation.label": "Negation",
  "challengeType.negation.desc": "Choose nicht, ohne or kein",
  "challengeType.conjunction.label": "Conjunctions",
  "challengeType.conjunction.desc": "Connect clauses",
  "challenge.unavailable.comparison.B2": "Comparison currently has curated content at A1 through B1.",
  "challenge.unavailable.comparison.C1": "Comparison currently has curated content at A1 through B1.",
  "challenge.unavailable.comparison.C2": "Comparison currently has curated content at A1 through B1.",
  "challengeType.comparison.label": "Comparison",
  "challengeType.comparison.desc": "Pick als or wie",
  "challengeType.fixed-expression.label": "Fixed expressions",
  "challengeType.fixed-expression.desc": "Match the meaning",
  "challengeType.regional-word.label": "Regional words",
  "challengeType.regional-word.desc": "Words from German-speaking regions",
  "dialectRegion.AT": "Austria",
  "dialectRegion.CH": "Switzerland",
  "dialectRegion.DE:Bayern": "Bavaria",
  "dialectRegion.DE:Berlin": "Berlin",
  "dialectRegion.DE:Franken": "Franconia",
  "dialectRegion.DE:Kölsch": "Cologne (Kölsch)",
  "dialectRegion.DE:Ruhrdeutsch": "Ruhr area (Ruhrdeutsch)",
  "dialectRegion.DE:Thüringisch": "Thuringia (Thüringisch)",
  "dialectRegion.DE:Schwäbisch": "Swabia (Schwäbisch)",
  "dialectRegion.DE:Ostfriesisch": "East Frisia (Ostfriesisch)",
  "dialectRegion.DE:Moselfränkisch": "Moselle region (Moselfränkisch)",
  "dialectRegion.DE:Pfälzisch": "Palatinate (Pfälzisch)",
  "dialectRegion.DE:Ripuarisch": "Ripuarian Rhineland (Ripuarisch)",
  "dialectRegion.DE:Sachsen": "Saxony",
  "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.emphasis": "This word order puts extra emphasis on part of the sentence.",
  "challenge.wordOrder.why.infinitive-before-particle": "Putting the zu-infinitive before the separable particle is correct but literary; usually the infinitive comes after the particle, at the end.",
  "challenge.wordOrder.why.clause-in-the-middle": "A short part of the sentence after the inserted clause can make the sentence harder to follow. Usually that part comes before the clause, or the clause goes at the end.",
  "challenge.wordOrder.why.accusative-noun-before-dative-noun": "Putting the accusative noun before the dative noun is less usual; dative before accusative is normally neutral.",
  "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.dictation.you": "You:",
  "challenge.dictation.nothing": "(nothing)",
  "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.word-order.C2": "Word order is available from A1 to C1.",
  "challenge.unavailable.overline": "CHALLENGE · {name}",
  "challenge.unavailable.range": "available at",
  "challenge.unavailable.noContent": "There is no content for this challenge at your level yet.",
  "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.negation.A2": "Negation practice currently has reviewed sentences at A1 only.",
  "challenge.unavailable.negation.B1": "Negation practice currently has reviewed sentences at A1 only.",
  "challenge.unavailable.negation.B2": "Negation practice currently has reviewed sentences at A1 only.",
  "challenge.unavailable.negation.C1": "Negation practice currently has reviewed sentences at A1 only.",
  "challenge.unavailable.negation.C2": "Negation practice currently has reviewed sentences at A1 only.",
  "challenge.unavailable.n-declension.A1": "N-declension practice starts at B1.",
  "challenge.unavailable.n-declension.A2": "N-declension practice starts at B1.",
  "challenge.unavailable.passive.A1": "Passive practice starts at B1.",
  "challenge.unavailable.passive.A2": "Passive practice starts at B1.",
  "challenge.passive.scope.title": "Scope",
  "challenge.passive.scope.auto": "Automatic (currently {k}/{n})",
  "challenge.passive.scope.recommended": "recommended",
  "challenge.passive.scope.nextRound": "Changes apply from the next round.",
  "challenge.passive.practised": "Practised: {forms}",
  "challenge.passive.recommendUp": "Recommendation: add {form}",
  "challenge.passive.recommendUp.apply": "Add it",
  "challenge.unavailable.object-pronoun.C2": "Object pronoun practice is available from A1 to C1; there are no C2 verbs for it yet.",
  "challenge.unavailable.reflexive.C2": "Reflexive verb practice is available from A1 to C1; there are not enough C2 verbs for it yet.",
  "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.typesCount": "{count} challenge types",
  "sidebar.typesCountOne": "{count} challenge type",
  "sidebar.categoriesCount": "{count} categories",
  "sidebar.categoriesCountOne": "{count} category",
  "sidebar.modes": "Modes",
  "mode.home": "Home",
  "mode.courses": "Courses",
  "mode.tv": "TV",
  "mode.germanTv": "German TV",
  "mode.friends": "Friends",
  "mode.compete": "Duel",
  "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": "Duel 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 yet.",
  "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.",
  "settings.discord.title": "Discord",
  "settings.discord.intro": "Link your Discord account to join our community server. This is separate from signing in, which stays with your current sign-in method.",
  "settings.discord.link": "Link Discord account",
  "settings.discord.linkedAs": "Linked as {username}",
  "settings.discord.unlink": "Unlink",
  "settings.discord.linked": "Your Discord account is linked.",
  "settings.discord.error": "We could not link your Discord account. Please try again.",
  "settings.discord.errorTaken": "That Discord account is already linked to another Deutschodoro account.",
  "settings.discord.unlinkFailed": "We could not unlink your Discord account. Please try again.",
  "settings.discord.celebrate": "Celebrate my milestones in the Discord server",
  "settings.discord.celebrateHelp": "Posts your bigger achievements, duel wins and finished courses in the community server, with your Discord name. Turning it off stops new posts; past messages are not deleted.",
  "settings.discord.celebrateFailed": "We could not save your choice. Please try again.",
  "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": "Most recent achievements",
  "profile.nextAchievements": "Not earned yet",
  "profile.viewAllAchievements": "View all",
  "profile.showLessAchievements": "Show less",
  "profile.achievementGroup.practice": "Practice",
  "profile.achievementGroup.streaks": "Streaks",
  "profile.achievementGroup.social": "Social",
  "profile.achievementGroup.competition": "Duels",
  "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.drillNone": "No fading words yet. Practice some challenges first!",
  "profile.drillFailed": "Could not start drill session.",
  "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 duel",
  "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": "Duels come 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",
  "pomodoro.break.title": "Time for a break",
  "pomodoro.break.rest": "{minutes} minutes to rest your brain.",
  "pomodoro.break.start": "Start break",
  "pomodoro.ready.title": "Ready to continue?",
  "pomodoro.ready.focus": "Stay focused for {minutes} more minutes.",
  "pomodoro.ready.continue": "Continue",
  "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.favorites": "Favorite Word lists",
  "wordgroups.chooseTitle": "Choose your themes",
  "wordgroups.intro": "Browse themed word lists and practice the words that matter to you.",
  "wordgroups.active": "active",
  "wordgroups.ofGroups": "{count} curated lists",
  "wordgroups.ofGroupsOne": "{count} curated 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.themeFilter": "Filter by theme",
  "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.noEligibleWords": "This Word list has no eligible Words at your current level. Add Words or choose another level.",
  "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.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.theme.EVERYDAY": "Everyday",
  "wordgroups.theme.FOOD": "Food",
  "wordgroups.theme.HOME": "Home",
  "wordgroups.theme.PEOPLE": "People",
  "wordgroups.theme.HEALTH": "Health",
  "wordgroups.theme.WORK": "Work",
  "wordgroups.theme.TRAVEL": "Travel",
  "wordgroups.theme.ANIMALS": "Animals",
  "wordgroups.theme.NATURE": "Nature",
  "wordgroups.theme.SPORTS": "Sports",
  "wordgroups.theme.CULTURE": "Culture",
  "wordgroups.theme.TECH": "Tech",
  "wordgroups.theme.SOCIETY": "Society",
  "wordgroups.theme.EDUCATION": "Education",
  "wordgroups.theme.CLOTHING": "Clothing",
  "wordgroups.theme.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": "Duel",
  "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 chat 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 · CHAT",
  "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 finish the chat 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": "Finish and grade",
  "chat.pane.needMore": "{count} more to be graded",
  "chat.pane.otherLevel": "You started this {level} chat before switching to {current}. Finish 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": "Chat ended",
  "chat.ended.terminated": "This chat was stopped.",
  "chat.ended.expired": "This chat timed out.",
  "chat.ended.seeResult": "See my result",
  "chat.recap.title": "Chat 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 chat",
  "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 chat you sent before.",
  "chat.recap.hardZero.MODERATION_TERMINATION": "Not graded: this chat was stopped.",
  "chat.announce.started": "Chat started.",
  "chat.announce.sending": "Sending your message.",
  "chat.announce.recording": "Recording.",
  "chat.announce.transcribed": "We heard: {text}",
  "chat.announce.grading": "Grading your chat.",
  "chat.announce.graded": "Your chat 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 chat has no turns left.",
  "chat.error.inFlight": "Your previous message is still being answered.",
  "chat.error.transcriptionQuota": "No recordings left in this chat. 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 chat is already being graded.",
  "chat.error.gone": "This chat is no longer available.",
  "chat.pane.grading": "Grading your chat…",
  "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.notFound": "Text not found.",
  "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 chat",
  "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 chat yet.",
  "reading.choice.startError": "That did not work. Please try again.",
  "reading.kind.FRIEND": "Among friends",
  "reading.kindDesc.FRIEND": "A relaxed chat about the text.",
  "reading.kind.INTERVIEW": "Interview",
  "reading.kindDesc.INTERVIEW": "You interview a fitting person.",
  "reading.kind.DEBATE": "Debate",
  "reading.kindDesc.DEBATE": "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 duel.",
  "achievement.compete_wins_silver.name": "Contender",
  "achievement.compete_wins_silver.desc": "Win 25 duels.",
  "achievement.compete_wins_gold.name": "Champion",
  "achievement.compete_wins_gold.desc": "Win 250 duels.",
  "achievement.compete_win_streak_bronze.name": "On a roll",
  "achievement.compete_win_streak_bronze.desc": "Win 3 duels in a row.",
  "achievement.compete_win_streak_silver.name": "Hot streak",
  "achievement.compete_win_streak_silver.desc": "Win 10 duels in a row.",
  "achievement.compete_win_streak_gold.name": "Unstoppable",
  "achievement.compete_win_streak_gold.desc": "Win 25 duels 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",
  "wordClass.PARTICLE": "particle",
  "wordClass.PROVERB": "proverb",
  "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.phrase": "delete my account",
  "accountDelete.deleting": "Deleting…",
  "challenge.audio.startNow": "Start now",
  "compete.partyCode": "Duel 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 duel code.",
  "compete.error.noParty": "No open duel 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.backToWordList": "Back to the Word list",
  "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 duel and invite {name}",
  "compete.partyReady": "Duel 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 duel",
  "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",
  "wordDetail.star": "Add to your word list",
  "wordDetail.unstar": "Remove from your word list",
  "wordDetail.starError": "Could not update your word list. Reopen the Word to retry.",
  "wordgroups.ownedFull": "You can own 50 Word lists, Default included. Delete a custom Word list before creating another.",
  "wordDetail.listFull": "Your word list has 500 Words. Remove a Word before adding another.",
  "auth.wordListHelp": "Sign up to save Words in your own word list.",
  "wordgroups.yours": "Your Word lists",
  "wordgroups.newList": "New Word list",
  "wordgroups.listName": "Name (1 to 50 characters)",
  "wordgroups.findWords": "Find Words",
  "wordgroups.removeWord": "Remove Word",
  "wordgroups.cancelEdit": "Cancel",
  "wordgroups.createList": "Create Word list",
  "wordgroups.editList": "Edit Word list",
  "wordgroups.renameList": "Rename",
  "wordgroups.deleteList": "Delete Word list",
  "wordgroups.saveList": "Save",
  "wordgroups.deleteConfirm": "Delete this Word list? This cannot be undone.",
  "wordgroups.editError": "Could not save the Word list. Try again.",
  "wordgroups.recentlyPracticed": "Recently practiced Word lists",
  "wordgroups.noPractice": "No Word lists practiced yet.",
  "wordgroups.openError": "Could not record opening this list. Open it again to retry."
}
