Files
yourpart3/frontend/src/i18n/locales/de/socialnetwork.json
Torsten Schulz (local) 07604cc9fa feat(navigation): enhance adult verification handling and notifications
- Updated navigationController to simplify the eroticChat menu structure.
- Enhanced adminService to notify users of adult verification status changes, including previous status.
- Improved AppNavigation and related components to register and unregister socket listeners for adult verification updates.
- Added localized messages for adult verification notifications in English, German, and Spanish.
- Introduced a verification hint in the EroticAccessView to guide users on document submission.
2026-03-27 13:23:44 +01:00

545 lines
26 KiB
JSON

{
"socialnetwork": {
"usersearch": {
"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"
},
"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": {
"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"
}
},
"guestbook": {
"title": "Gästebuch",
"prevPage": "Zurück",
"nextPage": "Weiter",
"page": "Seite"
},
"diary": {
"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": {
"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. Diese erste Version konzentriert sich auf Upload, Liste und Wiedergabe.",
"videoUploadTitle": "Erotikvideo hochladen",
"videoUploadHint": "Die erste Ausbaustufe speichert Videos direkt und verzichtet noch auf Transcoding oder Streamingprofile.",
"videoDescription": "Beschreibung",
"videoFile": "Videodatei",
"myVideos": "Meine Videos",
"noVideos": "Du hast noch keine Erotikvideos hochgeladen.",
"reportAction": "Melden",
"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.",
"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."
},
"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",
"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",
"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",
"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 Deutsche",
"translateFrom": "Übersetze ins Bisaya",
"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"
}
}
}
}