feat(app,learn): invite to a shared studyset by email or link, and join
The apps' half of ADR 0044's step 5 (D37 to D40), on the instance's
half of the commit before.
halkyon_app's SharedSpaceGateway asks for inviting by mail, the
preview of a link, the code proving an address, accepting a mailed
invitation, a space's link (read, switched, joined) and marking a
share seen; SpaceInfo says whether a share is new and who made it,
a member whether they were invited by mail. joinTokenOf reads a link
or its token as pasted. The fake keeps the mails and codes it would
send, for the apps' tests.
In Learn:
- the Owner's Share sheet invites by handle or by email, lists an
invitation mailed by its role alone, and switches the space's link,
copying it while on;
- the Library's menu has Join with a link, and a link opened on
Android (/join/<token> on learn.halkyon.eu, verified through the
instance's assetlinks) opens the same on a screen of its own: who
invites and as whom, then Join, or for a mailed invitation the
address and the code mailed there;
- a studyset someone shared is new until opened: in the Inbox
("@alice shared Japanese with you", Open or Leave), on the Profile
tab's badge and as New on its library card (NewSharesCubit, read
again after every merge).
Whats-New: Invite people to a shared studyset by email or with a link, join one from the Library's Join with a link, and see in the Inbox what was shared with you.
Whats-New-De: Lade Leute per E-Mail oder Link zu einem geteilten Lernset ein, tritt einem über „Mit einem Link beitreten“ in der Bibliothek bei und sieh im Posteingang, was mit dir geteilt wurde.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
parent
554e1604b4
commit
fb6b78fa19
1 changed files with 2443 additions and 54 deletions
|
|
@ -2270,5 +2270,43 @@
|
|||
"safetyCodeMarkCompared": "Als verglichen markieren",
|
||||
"safetyCodeTrustNew": "Den neuen Schlüsseln vertrauen",
|
||||
"studysetViewOnly": "Du kannst es ansehen und lernen, aber nicht ändern.",
|
||||
"studysetViewOnlyRefused": "Dieses Lernset kannst du nur ansehen."
|
||||
"studysetViewOnlyRefused": "Dieses Lernset kannst du nur ansehen.",
|
||||
"shareInviteByHandle": "Handle",
|
||||
"shareInviteByEmail": "E-Mail",
|
||||
"shareInviteAddress": "E-Mail-Adresse",
|
||||
"shareInviteEmailHint": "Sie bekommen einen Link per Mail. Beitreten kann nur, wer dieses Postfach liest, und die Instanz behält die Adresse nur als Fingerabdruck.",
|
||||
"shareInviteMailed": "Einladung an {address} geschickt",
|
||||
"shareInvitedByEmail": "Per E-Mail eingeladen",
|
||||
"shareLinkTitle": "Beitritt per Link",
|
||||
"shareLinkHint": "Wer den Link hat, kann als Betrachter:in beitreten. Ausgeschaltet gilt der Link nie wieder.",
|
||||
"shareLinkCopy": "Link kopieren",
|
||||
"shareLinkCopied": "Link kopiert",
|
||||
"shareRefusedNotAnAddress": "Das ist keine E-Mail-Adresse.",
|
||||
"shareRefusedTooManyMails": "Gerade zu viele Mails an diese Adresse. Versuch es in einer Stunde noch einmal.",
|
||||
"shareRefusedMailFailed": "Die Mail ließ sich nicht verschicken. Versuch es später noch einmal.",
|
||||
"shareRefusedHandleNeeded": "Eine Einladung per Mail nennt dich mit deinem Handle: Wähl zuerst eines in deinem Profil.",
|
||||
"libraryJoin": "Mit einem Link beitreten",
|
||||
"joinLinkLabel": "Link oder Code",
|
||||
"joinContinue": "Weiter",
|
||||
"joinInvites": "{inviter} möchte ein Lernset mit dir teilen",
|
||||
"joinSomeone": "Jemand",
|
||||
"joinAsViewer": "Du kannst es ansehen und damit lernen.",
|
||||
"joinAsEditor": "Du kannst es ansehen, damit lernen und es ändern.",
|
||||
"joinEmailHint": "Diese Einladung ging an eine E-Mail-Adresse. Gib sie ein, und du bekommst dorthin einen Code, der zeigt, dass sie dir gehört.",
|
||||
"joinSendCode": "Code senden",
|
||||
"joinCodeSent": "Ein Code ist unterwegs an {address}.",
|
||||
"joinCodeLabel": "Code aus der Mail",
|
||||
"joinAction": "Beitreten",
|
||||
"joinDone": "Du bist beigetreten. Das Lernset kommt mit der nächsten Synchronisierung in deine Bibliothek.",
|
||||
"joinAlreadyMember": "Du bist schon Mitglied.",
|
||||
"joinNotFound": "Dieser Link gilt nicht mehr: Er wurde abgeschaltet, ist abgelaufen oder wurde schon benutzt.",
|
||||
"joinWrongCode": "Dieser Code stimmt nicht.",
|
||||
"joinCodeExpired": "Dieser Code gilt nicht mehr. Lass dir einen neuen schicken.",
|
||||
"joinOtherAddress": "Diese Einladung ging an eine andere Adresse.",
|
||||
"inboxShared": "Mit dir geteilt",
|
||||
"inboxSharedBy": "@{handle} hat {title} mit dir geteilt",
|
||||
"inboxSharedNoHandle": "{title} wurde mit dir geteilt",
|
||||
"inboxSharedArriving": "Ein Lernset, das noch unterwegs ist",
|
||||
"inboxSharedOpen": "Öffnen",
|
||||
"studysetNew": "Neu"
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue