Files
yourpart3/frontend/src/i18n/locales/de/socialnetwork.json
Torsten Schulz (local) 545314e905
All checks were successful
Deploy to production / deploy (push) Successful in 2m52s
feat(i18n, frontend): enhance course planning with optional steps and localization updates
- Added a new section for optional learning steps in the course planning UI, allowing users to engage with additional content when no mandatory tasks are due.
- Updated localization files for Cebuano, German, English, Spanish, and French to reflect changes in course planning instructions and titles, ensuring clarity and consistency across languages.
- Improved pedagogical logic for lesson recommendations, focusing on cognitive load and spaced repetition principles to enhance user learning experience.
2026-04-10 13:33:25 +02:00

808 lines
48 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-Suche",
"intro": "Mit Namen, Alter und Geschlecht gezielt passende Kontakte in der Community finden.",
"ageSeparator": "bis",
"resultsCount": "{count} Treffer",
"openProfile": "Profil öffnen",
"title": "Benutzersuche",
"username": "Benutzername",
"age_from": "Alter von",
"age_to": "bis",
"gender": "Geschlecht",
"search_button": "Suchen",
"no_results": "Keine Ergebnisse gefunden",
"results_title": "Suchergebnisse:",
"result": {
"nick": "Spitzname",
"gender": "Geschlecht",
"age": "Alter"
}
},
"profile": {
"pretitle": "Lade Daten. Bitte warten...",
"error_title": "User nicht gefunden",
"title": "Profil von <username>",
"tab": {
"general": "Allgemeines",
"sexuality": "Sexualität",
"images": "Galerie",
"guestbook": "Gästebuch"
},
"values": {
"bool": {
"true": "Ja",
"false": "Nein"
},
"smokes": {
"never": "Nie",
"socially": "In Gesellschaft",
"often": "Oft",
"daily": "Täglich"
},
"drinks": {
"never": "Nie",
"socially": "In Gesellschaft",
"often": "Oft",
"daily": "Täglich"
},
"interestedInGender": {
"male": "Männern",
"female": "Frauen"
},
"sexualpreference": {
"straight": "Heterosexuell",
"gay": "Homosexuell",
"bi": "Bisexuell",
"pan": "Pansexuell",
"asexual": "Asexuell"
},
"pubichair": {
"none": "Keine",
"short": "Kurz",
"medium": "Mittel",
"long": "Lang",
"hairy": "Unrasiert",
"waxed": "Gewachst",
"landingstrip": "Landebahn",
"other": "Anderes",
"bikinizone": "Bikinizone"
},
"gender": {
"male": "Männlich",
"female": "Weiblich",
"transmale": "Trans-Frau",
"transfemale": "Trans-Mann",
"nonbinary": "Nonbinär"
},
"language": {
"de": "Deutsch",
"en": "Englisch"
},
"eyecolor": {
"blue": "Blau",
"green": "Grün",
"brown": "Braun",
"black": "Schwarz",
"grey": "Grau",
"hazel": "Haselnuss",
"amber": "Bernstein",
"red": "Rot",
"other": "Andere"
},
"haircolor": {
"black": "Schwarz",
"brown": "Braun",
"blonde": "Blond",
"red": "Rot",
"grey": "Grau",
"white": "Weiß",
"other": "Andere"
},
"hairlength": {
"short": "Kurz",
"medium": "Mittel",
"long": "Lang",
"bald": "Glatze",
"other": "Andere"
},
"skincolor": {
"light": "Hell",
"medium": "Mittel",
"dark": "Dunkel",
"other": "Andere"
},
"freckles": {
"much": "Viele",
"medium": "Mittel",
"less": "Wenige",
"none": "Keine"
}
},
"guestbook": {
"showInput": "Neuer Eintrag anzeigen",
"hideInput": "Neuer Eintrag verbergen",
"imageUpload": "Bild",
"submit": "Eintrag absenden",
"noEntries": "Keine Einträge gefunden",
"entryImageAlt": "Bild zum Gästebucheintrag"
},
"interestedInGender": "Interessiert an",
"hasChildren": "Hat Kinder",
"smokes": "Rauchen",
"drinks": "Alkohol",
"willChildren": "Will Kinder",
"sexualpreference": "Sexuelle Ausrichtung",
"pubichair": "Schamhaare",
"penislength": "Penislänge",
"brasize": "BH-Größe",
"piercings": "Piercings",
"tattoos": "Tattoos",
"language": "Sprache",
"gender": "Geschlecht",
"eyecolor": "Augenfarbe",
"haircolor": "Haarfarbe",
"hairlength": "Haarlänge",
"freckles": "Sommersprossen",
"skincolor": "Hautfarbe",
"birthdate": "Geburtsdatum",
"age": "Alter",
"town": "Stadt",
"bodyheight": "Größe",
"weight": "Gewicht"
},
"gallery": {
"kicker": "Bilder und Ordner",
"intro": "Eigene Inhalte organisieren, sichtbar machen und in Ordnern strukturieren.",
"title": "Gallerie",
"folders": "Ordner",
"create_folder": "Ordner anlegen",
"upload": {
"title": "Bild hochladen",
"image_title": "Titel",
"image_file": "Datei",
"visibility": "Sichtbar für",
"upload_button": "Hochladen",
"selectvisibility": "Bitte auswählen"
},
"images": "Bilder",
"visibility": {
"everyone": "Jeden",
"friends": "Freunde",
"adults": "Erwachsene",
"friends-and-adults": "Freunde und Erwachsene",
"selected-users": "Ausgewählte Benutzer",
"none": "Niemand"
},
"create_folder_dialog": {
"title": "Ordner anlegen",
"parent_folder": "Wird angelegt in",
"folder_title": "Ordnername",
"visibility": "Sichtbar für",
"select_visibility": "Bitte auswählen"
},
"noimages": "In diesem Ordner befinden sich zur Zeit keine Bilder",
"imagedialog": {
"image_title": "Titel",
"edit_visibility": "Sichtbar für",
"save_changes": "Änderungen speichern",
"close": "Schließen",
"edit_visibility_placeholder": "Bitte auswählen"
},
"delete_folder_confirmation_title": "Ordner löschen",
"delete_folder_confirmation_message": "Soll der Ordner '%%folderName%%' wirklich gelöscht werden?",
"edit_image_dialog": {
"title": "Bilddaten editieren"
},
"show_image_dialog": {
"title": "Bild"
},
"imagePreviewAlt": "Bildvorschau",
"imageLoadingAlt": "Bild wird geladen"
},
"guestbook": {
"kicker": "Gästebuch",
"intro": "Nachrichten, Rückmeldungen und kleine Einblicke aus deinem Netzwerk.",
"title": "Gästebuch",
"prevPage": "Zurück",
"nextPage": "Weiter",
"page": "Seite"
},
"diary": {
"kicker": "Persönliche Einträge",
"intro": "Gedanken, Notizen und kurze Updates in einer ruhigen, persönlichen Ansicht.",
"placeholder": "Schreibe deinen Tagebucheintrag...",
"title": "Tagebuch",
"noEntries": "Du hast noch keine Tagebucheinträge gemacht.",
"newEntry": "Neuer Tagebucheintrag",
"editEntry": "Tagebucheintrag ändern",
"save": "Speichern",
"update": "Ändern",
"cancel": "Abbrechen",
"edit": "Ändern",
"delete": "Löschen",
"confirmDelete": "Willst Du den Eintrag wirklich löschen?",
"prevPage": "Zurück",
"nextPage": "Weiter",
"page": "Seite"
},
"forum": {
"kicker": "Community-Forum",
"intro": "Themen, Diskussionen und neue Beiträge an einem strukturierten Ort.",
"createTitle": "Neues Thema verfassen",
"createIntro": "Erst Titel setzen, dann den Beitrag schreiben und anschließend direkt veröffentlichen.",
"cancelCreation": "Abbrechen",
"creationHint": "Titel und Inhalt müssen beide ausgefüllt sein.",
"communityFallback": "Community",
"topicIntro": "Diskussionen, Antworten und neue Beiträge in einer fokussierten Lesefläche.",
"topicCreated": "Thema erfolgreich erstellt.",
"topicCreateError": "Fehler beim Erstellen des Themas",
"title": "Forum",
"showNewTopic": "Neues Thema erstellen",
"hideNewTopic": "Erstellen unterbrechen",
"noTitles": "Keine Themen vorhanden",
"topic": "Thema",
"createNewTopic": "Thema anlegen",
"createdBy": "Erstellt von",
"createdAt": "Erstellt am",
"reactions": "Reaktion",
"lastReaction": "Letzte Reaktion von",
"pagination": {
"first": "Erste Seite",
"previous": "Vorherige Seite",
"next": "Nächste Seite",
"last": "Letzte Seite",
"page": "Seite <<page>> von <<of>>"
},
"createNewMesssage": "Antwort senden"
},
"friendship": {
"error": {
"alreadyexists": "Die Freundschaftsanfrage existiert bereits"
},
"state": {
"none": "Nicht befreundet",
"waiting": "Freundschaftsanfrage gesendet, aber nicht beantwortet",
"open": "Freundschaft wurde angefragt",
"denied": "Freundschaftsanfrage abgelehnt",
"withdrawn": "Freundschaftsanfrage zurückgezogen",
"accepted": "Befreundet"
},
"added": "Du hast eine Freundschaftsanfrage gestellt.",
"withdrawn": "Du hast Deine Freundschaftsanfrage zurückgezogen.",
"denied": "Du hast die Freundschaftsanfrage abgelehnt.",
"accepted": "Die Freundschaft wurde geschlossen."
},
"erotic": {
"eyebrow": "Erotik",
"accessTitle": "Freischaltung für den Erotikbereich",
"accessIntro": "Bilder, Videos und später auch Chatbereiche werden ab 18 angezeigt, aber erst nach Moderationsfreigabe nutzbar.",
"lockedShort": "Dieser Bereich wird erst nach Moderatorfreigabe nutzbar.",
"requestVerification": "Freischaltung anfragen",
"requestSent": "Die Freischaltung wurde angefragt.",
"requestError": "Die Freischaltung konnte nicht angefragt werden.",
"requestInfoTitle": "Eingereichter Nachweis",
"documentLabel": "Nachweisdatei",
"noteLabel": "Kurze Notiz für die Moderation",
"settingsLink": "Account-Einstellungen öffnen",
"verificationHintTitle": "Hinweis zum Nachweis",
"verificationHintBody": "Du kannst ein Foto senden. Wenn dein Alter darauf nicht eindeutig erkennbar ist, wird der Antrag abgelehnt und du musst stattdessen einen Ausweis einreichen.",
"notifications": {
"approved": "Dein Erotikbereich wurde von der Moderation freigeschaltet.",
"rejected": "Dein Antrag auf den Erotikbereich wurde abgelehnt. Wenn dein Alter auf Fotos nicht eindeutig erkennbar ist, sende bitte einen Ausweis."
},
"picturesTitle": "Erotikbilder",
"picturesIntro": "Eigene Inhalte bleiben strikt vom normalen Galeriebereich getrennt. Hier verwaltest du nur Bilder für den freigeschalteten Erotikbereich.",
"uploadTitle": "Erotikbild hochladen",
"noimages": "In diesem Erotikordner befinden sich zur Zeit keine Bilder.",
"videosTitle": "Erotikvideos",
"videosIntro": "Eigene Videos werden getrennt vom normalen Social-Bereich verwaltet. Hier organisierst du Uploads, Sichtbarkeit und Moderationsstatus an einem Ort.",
"videoUploadTitle": "Erotikvideo hochladen",
"videoUploadHint": "Lade hier Videos für deinen freigeschalteten Erotikbereich hoch und pflege Titel sowie Beschreibung direkt beim Upload.",
"videoDescription": "Beschreibung",
"videoFile": "Videodatei",
"videoFormats": "MP4, WEBM, OGG, MOV",
"myVideos": "Meine Videos",
"sharedVideos": "Freigegebene Videos",
"foreignVideosIntro": "Freigegebene Videos aus dem Erwachsenenbereich.",
"foreignVideosOnlyHint": "Du siehst hier nur Videos, die dir für den Erwachsenenbereich freigegeben wurden.",
"sharedVideosIntro": "Sichtbare Videos aus freigegebenen Erwachsenenbereichen.",
"noSharedVideos": "Für dich sind aktuell keine freigegebenen Videos vorhanden.",
"libraryTitle": "Bibliothek",
"libraryIntro": "Eigene Uploads, Freigaben und Meldungen an einem Ort.",
"libraryEmptyHint": "Lege links dein erstes Video an und verwalte es danach hier in der Bibliothek.",
"latestUpload": "Letzter Upload",
"visibleVideos": "Sichtbare Videos",
"moderationCases": "Moderationsfälle",
"notesTitle": "Hinweise",
"friendsVisibilityHint": "Freunde sehen Inhalte nur dann, wenn sie volljährig und für den Erwachsenenbereich freigeschaltet sind.",
"selectedUsersVisibilityHint": "Gezielt freigegebene Personen müssen ebenfalls volljährig und freigeschaltet sein.",
"selectedUsersPlaceholder": "anna, bert, clara",
"imagePreviewAlt": "Bildvorschau",
"imageLoadingAlt": "Bild wird geladen",
"untitled": "Ohne Titel",
"noUploadYet": "Noch kein Upload",
"closeEditing": "Bearbeitung schließen",
"editVisibility": "Freigaben bearbeiten",
"noVideos": "Du hast noch keine Erotikvideos hochgeladen.",
"reportAction": "Melden",
"reportHint": "Nutze {action} direkt am jeweiligen Eintrag, wenn Inhalte geprüft werden sollen.",
"reportNote": "Kurze Notiz für die Moderation",
"submitReport": "Meldung absenden",
"reportSubmitted": "Die Meldung wurde aufgenommen.",
"reportError": "Die Meldung konnte nicht gespeichert werden.",
"moderationHidden": "Von Moderation verborgen",
"hiddenByModeration": "Dieser Inhalt wurde vorläufig durch die Moderation verborgen.",
"reportReasons": {
"suspected_minor": "Verdacht auf Minderjährigkeit",
"non_consensual": "Nicht einvernehmlicher Inhalt",
"violence": "Gewalt oder Missbrauch",
"harassment": "Belästigung oder Druck",
"spam": "Spam oder Scam",
"other": "Sonstiges"
},
"intro": "Der Bereich ist freigeschaltet. Die eigentlichen Bilder- und Videomodule folgen im nächsten Schritt.",
"enabledTitle": "Zugang freigeschaltet",
"enabledBody": "Dein Account ist für den Erotikbereich freigegeben. Hier entsteht jetzt die getrennte Bilder- und Videoansicht.",
"roadmapTitle": "Als Nächstes",
"roadmapModeration": "getrennte Moderation und Meldewege",
"roadmapUpload": "eigene Upload- und Verwaltungsansichten",
"roadmapSeparation": "saubere Trennung von normaler Galerie und Erotikbereich",
"status": {
"none": {
"title": "Noch nicht freigeschaltet",
"body": "Der Bereich ist sichtbar, bleibt aber bis zur Moderatorfreigabe gesperrt."
},
"pending": {
"title": "Prüfung läuft",
"body": "Deine Anfrage liegt zur Moderationsprüfung vor."
},
"approved": {
"title": "Freigeschaltet",
"body": "Der Erotikbereich ist für deinen Account bereits freigeschaltet."
},
"rejected": {
"title": "Freischaltung abgelehnt",
"body": "Die letzte Anfrage wurde abgelehnt. Du kannst eine neue Anfrage stellen."
}
}
},
"vocab": {
"title": "Vokabeltrainer",
"description": "Lege Sprachen an (oder abonniere sie) und teile sie mit Freunden.",
"heroEyebrow": "Sprachenlernen",
"summaryTotalLabel": "Sprachen gesamt",
"summaryTotalIntro": "Alle aktiven Sprachbereiche, in denen du Inhalte nutzt oder verwaltest.",
"summaryOwnedLabel": "Eigene Bereiche",
"summaryOwnedIntro": "Hier legst du Inhalte, Kapitel und Lernmaterial aktiv selbst an.",
"summarySubscribedLabel": "Abonniert",
"summarySubscribedIntro": "Diese Bereiche sind eher für Lernen und Fortschritt statt Verwaltung gedacht.",
"taskCreateEyebrow": "Schnellstart",
"taskCreateTitle": "Neue Sprache anlegen",
"taskCreateIntro": "Der beste Einstieg, wenn du Inhalte selbst strukturieren und pflegen willst.",
"taskContinueEyebrow": "Weiterlernen",
"taskContinueTitle": "Kurse und Kapitel öffnen",
"taskContinueIntro": "Springe direkt in bestehende Lernpfade und arbeite mit vorhandenen Kursen weiter.",
"ownedSectionTitle": "Eigene Sprachen",
"ownedSectionIntro": "Direkter Einstieg in Bearbeitung, Kapitel und Kursverwaltung.",
"ownedHint": "Verwalten und Inhalte pflegen",
"ownedEmpty": "Noch keine eigenen Sprachbereiche vorhanden.",
"subscribedSectionTitle": "Abonnierte Sprachen",
"subscribedSectionIntro": "Gut für schnellen Wiedereinstieg ins Lernen ohne Verwaltungsaufwand.",
"subscribedHint": "Lernen, üben und Fortschritt ansehen",
"subscribedEmpty": "Keine abonnierten Sprachen vorhanden.",
"languageHeroEyebrow": "Sprache",
"languageHeroIntro": "Kapitel, Suchfunktionen und Freigaben für diese Sprache an einem Ort.",
"newLanguageHeroEyebrow": "Vokabeltrainer",
"newLanguageHeroIntro": "Neue Sprache anlegen, Freigabecode erzeugen und direkt in die Bearbeitung wechseln.",
"newLanguageNameHint": "Ein kurzer, klarer Sprachname reicht für den Start.",
"newLanguageNameValidation": "Der Name sollte mindestens 2 Zeichen haben.",
"subscribeHeroEyebrow": "Vokabeltrainer",
"chapterHeroEyebrow": "Vokabeltrainer",
"chapterHeroIntro": "Kapitelinhalt durchsuchen, Vokabeln pflegen und direkt in die Übung wechseln.",
"newLanguage": "Neue Sprache",
"newLanguageTitle": "Neue Sprache anlegen",
"languageName": "Name der Sprache",
"create": "Anlegen",
"saving": "Speichere...",
"created": "Sprache wurde angelegt.",
"createdTitle": "Vokabeltrainer",
"createdMessage": "Sprache wurde angelegt. Das Menü wird aktualisiert.",
"createError": "Konnte die Sprache nicht anlegen.",
"openLanguage": "Öffnen",
"none": "Du hast noch keine Sprachen angelegt oder abonniert.",
"owner": "Eigen",
"subscribed": "Abonniert",
"languageTitle": "Vokabeltrainer: {name}",
"notFound": "Sprache nicht gefunden oder kein Zugriff.",
"shareCode": "Teilen-Code",
"shareHint": "Diesen Code kannst du an Freunde weitergeben, damit sie die Sprache abonnieren können.",
"subscribeByCode": "Per Code abonnieren",
"subscribeTitle": "Sprache abonnieren",
"subscribeHint": "Gib den Teilen-Code ein, den du von einem Freund bekommen hast.",
"subscribe": "Abonnieren",
"subscribeSuccess": "Abo erfolgreich. Menü wird aktualisiert.",
"subscribeError": "Abo fehlgeschlagen. Code ungültig oder kein Zugriff.",
"trainerPlaceholder": "Trainer-Funktionen (Vokabeln/Abfragen) kommen als nächster Schritt."
,
"chapters": "Kapitel",
"newChapter": "Neues Kapitel",
"createChapter": "Kapitel anlegen",
"createChapterError": "Konnte Kapitel nicht anlegen.",
"noChapters": "Noch keine Kapitel vorhanden.",
"chapterTitle": "Kapitel: {title}",
"addVocab": "Vokabel hinzufügen",
"learningWord": "Lernsprache",
"referenceWord": "Referenz",
"add": "Hinzufügen",
"addVocabError": "Konnte Vokabel nicht hinzufügen.",
"noVocabs": "In diesem Kapitel sind noch keine Vokabeln."
,
"practice": {
"open": "Üben",
"title": "Vokabeln üben",
"allVocabs": "Alle Vokabeln",
"simple": "Einfaches Üben",
"noPool": "Keine Vokabeln zum Üben vorhanden.",
"dirLearningToRef": "Lernsprache → Referenz",
"dirRefToLearning": "Referenz → Lernsprache",
"check": "Prüfen",
"next": "Weiter",
"skip": "Überspringen",
"correct": "Richtig!",
"wrong": "Falsch.",
"acceptable": "Mögliche richtige Übersetzungen:",
"stats": "Statistik",
"success": "Erfolg",
"fail": "Misserfolg"
},
"search": {
"open": "Suche",
"title": "Vokabeln suchen",
"term": "Suchbegriff",
"motherTongue": "Muttersprache",
"learningLanguage": "Lernsprache",
"lesson": "Lektion",
"search": "Suchen",
"noResults": "Keine Treffer.",
"error": "Suche fehlgeschlagen."
},
"dictionary": {
"open": "Wörterbuch",
"kicker": "Nachschlagen",
"intro": "Alle Begriffe aus deinen Kapiteln. Ein Suchfeld filtert in beiden Sprachen nach Teilwörtern.",
"searchLabel": "Suche (beide Sprachen)",
"searchPlaceholder": "Teilwort in Lern- oder Muttersprache …",
"empty": "Keine Einträge.",
"loadError": "Wörterbuch konnte nicht geladen werden.",
"notFound": "Kein Zugriff oder nicht gefunden.",
"languageTitle": "Wörterbuch: {name}",
"courseTitle": "Kurs-Wörterbuch: {name}",
"courseLearningColumn": "Lernsprache (Kurs)"
},
"courses": {
"title": "Sprachlernkurse",
"create": "Kurs erstellen",
"myCourses": "Meine Kurse",
"allCourses": "Alle Kurse",
"none": "Keine Kurse gefunden.",
"owner": "Besitzer",
"enrolled": "Eingeschrieben",
"public": "Öffentlich",
"difficulty": "Schwierigkeit",
"lessons": "Lektionen",
"enroll": "Einschreiben",
"continue": "Fortsetzen",
"edit": "Bearbeiten",
"addLesson": "Lektion hinzufügen",
"completed": "Abgeschlossen",
"score": "Punktzahl",
"review": "Wiederholen",
"start": "Starten",
"resetLessonProgress": "Lektion zurücksetzen",
"resetLessonProgressConfirm": "Fortschritt dieser Lektion zurücksetzen? Gespeicherter Stand, Übungsergebnisse und Trainer-Zustand werden gelöscht. Andere Lektionen bleiben unverändert.",
"resetLessonProgressSuccess": "Die Lektion wurde zurückgesetzt.",
"resetLessonProgressError": "Die Lektion konnte nicht zurückgesetzt werden.",
"noLessons": "Dieser Kurs hat noch keine Lektionen.",
"lessonNumber": "Lektionsnummer",
"chapter": "Kapitel",
"selectChapter": "Kapitel auswählen",
"selectLanguage": "Sprache auswählen",
"confirmDelete": "Lektion wirklich löschen?",
"titleLabel": "Titel",
"descriptionLabel": "Beschreibung",
"languageLabel": "Sprache",
"findByCode": "Kurs per Code finden",
"shareCode": "Share-Code",
"searchPlaceholder": "Kurs suchen...",
"allLanguages": "Alle Sprachen",
"targetLanguage": "Zielsprache",
"nativeLanguage": "Muttersprache",
"allNativeLanguages": "Alle Muttersprachen",
"myNativeLanguage": "Meine Muttersprache",
"forAllLanguages": "Für alle Sprachen",
"optional": "Optional",
"invalidCode": "Ungültiger Code",
"courseNotFound": "Kurs nicht gefunden",
"grammarExercises": "Grammatik-Prüfung",
"exerciseFlowIntro": "Arbeite die Aufgaben der Reihe nach durch. Jede korrekt gelöste Aufgabe bringt dich direkt näher zum Abschluss der Lektion.",
"exerciseProgressLabel": "Fortschritt",
"exerciseTargetLabel": "Benötigt",
"exerciseCardLabel": "Aufgabe {number}",
"exerciseSequentialProgress": "Frage {current} von {total}",
"exerciseSequentialBack": "Zurück",
"exerciseSequentialNext": "Weiter",
"exerciseWrongTitle": "Noch nicht richtig",
"exerciseReinforcementGoPractice": "Zum Üben wechseln",
"exerciseReinforcementStay": "Bei der Prüfung bleiben",
"exerciseReinforcementGoPracticeAck": "Gelesen, zum Üben wechseln",
"exerciseReinforcementStayAck": "Gelesen, bei der Prüfung bleiben",
"exerciseExamFailedTitle": "Mindestziel nicht erreicht",
"exerciseExamFailedBody": "Du hast {score}% der Fragen richtig beantwortet (Mindestziel: {target}%). Bitte übe weiter im Lernbereich. Nach {count} weiteren Trainerfragen ist die Kapitel-Prüfung wieder freigeschaltet dann beginnst du mit allen Fragen von vorn.",
"exerciseExamFailedOk": "Verstanden",
"exerciseStatusOpen": "Offen",
"exerciseStatusCorrect": "Erledigt",
"exerciseStatusRetry": "Nochmal prüfen",
"exerciseAnswerAllHint": "Beantworte zuerst alle {total} Aufgaben. Aktuell bearbeitet: {answered}. Zum Bestehen brauchst du mindestens {target}%.",
"exerciseNeedMoreCorrectHint": "Du hast aktuell {score}%. Für den Abschluss dieser Lektion brauchst du mindestens {target}%.",
"exercisePassedHint": "Ziel erreicht: {score}% von benötigten {target}%. Sobald alle Aufgaben bearbeitet sind, gilt die Prüfung als bestanden.",
"exerciseReinforcementHint": "Nach einem Fehler geht es kurz zurück in den Lernmodus. Übe noch {count} Trainerfragen, dann wird die Kapitel-Prüfung wieder freigeschaltet.",
"exercisePrepReinforcementHint": "Nach einem Fehler gehst du noch einmal durch die vorbereiteten Begriffe. Danach wird die Kapitel-Prüfung wieder freigeschaltet.",
"exerciseGrammarLead": "Wichtige Grammatik für diese Prüfung",
"noExercises": "Keine Prüfung verfügbar",
"enterAnswer": "Antwort eingeben",
"checkAnswer": "Antwort prüfen",
"correct": "Richtig!",
"wrong": "Falsch",
"explanation": "Erklärung",
"learn": "Lernen",
"exercises": "Kapitel-Prüfung",
"learnVocabulary": "Vokabeln lernen",
"lessonOverviewText": "Diese Lektion verbindet Vokabeln, Muster, kurze Grammatikimpulse und aktive Sprachpraxis.",
"lessonDescription": "Lektions-Beschreibung",
"culturalNotes": "Kulturelle Notizen",
"grammarExplanations": "Grammatik-Erklärungen",
"grammarImpulse": "Grammatik-Impuls",
"learningGoals": "Lernziele",
"corePatterns": "Kernmuster",
"corePatternsHint": "Zuerst die Zielsprache lesen, darunter die deutsche Bedeutung — so lernst du jedes Muster bewusst in beiden Richtungen.",
"learningGrammarTitle": "Kurz die Grammatik einordnen",
"learningGrammarIntro": "Lies diese 1-2 Hinweise nach den Begriffen kurz durch. Danach gehst du mit mehr Orientierung in den Trainer.",
"vocabPrepTitle": "Vorbereitung vor dem Vokabeltrainer",
"vocabPrepStep1": "Lies Kernmuster und Wortliste (Deutsch ↔ Zielsprache) einmal in Ruhe durch.",
"vocabPrepProgress": "Durchgang {pass}: Begriff {current} von {total}",
"vocabPrepTargetLabel": "Zielsprache",
"vocabPrepGlossLabel": "Deutsch",
"vocabPrepNextItem": "Nächster Begriff",
"vocabPrepConfirm1": "Erste Durchsicht erledigt",
"vocabPrepStep2": "Gehe die gleichen Begriffe noch einmal durch (aktive Wiederholung, ohne zu üben).",
"vocabPrepConfirm2": "Zweite Durchsicht erledigt",
"vocabPrepReady": "Du kannst jetzt mit dem Vokabeltrainer starten.",
"learningPathLabel": "Hauptpfad",
"learningPathTitle": "Dein Lernweg für diese Lektion",
"learningPathIntro": "Arbeite diese Schritte nacheinander durch: vorbereiten, kurz überblicken, trainieren und dann zur Kapitel-Prüfung wechseln.",
"lessonDetailsToggle": "Mehr Lektionsdetails anzeigen",
"deepenSectionTitle": "Vertiefen und nachlesen",
"assistantSectionTitle": "Mit Sprachassistent vertiefen",
"vocabOverviewToggle": "Gesamtübersicht der Begriffe anzeigen",
"vocabTrainerLockedHint": "Bitte bestätige zuerst zwei Lern-Durchgänge bei „Vorbereitung vor dem Vokabeltrainer“.",
"exerciseUnlockHintAfterPrep": "Arbeite zuerst die vorbereiteten Begriffe durch. Danach wird die Kapitel-Prüfung freigeschaltet.",
"speakingTasks": "Sprechaufträge",
"speakingPrompt": "Sprechauftrag",
"practicalTasks": "Praxisaufgaben",
"importantVocab": "Wichtige Begriffe",
"vocabInfoText": "Diese Begriffe werden in der Prüfung verwendet. Lerne sie hier passiv, bevor du zur Kapitel-Prüfung wechselst.",
"noVocabInfo": "Lies die Beschreibung oben und die Erklärungen in der Prüfung, um die wichtigsten Begriffe zu lernen.",
"vocabTrainer": "Vokabeltrainer",
"vocabTrainerDescription": "Übe die wichtigsten Begriffe dieser Lektion interaktiv.",
"startVocabTrainer": "Vokabeltrainer starten",
"stopTrainer": "Trainer beenden",
"translateTo": "Übersetze ins Bisaya",
"translateFrom": "Übersetze ins Deutsche",
"next": "Weiter",
"totalAttempts": "Versuche",
"successRate": "Erfolgsrate",
"modeMultipleChoice": "Multiple Choice",
"modeTyping": "Texteingabe",
"currentLesson": "Aktuelle Lektion",
"mixedReview": "Wiederholung",
"lessonCompleted": "Lektion abgeschlossen!",
"goToNextLesson": "Zur nächsten Lektion wechseln?",
"allLessonsCompleted": "Alle Lektionen abgeschlossen!",
"startExercises": "Zur Kapitel-Prüfung",
"lessonTypeLabel": "Lektionstyp",
"recommendedDuration": "Empfohlene Dauer",
"exerciseLoad": "Übungsmenge",
"exercisesShort": "Übungen",
"durationFlexible": "Flexibel",
"durationMinutes": "{minutes} Minuten",
"lessonTypeVocab": "Wortschatz",
"lessonTypeGrammar": "Grammatik",
"lessonTypeConversation": "Gespräch",
"lessonTypeCulture": "Kultur",
"lessonTypeReview": "Wiederholung",
"correctAnswer": "Richtige Antwort",
"alternatives": "Alternative Antworten",
"notStarted": "Nicht begonnen",
"continueCurrentLesson": "Zur aktuellen Lektion",
"previousLessonRequired": "Bitte schließe zuerst die vorherige Lektion ab",
"lessonNumberShort": "#",
"buildSentencePlaceholder": "Baue hier deinen Satz",
"completeDialogPlaceholder": "Ergänze die fehlende Dialogzeile",
"situationalResponsePlaceholder": "Formuliere deine Antwort auf die Situation",
"patternDrillPlaceholder": "Formuliere einen passenden Satz mit dem Muster",
"modelSentence": "Modellsatz",
"modelDialogLine": "Mögliche Dialogzeile",
"modelResponse": "Mögliche Antwort",
"modelPattern": "Möglicher Mustersatz",
"patternPrompt": "Muster",
"readingAloudInstruction": "Lies den Text laut vor. Klicke auf 'Aufnahme starten' und beginne zu sprechen.",
"speakingFromMemoryInstruction": "Sprich frei aus dem Kopf. Verwende die angezeigten Schlüsselwörter.",
"startRecording": "Aufnahme starten",
"stopRecording": "Aufnahme stoppen",
"startSpeaking": "Sprechen starten",
"recording": "Aufnahme läuft",
"listening": "Höre zu...",
"recordingStopped": "Aufnahme beendet",
"recordingError": "Aufnahme-Fehler",
"recognizedText": "Erkannter Text",
"speechRecognitionNotSupported": "Speech Recognition wird von diesem Browser nicht unterstützt. Bitte verwende Chrome oder Edge.",
"speakingFallbackInstruction": "Dein Browser unterstützt hier keine Spracheingabe. Schreibe deine gesprochene Antwort stattdessen als Text auf und prüfe sie dann normal.",
"speakingFallbackPlaceholder": "Schreibe hier, was du sagen würdest ...",
"keywords": "Schlüsselwörter",
"switchBackToMultipleChoice": "Zurück zu Multiple Choice",
"languageAssistantEyebrow": "Sprachassistent",
"languageAssistantCourseTitle": "KI-Begleitung für diesen Kurs",
"languageAssistantCourseReady": "Der Sprachassistent ist eingerichtet und steht in den Lektionen für Erklärungen, Korrekturen und kurze Dialogübungen bereit.",
"languageAssistantCourseSetup": "Richte den Sprachassistenten ein, damit du in den Lektionen gezielt Fragen stellen und kleine Dialoge üben kannst.",
"languageAssistantOpenLesson": "In aktueller Lektion öffnen",
"languageAssistantTitle": "Mit dem Sprachassistenten üben",
"languageAssistantIntro": "Nutze die KI direkt zur aktuellen Lektion: Grammatik erklären lassen, kurze Dialoge üben oder eigene Sätze korrigieren.",
"languageAssistantSettings": "Sprachassistent einstellen",
"languageAssistantSetupHint": "Der Sprachassistent ist noch nicht eingerichtet oder derzeit deaktiviert. Hinterlege zuerst Modell und API-Zugang in den Einstellungen.",
"languageAssistantModePractice": "Praxis",
"languageAssistantModeExplain": "Erklären",
"languageAssistantModeCorrect": "Korrigieren",
"languageAssistantPromptExplain": "Grammatik erklären",
"languageAssistantPromptPractice": "Mini-Dialog üben",
"languageAssistantPromptCorrect": "Meinen Satz verbessern",
"languageAssistantSpeakerAi": "Sprachassistent",
"languageAssistantSpeakerYou": "Du",
"languageAssistantInputLabel": "Deine Nachricht",
"languageAssistantInputPlaceholder": "Stelle eine Frage zur Lektion oder schreibe einen eigenen Satz zum Korrigieren.",
"languageAssistantSend": "An Sprachassistent senden",
"languageAssistantSending": "Antwort wird geholt ...",
"languageAssistantError": "Der Sprachassistent konnte gerade nicht antworten.",
"languageAssistantPresetExplainStart": "Erkläre mir bitte die wichtigsten Muster und die Grammatik in der Lektion",
"languageAssistantPatternHint": "Nutze dabei besonders dieses Muster",
"languageAssistantPresetPracticeStart": "Lass uns zur Lektion \"{lesson}\" einen kurzen alltagsnahen Dialog üben. Stelle mir bitte Fragen und warte auf meine Antworten.",
"languageAssistantPresetCorrectStart": "Ich möchte eigene Sätze zur Lektion \"{lesson}\" schreiben. Bitte korrigiere meine Antworten knapp und verständlich.",
"thisLesson": "dieser Lektion",
"courseKicker": "Lernkurs",
"courseListKicker": "Kurse",
"courseListIntro": "Öffentliche und eigene Lernkurse filtern, finden und direkt weiterlernen.",
"courseShareCodePlaceholder": "z. B. abc123def456",
"courseFlowEyebrow": "Tagesfluss",
"courseFlowTitle": "Heute sinnvoll weitermachen",
"courseFlowIntro": "Zuerst die Tagesempfehlung mit konkreter Reihenfolge. Darunter die vier Bereiche: fällige Kurz-Wiederholung, aktueller Block, Intensivphase, freie Vertiefung.",
"quickReviewTitle": "Kurz-Wiederholung",
"quickReviewIntro": "Kurze Session mit {count} Begriffen. Nach Abschluss wird die geplante Wiederholung als erledigt markiert.",
"quickReviewDoneTitle": "Geschafft",
"quickReviewDoneScore": "Richtig: {correct} / {total}",
"quickReviewBackToCourse": "Zurück zum Kurs",
"quickReviewProgress": "Begriff {current} von {total}",
"quickReviewPromptMeaning": "Was bedeutet \"{term}\"?",
"quickReviewPromptTarget": "Tippe auf Zielsprache: \"{term}\"",
"quickReviewAcknowledge": "Gelesen, weiter",
"courseTodayPlanTitle": "Empfehlung für heute",
"courseTodayPlanIntro": "Didaktische Reihenfolge: Zuerst alle fälligen Kurz-Wiederholungen (Abstandslernen Abruf, bevor neues Material kommt). Danach nur eine begrenzte Auswahl offener Lektionen aus deinem Block: schwere, Prüfungs- oder Intensiv-Lektionen zählen doppelt, damit die Tageslast nicht zu hoch wird. Anschließend ggf. die Intensivphase. Die Kurz-Wiederholungen sind die drei Termine nach Lektionsende (typisch etwa 1, 3 und 7 Tage).",
"courseTodayPlanIntroNoDueReview": "Heute ist keine Kurz-Wiederholung fällig. Es werden nur die nächsten sinnvollen Schritte im aktuellen Block vorgeschlagen (Anzahl begrenzt nach Schwierigkeit), danach ggf. die Intensivphase. Kurz-Wiederholungen erscheinen automatisch wieder nach dem 1/3/7-Tage-Rhythmus.",
"courseTodayPlanStepReviewDue": "Jetzt kurz wiederholen",
"courseTodayPlanStepBlock": "Weiter im aktuellen Block",
"courseTodayPlanStepIntensive": "Intensive Wiederholung",
"courseTodayPlanStepContinue": "Als Nächstes auf deinem Lernpfad",
"courseTodayPlanStepPractice": "Frei üben (optional)",
"courseTodayPlanOpen": "Lektion öffnen",
"courseTodayPlanTrainer": "Im Trainer üben",
"courseTodayPlanEmpty": "Gerade ist keine gestaffelte Wiederholung fällig und es gibt keinen klaren nächsten Block-Schritt. Wähle unten eine Lektion oder nutze die freie Vertiefung mit dem Trainer.",
"courseTodayPlanSoftTitle": "Heute nichts Pflichtiges Pause ist erlaubt",
"courseTodayPlanSoftIntro": "Abstand stärkt das Gedächtnis: Auf deiner Lernroute ist gerade nichts Dringendes vorgesehen. Die folgenden Punkte sind nur optional oft ist es didaktisch sinnvoller, morgen mit frischer Aufmerksamkeit weiterzumachen.",
"courseFlowReviewStat": "Fällige Wiederholung: {count}",
"courseFlowBlockStat": "Aktiver Block: {block}",
"courseFlowReviewTitle": "Fällige Wiederholung",
"courseFlowReviewDescription": "Bereits abgeschlossene Lektionen, die heute wieder drankommen sollten.",
"courseFlowReviewEmpty": "Heute ist keine ältere Lektion als fällige Wiederholung markiert.",
"courseFlowBlockTitle": "Aktueller Block",
"courseFlowBlockDescription": "Hier liegt der nächste reguläre Fortschritt im Kurs.",
"courseFlowBlockEmpty": "Der aktuelle Block ist bereits abgeschlossen oder es gibt gerade keine offene Blocklektion.",
"courseFlowIntensiveTitle": "Fällige Intensivphase",
"courseFlowIntensiveDescription": "Verdichtete Wiederholung, sobald der Block davor weitgehend sitzt.",
"courseFlowIntensiveEmpty": "Aktuell ist keine neue Intensivphase freigeschaltet.",
"courseFlowPracticeTitle": "Freie Vertiefung",
"courseFlowPracticeDescription": "Abgeschlossene Lektionen für lockeres Nachtrainieren außerhalb des Pflichtpfads.",
"courseFlowPracticeEmpty": "Sobald du erste Lektionen abgeschlossen hast, erscheinen sie hier für freies Nachtrainieren.",
"practiceInTrainer": "Im Trainer üben",
"lessonsCount": "{count} Lektionen",
"lessonBlockLabel": "Block {number}",
"lessonIntensiveBadge": "Intensive Wiederholung",
"addLessonValidation": "Bitte Nummer, Titel und Kapitel vollständig angeben.",
"addLessonSuccess": "Lektion erfolgreich angelegt.",
"addLessonError": "Fehler beim Hinzufügen der Lektion.",
"createCourseError": "Fehler beim Erstellen des Kurses.",
"deleteLessonTitle": "Lektion löschen",
"deleteLessonSuccess": "Lektion erfolgreich gelöscht.",
"deleteLessonError": "Fehler beim Löschen der Lektion.",
"enrollCourseError": "Fehler beim Einschreiben.",
"editLessonPending": "Die Bearbeitung einzelner Lektionen folgt noch.",
"timeToday": "heute",
"timeSinceOneDay": "seit 1 Tag",
"timeSinceDays": "seit {count} Tagen",
"reviewDueNow": "jetzt fällig",
"reviewDueTomorrow": "morgen fällig",
"reviewDueInDays": "in {count} Tagen fällig",
"reviewDueToday": "heute fällig",
"reviewDueSinceOneDay": "seit 1 Tag fällig",
"reviewDueSinceDays": "seit {count} Tagen fällig",
"reviewBadgeScheduleTomorrow": "nächste Welle morgen",
"reviewBadgeScheduleInDays": "nächste Welle in {count} Tagen",
"reviewBadgeScheduleToday": "Welle heute vorgesehen",
"reviewBadgeScheduleOverdue": "Welle überfällig (seit {count} Tagen)",
"reviewBadgeLineAllDone": "Alle Kurz-Wiederholungen erledigt (3×)",
"reviewBadgeLineDue": "Kurz wiederholen: Schritt {step} von 3 · jetzt dran",
"reviewBadgeLineScheduled": "Kurz wiederholen: Schritt {step} von 3 · nächster Termin {when}",
"reviewWhenFriendlyTomorrow": "morgen",
"reviewWhenFriendlyInDays": "in {count} Tagen",
"reviewWhenFriendlyToday": "heute",
"reviewWhenFriendlyOverdue": "überfällig (vor {count} Tag(en))",
"reviewWhenFriendlySoon": "bald",
"reviewBadgeTooltipDone": "Die drei empfohlenen Kurz-Wiederholungen nach diesem Lektionsende hast du absolviert. Üben im Trainer geht trotzdem weiter.",
"reviewBadgeTooltipActive": "Nach Lektionsende empfiehlt der Kurs drei kurze Wiederholungen im Abstand von etwa 1, 3 und 7 Tagen, damit Vokabeln im Gedächtnis bleiben. Das Badge zeigt, welcher Schritt (13) gerade dran ist bzw. wann der nächste Termin ist.",
"reviewStageDay1": "Schritt 1 von 3 (~1 Tag)",
"reviewStageDay3": "Schritt 2 von 3 (~3 Tage)",
"reviewStageDay7": "Schritt 3 von 3 (~7 Tage)",
"reviewStageCompleted": "Alle Kurz-Wiederholungen erledigt",
"phaseQuickstart": "Schnellstart",
"phaseDailyLife": "Alltag",
"phaseStabilization": "Stabilisierung",
"phaseDefault": "Lernphase",
"didacticModeCoreInput": "Neuer Stoff",
"didacticModeGuidedDialogue": "Geführter Dialog",
"didacticModeContrastTraining": "Kontrasttraining",
"didacticModePatternDrill": "Mustertraining",
"didacticModeRealLifeScenario": "Alltagsszenario",
"didacticModeIntensiveReview": "Wiederholungsphase",
"didacticModeCheckpoint": "Checkpoint",
"didacticModeDefault": "Lerneinheit",
"didacticModeFocusDefault": "Lernfokus",
"lessonMetaFocus": "Fokus",
"lessonMetaPhase": "Phase",
"lessonMetaNewUnits": "Neue Einheiten",
"lessonMetaReview": "Wiederholung",
"intensiveReviewTitle": "Intensive Wiederholungsphase",
"intensiveReviewIntro": "Diese Lektion priorisiert Wiederholung und Vertiefung. Neuer Stoff wird bewusst reduziert, damit vorhandene Muster stabil werden.",
"reviewPriorityTitle": "Wiederholung läuft schrittweise mit",
"reviewPriorityIntro": "Zuerst liegt der Fokus auf den neuen Begriffen dieser Lektion. Mit deinem Fortschritt fließen ältere Vokabeln dann zunehmend mit ein.",
"exerciseLockTitle": "Kapitel-Prüfung noch gesperrt",
"exerciseUnlockHintTrainerCore": "Die Kapitel-Prüfung wird freigeschaltet, wenn alle drei Bedingungen erfüllt sind: mindestens {newTarget} Fragen zu den neuen Inhalten (Zeile „Neue Inhalte“), insgesamt etwa {attempts} Trainerfragen und mindestens {rate} % Erfolgsrate.",
"exerciseUnlockHintTrainerMixSuffix": "Ältere Vokabeln fließen dabei schrittweise mit ein.",
"trainerStartWithReview": "Starte mit den neuen Vokabeln dieser Lektion. Mit fortschreitendem Üben mischt der Trainer automatisch passende Wiederholungen ein.",
"startLesson": "Lektion starten",
"trainerProgressNewContent": "Neue Inhalte: {current}/{target}",
"trainerProgressReview": "Wiederholung: {count}",
"trainerProgressMixShare": "Mischanteil: {percent}%",
"unknownExerciseTypeNotice": "Dieser Übungstyp wird in der aktuellen Ansicht noch nicht interaktiv dargestellt.",
"unknownExerciseTypeLabel": "Typ: {type}",
"lessonReviewHeadlineDone": "Diese Lektion ist in der freien Vertiefung angekommen.",
"lessonReviewHeadlineDue": "Diese Review-Welle ist jetzt fällig.",
"lessonReviewHeadlineScheduled": "Diese Lektion ist für die nächste Review-Welle vorgemerkt.",
"lessonReviewHintDone": "Die 1/3/7-Tage-Wiederholung ist abgeschlossen. Du kannst die Lektion jetzt flexibel weitertrainieren.",
"lessonReviewHintNextDue": "Nächste Fälligkeit: {due}.",
"reviewTimeNow": "jetzt",
"reviewTimeTomorrow": "morgen",
"reviewTimeInDays": "in {count} Tagen"
}
}
}
}