feat(feedback): report, suggest, and an inbox in the Profile tab

The app's side of stage 4 (ADR 0005, rule 11). The card's Report sheet
offers "Send to the author too" on a card from a release; a copy's menu
reports the studyset as a whole and lists what is reported and
suggested on it, as Explore's summary does; the editors of cards, notes
and steps suggest them to the author as the learner has them, never
under "no derivatives". The Profile tab holds the inbox: the threads on
the person's published studysets and those they wrote, the newest
activity first, with a count on the tab. A thread shows a suggestion
beside the author's own item and its replies; its writer and the author
reply, and the author accepts (the content becomes their own edit, its
files fetched from the writer's), declines, closes, hides or blocks.
Writing needs an identity; reading what is public doesn't.

ADR 0005 gets an addendum for stage 4.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MMm7usAo6q9ZZRoPkWjoxi
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
Tizian 「ティツィアーン」 2026-10-10 01:29:09 +02:00
commit 1c1a1aada8
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64

View file

@ -1449,5 +1449,53 @@
"publishLearnersFew": "Weniger als 5 lernen es hier, von denen, die mitgezählt werden möchten.",
"publishForkForbidden": "Sein Original verbietet, Bearbeitungen weiterzugeben: nur wer es verfasst hat, veröffentlicht es.",
"publishLicenseMustStay": "Sein Original verlangt, dass Bearbeitungen unter {license} bleiben: wähle sie unter Bearbeiten, für jedes Lernset darin.",
"exploreBasedOn": "nach {location}"
"exploreBasedOn": "nach {location}",
"feedbackReport": "Meldung",
"feedbackSuggestion": "Vorschlag",
"feedbackOnStudyset": "Zum Lernset",
"feedbackOnCard": "Zu einer Karteikarte",
"feedbackOnNote": "Zu einer Notiz",
"feedbackOnStep": "Zu einem Schritt",
"feedbackByOn": "{name} · {date}",
"feedbackStatusClosed": "Geschlossen",
"feedbackStatusAccepted": "Angenommen",
"feedbackStatusDeclined": "Abgelehnt",
"feedbackStatusHidden": "Verborgen",
"feedbackReplyHint": "Schreib eine Antwort …",
"feedbackSend": "Senden",
"feedbackAccept": "Annehmen",
"feedbackDecline": "Ablehnen",
"feedbackClose": "Schließen",
"feedbackReopen": "Wieder öffnen",
"feedbackHide": "Verbergen",
"feedbackShow": "Zeigen",
"feedbackBlock": "{name} blockieren",
"feedbackBlockTitle": "{name} blockieren?",
"feedbackBlockMessage": "Was zu deinen Lernsets von dort kam und kommt, sieht dann niemand außer der Person selbst.",
"feedbackProposed": "Vorgeschlagen",
"feedbackYours": "Jetzt bei dir",
"feedbackAuthor": "Original",
"feedbackAccepted": "In dein Lernset übernommen. Die nächste Veröffentlichung nennt, wer es vorgeschlagen hat.",
"feedbackDecided": "Erledigt.",
"feedbackReplied": "Antwort gesendet.",
"feedbackBlocked": "Blockiert.",
"feedbackNotTaken": "Das lässt sich nicht übernehmen: worum es geht, ist nicht mehr in deinem Lernset.",
"feedbackFailed": "Deine Instanz war nicht erreichbar. Versuche es noch einmal.",
"feedbackUnreachable": "Meldungen und Vorschläge sind gerade nicht erreichbar.",
"feedbackRetry": "Erneut versuchen",
"inboxTitle": "Posteingang",
"inboxIntro": "Meldungen und Vorschläge zu deinen veröffentlichten Lernsets und die, die du geschrieben hast.",
"inboxEmpty": "Noch nichts.",
"studysetFeedback": "Meldungen und Vorschläge",
"studysetFeedbackEmpty": "Noch hat niemand etwas gemeldet oder vorgeschlagen.",
"reportToAuthor": "Fehler im Original melden",
"cardReportToAuthor": "Auch im Original melden",
"cardReportToAuthorHint": "Öffentlich: alle, die es lernen, lesen es, mit deinem öffentlichen Profil.",
"feedbackReportSent": "Im Original gemeldet.",
"suggestToAuthor": "Dem Original vorschlagen",
"suggestHint": "Was es ändert, und warum",
"suggestIntro": "Im Original sieht man es so, wie du es jetzt hast, neben der eigenen Fassung. Öffentlich: alle, die es lernen, lesen es, mit deinem öffentlichen Profil.",
"suggestSent": "Vorschlag gesendet.",
"suggestNoDerivatives": "Seine Lizenz verbietet Bearbeitungen: keine Vorschläge.",
"feedbackNeedsIdentity": "Melde dich mit GitHub an, um im Original zu melden und vorzuschlagen."
}