Files
yourpart3/frontend/src/i18n/locales/en/socialnetwork.json
Torsten Schulz (local) e17f0cdce0
All checks were successful
Deploy to production / deploy (push) Successful in 2m51s
feat(vocab): enhance vocabulary exercises and localization support
- Updated core patterns in BISAYA_PHASE5_DIDACTICS to include gloss translations for better understanding.
- Refactored vocabulary exercise generation in update-food-care-exercises.js to improve randomization and user engagement.
- Added new exercise types and improved question structures for vocabulary lessons, enhancing the learning experience.
- Enhanced localization files for German, English, and Spanish to support new exercise features and improve user guidance.
- Updated VocabLessonView to incorporate sequential navigation for exercises, providing a more structured learning flow.
2026-04-07 09:09:43 +02:00

778 lines
43 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"socialnetwork": {
"usersearch": {
"kicker": "Community search",
"intro": "Find suitable contacts in the community by name, age, and gender.",
"ageSeparator": "to",
"resultsCount": "{count} results",
"openProfile": "Open profile",
"title": "User Search",
"username": "Username",
"age_from": "Age from",
"age_to": "to",
"gender": "Gender",
"search_button": "Search",
"no_results": "No results found",
"results_title": "Search Results:",
"result": {
"nick": "Nickname",
"gender": "Gender",
"age": "Age"
}
},
"profile": {
"pretitle": "Loading data. Please wait...",
"error_title": "User not found",
"title": "Profile of <username>",
"tab": {
"general": "General",
"sexuality": "Sexuality",
"images": "Gallery",
"guestbook": "Guestbook"
},
"values": {
"bool": {
"true": "Yes",
"false": "No"
},
"smokes": {
"never": "Never",
"socially": "Socially",
"often": "Often",
"daily": "Daily"
},
"drinks": {
"never": "Never",
"socially": "Socially",
"often": "Often",
"daily": "Daily"
},
"interestedInGender": {
"male": "Men",
"female": "Women"
},
"sexualpreference": {
"straight": "Heterosexual",
"gay": "Homosexual",
"bi": "Bisexual",
"pan": "Pansexual",
"asexual": "Asexual"
},
"pubichair": {
"none": "None",
"short": "Short",
"medium": "Medium",
"long": "Long",
"hairy": "Unshaven",
"waxed": "Waxed",
"landingstrip": "Landing Strip",
"other": "Other",
"bikinizone": "Bikini Zone"
},
"gender": {
"male": "Male",
"female": "Female",
"transmale": "Trans-Female",
"transfemale": "Trans-Male",
"nonbinary": "Non-binary"
},
"language": {
"de": "German",
"en": "English"
},
"eyecolor": {
"blue": "Blue",
"green": "Green",
"brown": "Brown",
"black": "Black",
"grey": "Grey",
"hazel": "Hazel",
"amber": "Amber",
"red": "Red",
"other": "Other"
},
"haircolor": {
"black": "Black",
"brown": "Brown",
"blonde": "Blonde",
"red": "Red",
"grey": "Grey",
"white": "White",
"other": "Other"
},
"hairlength": {
"short": "Short",
"medium": "Medium",
"long": "Long",
"bald": "Bald",
"other": "Other"
},
"skincolor": {
"light": "Light",
"medium": "Medium",
"dark": "Dark",
"other": "Other"
},
"freckles": {
"much": "Many",
"medium": "Medium",
"less": "Few",
"none": "None"
}
},
"guestbook": {
"showInput": "Show new entry",
"hideInput": "Hide new entry",
"imageUpload": "Image",
"submit": "Submit entry",
"noEntries": "No entries found",
"entryImageAlt": "Guestbook entry image"
},
"interestedInGender": "Interested in",
"hasChildren": "Has children",
"smokes": "Smoking",
"drinks": "Alcohol",
"willChildren": "Wants children",
"sexualpreference": "Sexual orientation",
"pubichair": "Pubic hair",
"penislength": "Penis length",
"brasize": "Bra size",
"piercings": "Piercings",
"tattoos": "Tattoos",
"language": "Language",
"gender": "Gender",
"eyecolor": "Eye color",
"haircolor": "Hair color",
"hairlength": "Hair length",
"freckles": "Freckles",
"skincolor": "Skin color",
"birthdate": "Birthdate",
"age": "Age",
"town": "City",
"bodyheight": "Height",
"weight": "Weight"
},
"gallery": {
"kicker": "Images and folders",
"intro": "Organize your own content, control visibility, and structure it in folders.",
"title": "Gallery",
"folders": "Folders",
"create_folder": "Create folder",
"upload": {
"title": "Upload image",
"image_title": "Title",
"image_file": "File",
"visibility": "Visible to",
"upload_button": "Upload",
"selectvisibility": "Please select"
},
"images": "Images",
"visibility": {
"everyone": "Everyone",
"friends": "Friends",
"adults": "Adults",
"friends-and-adults": "Friends and adults",
"selected-users": "Selected users",
"none": "Nobody"
},
"create_folder_dialog": {
"title": "Create folder",
"parent_folder": "Will be created in",
"folder_title": "Folder name",
"visibility": "Visible to",
"select_visibility": "Please select"
},
"noimages": "There are currently no images in this folder",
"imagedialog": {
"image_title": "Title",
"edit_visibility": "Visible to",
"save_changes": "Save changes",
"close": "Close",
"edit_visibility_placeholder": "Please select"
},
"delete_folder_confirmation_title": "Delete folder",
"delete_folder_confirmation_message": "Do you really want to delete the folder '%%folderName%%'?",
"edit_image_dialog": {
"title": "Edit image data"
},
"show_image_dialog": {
"title": "Image"
},
"imagePreviewAlt": "Image preview",
"imageLoadingAlt": "Loading image"
},
"guestbook": {
"kicker": "Guestbook",
"intro": "Messages, feedback, and small glimpses from your network.",
"title": "Guestbook",
"prevPage": "Back",
"nextPage": "Next",
"page": "Page"
},
"diary": {
"kicker": "Personal entries",
"intro": "Thoughts, notes, and short updates in a calm personal view.",
"placeholder": "Write your diary entry...",
"title": "Diary",
"noEntries": "You haven't made any diary entries yet.",
"newEntry": "New diary entry",
"editEntry": "Edit diary entry",
"save": "Save",
"update": "Update",
"cancel": "Cancel",
"edit": "Edit",
"delete": "Delete",
"confirmDelete": "Do you really want to delete the entry?",
"prevPage": "Back",
"nextPage": "Next",
"page": "Page"
},
"forum": {
"kicker": "Community forum",
"intro": "Topics, discussions, and new posts in one structured place.",
"createTitle": "Write a new topic",
"createIntro": "Set the title first, then write the post and publish it directly.",
"cancelCreation": "Cancel",
"creationHint": "Title and content must both be filled in.",
"communityFallback": "Community",
"topicIntro": "Discussions, replies, and new posts in a focused reading view.",
"topicCreated": "Topic created successfully.",
"topicCreateError": "Error creating topic",
"title": "Forum",
"showNewTopic": "Create new topic",
"hideNewTopic": "Cancel creation",
"noTitles": "No topics available",
"topic": "Topic",
"createNewTopic": "Create topic",
"createdBy": "Created by",
"createdAt": "Created at",
"reactions": "Reaction",
"lastReaction": "Last reaction by",
"pagination": {
"first": "First page",
"previous": "Previous page",
"next": "Next page",
"last": "Last page",
"page": "Page <<page>> of <<of>>"
},
"createNewMesssage": "Send reply"
},
"friendship": {
"error": {
"alreadyexists": "The friendship request already exists"
},
"state": {
"none": "Not friends",
"waiting": "Friendship request sent but not answered",
"open": "Friendship was requested",
"denied": "Friendship request denied",
"withdrawn": "Friendship request withdrawn",
"accepted": "Friends"
},
"added": "You have sent a friendship request.",
"withdrawn": "You have withdrawn your friendship request.",
"denied": "You have denied the friendship request.",
"accepted": "The friendship has been established."
},
"erotic": {
"eyebrow": "Erotic",
"accessTitle": "Unlock the erotic area",
"accessIntro": "Pictures, videos and later chat areas are visible from age 18, but only usable after moderator approval.",
"lockedShort": "This area becomes usable only after moderator approval.",
"requestVerification": "Request access",
"requestSent": "The access request has been submitted.",
"requestError": "The access request could not be submitted.",
"requestInfoTitle": "Submitted proof",
"documentLabel": "Verification document",
"noteLabel": "Short note for moderation",
"settingsLink": "Open account settings",
"verificationHintTitle": "Verification note",
"verificationHintBody": "You may submit a photo. If your age is not clearly recognizable there, the request will be rejected and you will need to submit an ID instead.",
"notifications": {
"approved": "Your erotic area access has been approved by moderation.",
"rejected": "Your erotic area request was rejected. If your age is not clearly recognizable in photos, please submit an ID."
},
"picturesTitle": "Erotic pictures",
"picturesIntro": "Your content stays strictly separate from the normal gallery. Manage only images for the unlocked erotic area here.",
"uploadTitle": "Upload erotic picture",
"noimages": "There are currently no pictures in this erotic folder.",
"videosTitle": "Erotic videos",
"videosIntro": "Your own videos are managed separately from the normal social area. Organize uploads, visibility and moderation status here in one place.",
"videoUploadTitle": "Upload erotic video",
"videoUploadHint": "Upload videos for your unlocked erotic area here and maintain title and description directly during upload.",
"videoDescription": "Description",
"videoFile": "Video file",
"videoFormats": "MP4, WEBM, OGG, MOV",
"myVideos": "My videos",
"sharedVideos": "Shared videos",
"foreignVideosIntro": "Shared videos from the adult area.",
"foreignVideosOnlyHint": "You only see videos here that were shared with you for the adult area.",
"sharedVideosIntro": "Visible videos from shared adult areas.",
"noSharedVideos": "There are currently no shared videos available for you.",
"libraryTitle": "Library",
"libraryIntro": "Your uploads, visibility settings, and reports in one place.",
"libraryEmptyHint": "Create your first video on the left and manage it here afterwards in the library.",
"latestUpload": "Latest upload",
"visibleVideos": "Visible videos",
"moderationCases": "Moderation cases",
"notesTitle": "Notes",
"friendsVisibilityHint": "Friends can only see content if they are adults and unlocked for the adult area.",
"selectedUsersVisibilityHint": "Specifically shared people must also be adults and unlocked.",
"selectedUsersPlaceholder": "anna, bert, clara",
"imagePreviewAlt": "Image preview",
"imageLoadingAlt": "Loading image",
"untitled": "Untitled",
"noUploadYet": "No upload yet",
"closeEditing": "Close editing",
"editVisibility": "Edit visibility",
"noVideos": "You have not uploaded any erotic videos yet.",
"reportAction": "Report",
"reportHint": "Use {action} directly on the respective item when content should be reviewed.",
"reportNote": "Short note for moderation",
"submitReport": "Submit report",
"reportSubmitted": "The report has been submitted.",
"reportError": "The report could not be saved.",
"moderationHidden": "Hidden by moderation",
"hiddenByModeration": "This content has been temporarily hidden by moderation.",
"reportReasons": {
"suspected_minor": "Suspected minor",
"non_consensual": "Non-consensual content",
"violence": "Violence or abuse",
"harassment": "Harassment or pressure",
"spam": "Spam or scam",
"other": "Other"
},
"intro": "The area is unlocked. The actual picture and video modules follow in the next step.",
"enabledTitle": "Access unlocked",
"enabledBody": "Your account is enabled for the erotic area. The separate picture and video views are built next.",
"roadmapTitle": "Next up",
"roadmapModeration": "separate moderation and reporting paths",
"roadmapUpload": "dedicated upload and management views",
"roadmapSeparation": "clear separation from the normal gallery",
"status": {
"none": {
"title": "Not unlocked yet",
"body": "The area is visible, but stays locked until moderator approval."
},
"pending": {
"title": "Review pending",
"body": "Your request is waiting for moderation review."
},
"approved": {
"title": "Unlocked",
"body": "The erotic area is already unlocked for your account."
},
"rejected": {
"title": "Request denied",
"body": "The last request was denied. You can submit a new request."
}
}
},
"vocab": {
"title": "Vocabulary trainer",
"description": "Create languages (or subscribe to them) and share them with friends.",
"heroEyebrow": "Language learning",
"summaryTotalLabel": "Languages total",
"summaryTotalIntro": "All active language areas where you use or manage content.",
"summaryOwnedLabel": "Owned areas",
"summaryOwnedIntro": "This is where you actively create content, chapters, and learning material yourself.",
"summarySubscribedLabel": "Subscribed",
"summarySubscribedIntro": "These areas are more about learning and progress than administration.",
"taskCreateEyebrow": "Quick start",
"taskCreateTitle": "Create new language",
"taskCreateIntro": "The best starting point if you want to structure and maintain content yourself.",
"taskContinueEyebrow": "Continue learning",
"taskContinueTitle": "Open courses and chapters",
"taskContinueIntro": "Jump straight into existing learning paths and continue with available courses.",
"ownedSectionTitle": "Owned languages",
"ownedSectionIntro": "Direct access to editing, chapters, and course management.",
"ownedHint": "Manage and maintain content",
"ownedEmpty": "No owned language areas yet.",
"subscribedSectionTitle": "Subscribed languages",
"subscribedSectionIntro": "Good for quickly getting back into learning without admin overhead.",
"subscribedHint": "Learn, practice, and review progress",
"subscribedEmpty": "No subscribed languages available.",
"languageHeroEyebrow": "Language",
"languageHeroIntro": "Chapters, search tools, and sharing for this language in one place.",
"newLanguageHeroEyebrow": "Vocabulary trainer",
"newLanguageHeroIntro": "Create a new language, generate a share code, and jump straight into editing.",
"newLanguageNameHint": "A short, clear language name is enough to get started.",
"newLanguageNameValidation": "The name should have at least 2 characters.",
"subscribeHeroEyebrow": "Vocabulary trainer",
"chapterHeroEyebrow": "Vocabulary trainer",
"chapterHeroIntro": "Browse chapter content, maintain vocabulary, and jump directly into practice.",
"newLanguage": "New language",
"newLanguageTitle": "Create new language",
"languageName": "Language name",
"create": "Create",
"saving": "Saving...",
"created": "Language created.",
"createdTitle": "Vocabulary trainer",
"createdMessage": "Language created. The menu will refresh.",
"createError": "Could not create language.",
"openLanguage": "Open",
"none": "You have no languages yet (created or subscribed).",
"owner": "Owned",
"subscribed": "Subscribed",
"languageTitle": "Vocabulary trainer: {name}",
"notFound": "Language not found or no access.",
"shareCode": "Share code",
"shareHint": "Send this code to friends so they can subscribe to this language.",
"subscribeByCode": "Subscribe by code",
"subscribeTitle": "Subscribe to language",
"subscribeHint": "Enter a share code you received from a friend.",
"subscribe": "Subscribe",
"subscribeSuccess": "Subscribed. The menu will refresh.",
"subscribeError": "Subscribe failed. Invalid code or no access.",
"trainerPlaceholder": "Trainer features (words/quizzes) will be the next step."
,
"chapters": "Chapters",
"newChapter": "New chapter",
"createChapter": "Create chapter",
"createChapterError": "Could not create chapter.",
"noChapters": "No chapters yet.",
"chapterTitle": "Chapter: {title}",
"addVocab": "Add vocabulary",
"learningWord": "To learn",
"referenceWord": "Reference",
"add": "Add",
"addVocabError": "Could not add vocabulary.",
"noVocabs": "No vocabulary in this chapter yet."
,
"practice": {
"open": "Practice",
"title": "Practice vocabulary",
"allVocabs": "All vocabulary",
"simple": "Simple practice",
"noPool": "No vocabulary to practice.",
"dirLearningToRef": "To learn → Reference",
"dirRefToLearning": "Reference → To learn",
"check": "Check",
"next": "Next",
"skip": "Skip",
"correct": "Correct!",
"wrong": "Wrong.",
"acceptable": "Acceptable answers:",
"stats": "Stats",
"success": "Success",
"fail": "Fail"
},
"search": {
"open": "Search",
"title": "Search vocabulary",
"term": "Search term",
"motherTongue": "Mother tongue",
"learningLanguage": "Learning language",
"lesson": "Lesson",
"search": "Search",
"noResults": "No results.",
"error": "Search failed."
},
"courses": {
"title": "Language Learning Courses",
"create": "Create Course",
"myCourses": "My Courses",
"allCourses": "All Courses",
"none": "No courses found.",
"owner": "Owner",
"enrolled": "Enrolled",
"public": "Public",
"difficulty": "Difficulty",
"lessons": "Lessons",
"enroll": "Enroll",
"continue": "Continue",
"edit": "Edit",
"addLesson": "Add Lesson",
"completed": "Completed",
"score": "Score",
"review": "Review",
"start": "Start",
"resetLessonProgress": "Reset lesson",
"resetLessonProgressConfirm": "Reset progress for this lesson? Saved state, exercise results, and trainer progress will be cleared. Other lessons stay unchanged.",
"resetLessonProgressSuccess": "Lesson progress was reset.",
"resetLessonProgressError": "Could not reset the lesson.",
"noLessons": "This course has no lessons yet.",
"lessonNumber": "Lesson Number",
"chapter": "Chapter",
"selectChapter": "Select Chapter",
"selectLanguage": "Select Language",
"confirmDelete": "Really delete lesson?",
"titleLabel": "Title",
"descriptionLabel": "Description",
"languageLabel": "Language",
"findByCode": "Find Course by Code",
"shareCode": "Share Code",
"searchPlaceholder": "Search courses...",
"allLanguages": "All Languages",
"targetLanguage": "Target Language",
"nativeLanguage": "Native Language",
"allNativeLanguages": "All Native Languages",
"myNativeLanguage": "My Native Language",
"forAllLanguages": "For All Languages",
"optional": "Optional",
"invalidCode": "Invalid code",
"courseNotFound": "Course not found",
"grammarExercises": "Chapter Test",
"exerciseFlowIntro": "Work through the tasks in order. Every correct answer moves you closer to completing the lesson.",
"exerciseProgressLabel": "Progress",
"exerciseTargetLabel": "Required",
"exerciseCardLabel": "Task {number}",
"exerciseSequentialProgress": "Question {current} of {total}",
"exerciseSequentialBack": "Back",
"exerciseSequentialNext": "Next",
"exerciseWrongTitle": "Not quite right",
"exerciseReinforcementGoPractice": "Go to practice",
"exerciseReinforcementStay": "Stay on the test",
"exerciseStatusOpen": "Open",
"exerciseStatusCorrect": "Done",
"exerciseStatusRetry": "Try again",
"exerciseAnswerAllHint": "Answer all {total} tasks first. Completed so far: {answered}. You need at least {target}% to pass.",
"exerciseNeedMoreCorrectHint": "You currently have {score}%. You need at least {target}% to complete this lesson.",
"exercisePassedHint": "Target reached: {score}% out of the required {target}%. Once all tasks have been answered, the chapter test is passed.",
"exerciseReinforcementHint": "After a mistake, the flow returns briefly to learning mode. Practice {count} more trainer questions and the chapter test will unlock again.",
"exercisePrepReinforcementHint": "After a mistake, go through the prepared terms once more. Then the chapter test will unlock again.",
"exerciseGrammarLead": "Key grammar for this test",
"noExercises": "No test available",
"enterAnswer": "Enter answer",
"checkAnswer": "Check Answer",
"correct": "Correct!",
"wrong": "Wrong",
"explanation": "Explanation",
"learn": "Learn",
"exercises": "Chapter Test",
"learnVocabulary": "Learn Vocabulary",
"lessonOverviewText": "This lesson combines vocabulary, patterns, short grammar impulses, and active speaking practice.",
"lessonDescription": "Lesson Description",
"culturalNotes": "Cultural Notes",
"grammarExplanations": "Grammar Explanations",
"grammarImpulse": "Grammar Focus",
"learningGoals": "Learning Goals",
"corePatterns": "Core Patterns",
"corePatternsHint": "Read the target language first, then the meaning below — you learn each pattern both ways.",
"learningGrammarTitle": "Briefly frame the grammar",
"learningGrammarIntro": "Read these 1-2 hints after the key terms. Then you go into the trainer with better orientation.",
"vocabPrepTitle": "Preparation before the vocabulary trainer",
"vocabPrepStep1": "Read through core patterns and the word list (native language ↔ target language) once.",
"vocabPrepProgress": "Pass {pass}: item {current} of {total}",
"vocabPrepTargetLabel": "Target language",
"vocabPrepGlossLabel": "Meaning",
"vocabPrepNextItem": "Next item",
"vocabPrepConfirm1": "First pass done",
"vocabPrepStep2": "Go through the same items again (active review, not testing yet).",
"vocabPrepConfirm2": "Second pass done",
"vocabPrepReady": "You can start the vocabulary trainer now.",
"learningPathLabel": "Main path",
"learningPathTitle": "Your learning flow for this lesson",
"learningPathIntro": "Work through these steps in order: prepare, review briefly, train, then move to the chapter test.",
"lessonDetailsToggle": "Show more lesson details",
"deepenSectionTitle": "Deepen and review",
"assistantSectionTitle": "Deepen with language assistant",
"vocabOverviewToggle": "Show full overview of terms",
"vocabTrainerLockedHint": "Please confirm two preparation steps under “Preparation before the vocabulary trainer” first.",
"exerciseUnlockHintAfterPrep": "Work through the prepared terms first. The chapter test will unlock afterwards.",
"speakingTasks": "Speaking Tasks",
"speakingPrompt": "Speaking Prompt",
"practicalTasks": "Practical Tasks",
"importantVocab": "Important Vocabulary",
"vocabInfoText": "These terms are used in the test. Learn them here passively before switching to the chapter test.",
"noVocabInfo": "Read the description above and the explanations in the test to learn the most important terms.",
"vocabTrainer": "Vocabulary Trainer",
"vocabTrainerDescription": "Practice the most important terms of this lesson interactively.",
"startVocabTrainer": "Start Vocabulary Trainer",
"stopTrainer": "Stop Trainer",
"translateTo": "Translate into Bisaya",
"translateFrom": "Translate into German",
"next": "Next",
"totalAttempts": "Attempts",
"successRate": "Success Rate",
"modeMultipleChoice": "Multiple Choice",
"modeTyping": "Text Input",
"currentLesson": "Current Lesson",
"mixedReview": "Review",
"lessonCompleted": "Lesson completed!",
"goToNextLesson": "Go to next lesson?",
"allLessonsCompleted": "All lessons completed!",
"startExercises": "Start Chapter Test",
"lessonTypeLabel": "Lesson Type",
"recommendedDuration": "Recommended Duration",
"exerciseLoad": "Exercise Load",
"exercisesShort": "exercises",
"durationFlexible": "Flexible",
"durationMinutes": "{minutes} minutes",
"lessonTypeVocab": "Vocabulary",
"lessonTypeGrammar": "Grammar",
"lessonTypeConversation": "Conversation",
"lessonTypeCulture": "Culture",
"lessonTypeReview": "Review",
"correctAnswer": "Correct Answer",
"alternatives": "Alternative Answers",
"notStarted": "Not Started",
"continueCurrentLesson": "Continue Current Lesson",
"previousLessonRequired": "Please complete the previous lesson first",
"lessonNumberShort": "#",
"buildSentencePlaceholder": "Build your sentence here",
"completeDialogPlaceholder": "Complete the missing dialog line",
"situationalResponsePlaceholder": "Write your response to the situation",
"patternDrillPlaceholder": "Create a fitting sentence with the pattern",
"modelSentence": "Model sentence",
"modelDialogLine": "Possible dialog line",
"modelResponse": "Possible response",
"modelPattern": "Possible pattern example",
"patternPrompt": "Pattern",
"readingAloudInstruction": "Read the text aloud. Click 'Start Recording' and begin speaking.",
"speakingFromMemoryInstruction": "Speak freely from memory. Use the displayed keywords.",
"startRecording": "Start Recording",
"stopRecording": "Stop Recording",
"startSpeaking": "Start Speaking",
"recording": "Recording...",
"listening": "Listening...",
"recordingStopped": "Recording stopped",
"recordingError": "Recording error",
"recognizedText": "Recognized Text",
"speechRecognitionNotSupported": "Speech Recognition is not supported by this browser. Please use Chrome or Edge.",
"speakingFallbackInstruction": "Your browser does not support speech input here. Write down what you would say instead and check it normally.",
"speakingFallbackPlaceholder": "Write what you would say here ...",
"keywords": "Keywords",
"switchBackToMultipleChoice": "Switch back to Multiple Choice",
"languageAssistantEyebrow": "Language assistant",
"languageAssistantCourseTitle": "AI support for this course",
"languageAssistantCourseReady": "The language assistant is configured and available inside lessons for explanations, corrections, and short dialogue practice.",
"languageAssistantCourseSetup": "Set up the language assistant so you can ask lesson-specific questions and practice short dialogues.",
"languageAssistantOpenLesson": "Open in current lesson",
"languageAssistantTitle": "Practice with the language assistant",
"languageAssistantIntro": "Use the AI directly inside the current lesson: get grammar explained, practice short dialogues, or have your own sentences corrected.",
"languageAssistantSettings": "Configure assistant",
"languageAssistantSetupHint": "The language assistant is not configured yet or is currently disabled. Please save your model and API access in the settings first.",
"languageAssistantModePractice": "Practice",
"languageAssistantModeExplain": "Explain",
"languageAssistantModeCorrect": "Correct",
"languageAssistantPromptExplain": "Explain grammar",
"languageAssistantPromptPractice": "Practice mini dialogue",
"languageAssistantPromptCorrect": "Improve my sentence",
"languageAssistantSpeakerAi": "Language assistant",
"languageAssistantSpeakerYou": "You",
"languageAssistantInputLabel": "Your message",
"languageAssistantInputPlaceholder": "Ask a lesson question or write your own sentence for correction.",
"languageAssistantSend": "Send to assistant",
"languageAssistantSending": "Getting answer ...",
"languageAssistantError": "The language assistant could not answer right now.",
"languageAssistantPresetExplainStart": "Please explain the main patterns and grammar in the lesson",
"languageAssistantPatternHint": "Focus especially on this pattern",
"languageAssistantPresetPracticeStart": "Let's practice a short everyday dialogue for the lesson \"{lesson}\". Please ask me questions and wait for my answers.",
"languageAssistantPresetCorrectStart": "I want to write my own sentences for the lesson \"{lesson}\". Please correct my answers briefly and clearly.",
"thisLesson": "this lesson",
"courseKicker": "Learning course",
"courseListKicker": "Courses",
"courseListIntro": "Filter public and your own learning courses, find the right one, and continue directly.",
"courseShareCodePlaceholder": "e.g. abc123def456",
"courseFlowEyebrow": "Daily flow",
"courseFlowTitle": "Best next step for today",
"courseFlowIntro": "Start with todays suggested order at the top. Below that, the four areas in detail: due quick reviews, current block, intensive review, free practice.",
"courseTodayPlanTitle": "Suggested for today",
"courseTodayPlanIntro": "Practical order: first everything that is due for a quick review, then open lessons in your current block, then intensive review if shown. Quick reviews are three short revisit dates after you finish a lesson (typically about 1, 3 and 7 days apart) so vocabulary sticks.",
"courseTodayPlanStepReviewDue": "Quick review now",
"courseTodayPlanStepBlock": "Continue in your current block",
"courseTodayPlanStepIntensive": "Intensive review",
"courseTodayPlanStepContinue": "Next on your learning path",
"courseTodayPlanStepPractice": "Free practice (optional)",
"courseTodayPlanOpen": "Open lesson",
"courseTodayPlanTrainer": "Open trainer",
"courseTodayPlanEmpty": "Nothing scheduled as due right now and no clear next block step. Pick a lesson below or use free practice with the trainer.",
"courseFlowReviewStat": "Due review: {count}",
"courseFlowBlockStat": "Active block: {block}",
"courseFlowReviewTitle": "Due review",
"courseFlowReviewDescription": "Lessons already completed that should come back today.",
"courseFlowReviewEmpty": "No older lesson is marked as due for review today.",
"courseFlowBlockTitle": "Current block",
"courseFlowBlockDescription": "This is where the next regular progress step in the course lives.",
"courseFlowBlockEmpty": "The current block is already done or there is no open block lesson right now.",
"courseFlowIntensiveTitle": "Due intensive review",
"courseFlowIntensiveDescription": "Condensed review once the block before it is mostly stable.",
"courseFlowIntensiveEmpty": "No new intensive review is unlocked right now.",
"courseFlowPracticeTitle": "Free practice",
"courseFlowPracticeDescription": "Completed lessons for relaxed extra practice outside the required path.",
"courseFlowPracticeEmpty": "As soon as you complete your first lessons, they will appear here for free practice.",
"practiceInTrainer": "Practice in trainer",
"lessonsCount": "{count} lessons",
"lessonBlockLabel": "Block {number}",
"lessonIntensiveBadge": "Intensive review",
"addLessonValidation": "Please provide number, title, and chapter.",
"addLessonSuccess": "Lesson created successfully.",
"addLessonError": "Could not add the lesson.",
"createCourseError": "Could not create the course.",
"deleteLessonTitle": "Delete lesson",
"deleteLessonSuccess": "Lesson deleted successfully.",
"deleteLessonError": "Could not delete the lesson.",
"enrollCourseError": "Could not enroll in the course.",
"editLessonPending": "Editing individual lessons is still pending.",
"timeToday": "today",
"timeSinceOneDay": "since 1 day",
"timeSinceDays": "since {count} days",
"reviewDueNow": "due now",
"reviewDueTomorrow": "due tomorrow",
"reviewDueInDays": "due in {count} days",
"reviewDueToday": "due today",
"reviewDueSinceOneDay": "due since 1 day",
"reviewDueSinceDays": "due since {count} days",
"reviewBadgeScheduleTomorrow": "next review wave tomorrow",
"reviewBadgeScheduleInDays": "next wave in {count} days",
"reviewBadgeScheduleToday": "wave slated for today",
"reviewBadgeScheduleOverdue": "wave overdue ({count} days)",
"reviewBadgeLineAllDone": "All quick reviews done (3×)",
"reviewBadgeLineDue": "Quick review: step {step} of 3 · due now",
"reviewBadgeLineScheduled": "Quick review: step {step} of 3 · next on {when}",
"reviewWhenFriendlyTomorrow": "tomorrow",
"reviewWhenFriendlyInDays": "in {count} days",
"reviewWhenFriendlyToday": "today",
"reviewWhenFriendlyOverdue": "overdue ({count} day(s) ago)",
"reviewWhenFriendlySoon": "soon",
"reviewBadgeTooltipDone": "You finished the three suggested quick reviews after this lesson. You can still keep practicing in the trainer.",
"reviewBadgeTooltipActive": "After you complete a lesson, the course suggests three short reviews about 1, 3 and 7 days apart so words stay in memory. The badge shows which step (13) is active or when the next date is.",
"reviewStageDay1": "Step 1 of 3 (~1 day)",
"reviewStageDay3": "Step 2 of 3 (~3 days)",
"reviewStageDay7": "Step 3 of 3 (~7 days)",
"reviewStageCompleted": "All quick reviews done",
"phaseQuickstart": "Quick start",
"phaseDailyLife": "Daily life",
"phaseStabilization": "Stabilization",
"phaseDefault": "Learning phase",
"didacticModeCoreInput": "New content",
"didacticModeGuidedDialogue": "Guided dialogue",
"didacticModeContrastTraining": "Contrast training",
"didacticModePatternDrill": "Pattern drill",
"didacticModeRealLifeScenario": "Real-life scenario",
"didacticModeIntensiveReview": "Review phase",
"didacticModeCheckpoint": "Checkpoint",
"didacticModeDefault": "Learning unit",
"didacticModeFocusDefault": "Learning focus",
"lessonMetaFocus": "Focus",
"lessonMetaPhase": "Phase",
"lessonMetaNewUnits": "New units",
"lessonMetaReview": "Review",
"intensiveReviewTitle": "Intensive review phase",
"intensiveReviewIntro": "This lesson prioritizes review and consolidation. New material is intentionally reduced so existing patterns can stabilize.",
"reviewPriorityTitle": "Review is mixed in step by step",
"reviewPriorityIntro": "The focus starts on the new terms of this lesson. As you progress, older vocabulary is gradually mixed in.",
"exerciseLockTitle": "Chapter test still locked",
"exerciseUnlockHintTrainerCore": "The chapter test unlocks when all three conditions are met: at least {newTarget} questions on new content (see “New content”), about {attempts} trainer questions in total, and a success rate of at least {rate}%.",
"exerciseUnlockHintTrainerMixSuffix": "Older vocabulary is mixed in gradually.",
"trainerStartWithReview": "Start with the new vocabulary from this lesson. As you practice, the trainer will automatically mix in fitting review items.",
"startLesson": "Start lesson",
"trainerProgressNewContent": "New content: {current}/{target}",
"trainerProgressReview": "Review: {count}",
"trainerProgressMixShare": "Mixed share: {percent}%",
"unknownExerciseTypeNotice": "This exercise type is not displayed interactively in the current view yet.",
"unknownExerciseTypeLabel": "Type: {type}",
"lessonReviewHeadlineDone": "This lesson has reached the free practice stage.",
"lessonReviewHeadlineDue": "This review wave is due now.",
"lessonReviewHeadlineScheduled": "This lesson is scheduled for the next review wave.",
"lessonReviewHintDone": "The 1/3/7-day review cycle is complete. You can now continue practicing this lesson freely.",
"lessonReviewHintNextDue": "Next due date: {due}.",
"reviewTimeNow": "now",
"reviewTimeTomorrow": "tomorrow",
"reviewTimeInDays": "in {count} days"
}
}
}
}