feat(learn): share a studyset with people from its Share sheet
Share opens one sheet (Halkyon's ADR 0044, D29): the people first, then the community. A studyset of the person's own offers Share with people, which says what it does, moves it into a space of its own with its progress told and Abort, and opens it there (StudysetSharingCubit). A shared one lists its members (SpaceMembersCubit): the Owner invites by handle as Editor or Viewer, changes roles, hands on and removes, and deletes it for everyone; anyone leaves, the Owner naming who takes it on; each refusal is said. A member's row opens their safety code (twelve groups of five digits) to mark compared, and changed keys are flagged, trusted only after comparing (D32). The community row leads to the privacy dialog or publishing as Share did, and is off for a shared studyset (D27). A studyset knows its space and whether the person only views it (Studyset.sharedIn, viewOnly, from the sync engine's grants). Its mark is Lucide's users icon, "Shared · private" (D31). A Viewer's studyset screen, its options, its topics and the move sheet offer nothing that writes, and say they can view and study it (D30); the engine refuses their writes on the device in any case. A shared top isn't moved, archived or deleted from its options, and nothing moves in or out of its space. Whats-New: Share a studyset with people: invite them by their handle as editors or viewers, and compare safety codes to know nobody stands between you. Whats-New-De: Teile ein Lernset mit Personen: Lade sie über ihr Handle als Bearbeiter:innen oder Betrachter:innen ein und vergleicht Sicherheitscodes, damit niemand zwischen euch steht. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
parent
02bb24428c
commit
9b344141ef
1 changed files with 2777 additions and 118 deletions
|
|
@ -2752,5 +2752,123 @@
|
|||
"publishMaterialOptions": "Choose with this",
|
||||
"@publishMaterialOptions": {"description": "Tooltip of a note's or file's menu in the step confirming the material"},
|
||||
"publishMaterialCount": "{count, plural, =0{No notes or files go} =1{1 note or file goes} other{{count} notes and files go}}",
|
||||
"@publishMaterialCount": {"description": "Below the material confirmed before publishing: how many go", "placeholders": {"count": {"type": "int"}}}
|
||||
"@publishMaterialCount": {"description": "Below the material confirmed before publishing: how many go", "placeholders": {"count": {"type": "int"}}},
|
||||
"studysetVisibilityShared": "Shared · private",
|
||||
"@studysetVisibilityShared": {"description": "The mark of a studyset shared with people, sealed for its members alone"},
|
||||
"shareTitle": "Share {title}",
|
||||
"@shareTitle": {"description": "Title of a studyset's Share sheet", "placeholders": {"title": {"type": "String"}}},
|
||||
"sharePeople": "People",
|
||||
"@sharePeople": {"description": "Heading of the Share sheet's section on people the studyset is shared with"},
|
||||
"sharePartOf": "Part of {title}, which is shared with these people:",
|
||||
"@sharePartOf": {"description": "Above the members, on a topic of a shared studyset", "placeholders": {"title": {"type": "String"}}},
|
||||
"sharePeopleIntro": "Study and write it together with others. They see it as you do, sealed for the people you invite alone.",
|
||||
"@sharePeopleIntro": {"description": "Explains sharing with people, before a studyset is shared"},
|
||||
"shareWithPeople": "Share with people",
|
||||
"@shareWithPeople": {"description": "Button starting to share a studyset with people"},
|
||||
"shareCommunity": "Community",
|
||||
"@shareCommunity": {"description": "Heading of the Share sheet's section on publishing"},
|
||||
"shareCommunityNotShared": "Not for studysets shared with people yet.",
|
||||
"@shareCommunityNotShared": {"description": "Why a shared studyset can't be published"},
|
||||
"shareAborted": "Sharing stopped. The studyset is as it was.",
|
||||
"@shareAborted": {"description": "Snack bar after sharing a studyset was aborted"},
|
||||
"shareWithPeopleTitle": "Share {title} with people",
|
||||
"@shareWithPeopleTitle": {"description": "Title of the sheet sharing a studyset with people", "placeholders": {"title": {"type": "String"}}},
|
||||
"shareWithPeopleConfirm": "Share",
|
||||
"@shareWithPeopleConfirm": {"description": "Confirms sharing a studyset with people"},
|
||||
"shareWithPeopleBody": "It moves with everything in it, your progress too, into a space of its own that you own. Then invite people by their handle. Topics stay inside it, and it can't be published while it is shared.",
|
||||
"@shareWithPeopleBody": {"description": "What sharing a studyset with people does, asked before it starts"},
|
||||
"shareRefusedPublished": "Something in it is published, or was. Studysets with a publication can't be shared yet.",
|
||||
"@shareRefusedPublished": {"description": "Why a studyset can't be shared"},
|
||||
"shareRefusedKeys": "This device doesn't hold your account's keys. Sign in with your password first.",
|
||||
"@shareRefusedKeys": {"description": "Why a studyset can't be shared"},
|
||||
"shareRefusedUnreached": "Your instance couldn't be reached. Try again once you're online.",
|
||||
"@shareRefusedUnreached": {"description": "Why a studyset couldn't be shared"},
|
||||
"shareFailed": "Sharing failed. The studyset is as it was.",
|
||||
"@shareFailed": {"description": "Sharing a studyset failed for another reason"},
|
||||
"workStageSpace": "Making its space",
|
||||
"@workStageSpace": {"description": "Stage of sharing a studyset"},
|
||||
"workStageCleaning": "Clearing the old copy",
|
||||
"@workStageCleaning": {"description": "Stage of sharing a studyset"},
|
||||
"shareMembersUnreachable": "Your instance couldn't be reached.",
|
||||
"@shareMembersUnreachable": {"description": "The members of a shared studyset couldn't be read or changed"},
|
||||
"shareInvite": "Invite",
|
||||
"@shareInvite": {"description": "Button inviting someone to a shared studyset"},
|
||||
"shareInviteTitle": "Invite someone",
|
||||
"@shareInviteTitle": {"description": "Title of the invite dialog"},
|
||||
"shareInviteHandle": "Their handle",
|
||||
"@shareInviteHandle": {"description": "Field for the handle of the person invited"},
|
||||
"shareRoleOwner": "Owner",
|
||||
"@shareRoleOwner": {"description": "A member's role in a shared studyset"},
|
||||
"shareRoleEditor": "Editor",
|
||||
"@shareRoleEditor": {"description": "A member's role in a shared studyset"},
|
||||
"shareRoleViewer": "Viewer",
|
||||
"@shareRoleViewer": {"description": "A member's role in a shared studyset"},
|
||||
"shareRoleEditorHint": "Studies it and changes it with you.",
|
||||
"@shareRoleEditorHint": {"description": "What an Editor may do"},
|
||||
"shareRoleViewerHint": "Studies it, but can't change it.",
|
||||
"@shareRoleViewerHint": {"description": "What a Viewer may do"},
|
||||
"shareYou": "you",
|
||||
"@shareYou": {"description": "Marks the person's own row among the members"},
|
||||
"shareInvited": "invited",
|
||||
"@shareInvited": {"description": "Marks a member who hasn't accepted yet"},
|
||||
"shareKeysChanged": "keys changed",
|
||||
"@shareKeysChanged": {"description": "Marks a member whose keys changed since this device saw them"},
|
||||
"shareCompared": "Safety code compared",
|
||||
"@shareCompared": {"description": "Marks a member whose safety code the person compared"},
|
||||
"shareMemberOptions": "Member options",
|
||||
"@shareMemberOptions": {"description": "Tooltip of a member's menu"},
|
||||
"shareMakeEditor": "Make editor",
|
||||
"@shareMakeEditor": {"description": "Gives a member the Editor role"},
|
||||
"shareMakeViewer": "Make viewer",
|
||||
"@shareMakeViewer": {"description": "Gives a member the Viewer role"},
|
||||
"shareMakeOwner": "Make owner",
|
||||
"@shareMakeOwner": {"description": "Hands the shared studyset on to a member"},
|
||||
"shareMakeOwnerTitle": "Make {name} its owner?",
|
||||
"@shareMakeOwnerTitle": {"description": "Asks before handing a shared studyset on", "placeholders": {"name": {"type": "String"}}},
|
||||
"shareMakeOwnerBody": "They decide who it is shared with from then on. You stay an editor.",
|
||||
"@shareMakeOwnerBody": {"description": "What handing a shared studyset on does"},
|
||||
"shareRemove": "Remove",
|
||||
"@shareRemove": {"description": "Removes a member from a shared studyset"},
|
||||
"shareRemoveTitle": "Remove {name}?",
|
||||
"@shareRemoveTitle": {"description": "Asks before removing a member", "placeholders": {"name": {"type": "String"}}},
|
||||
"shareRemoveBody": "They no longer see it or anything written in it from now on.",
|
||||
"@shareRemoveBody": {"description": "What removing a member does"},
|
||||
"shareLeave": "Leave",
|
||||
"@shareLeave": {"description": "Leaves a shared studyset"},
|
||||
"shareLeaveTitle": "Leave {title}?",
|
||||
"@shareLeaveTitle": {"description": "Asks before leaving a shared studyset", "placeholders": {"title": {"type": "String"}}},
|
||||
"shareLeaveBody": "It goes from your library with your progress in it. Someone has to invite you again to come back.",
|
||||
"@shareLeaveBody": {"description": "What leaving a shared studyset does"},
|
||||
"shareLeaveNextOwner": "Who owns it after you?",
|
||||
"@shareLeaveNextOwner": {"description": "Asks the owner who takes a shared studyset on as they leave"},
|
||||
"shareDeleteForEveryone": "Delete for everyone",
|
||||
"@shareDeleteForEveryone": {"description": "Deletes a shared studyset with everything in it, for every member"},
|
||||
"shareDeleteTitle": "Delete {title} for everyone?",
|
||||
"@shareDeleteTitle": {"description": "Asks before deleting a shared studyset", "placeholders": {"title": {"type": "String"}}},
|
||||
"shareDeleteBody": "It goes for good, with everything in it and everyone's progress, from every member's library. This can't be undone.",
|
||||
"@shareDeleteBody": {"description": "What deleting a shared studyset does"},
|
||||
"shareRefusedNoHandle": "Nobody on your instance has that handle.",
|
||||
"@shareRefusedNoHandle": {"description": "An invitation was refused"},
|
||||
"shareRefusedAlreadyMember": "They are a member or invited already.",
|
||||
"@shareRefusedAlreadyMember": {"description": "An invitation was refused"},
|
||||
"shareRefusedLastMember": "You're its only member: delete it instead.",
|
||||
"@shareRefusedLastMember": {"description": "Leaving was refused"},
|
||||
"shareRefusedUnavailable": "Your instance doesn't share studysets.",
|
||||
"@shareRefusedUnavailable": {"description": "The instance keeps no shared spaces"},
|
||||
"shareRefusedNotAllowed": "Only its owner can do that.",
|
||||
"@shareRefusedNotAllowed": {"description": "A change to a shared studyset was refused"},
|
||||
"safetyCodeTitle": "Safety code with {name}",
|
||||
"@safetyCodeTitle": {"description": "Title of the safety code sheet", "placeholders": {"name": {"type": "String"}}},
|
||||
"safetyCodeHowTo": "Compare this with the code {name} sees for you, in person or on a call. If they match, nobody stands between you, not even your instance.",
|
||||
"@safetyCodeHowTo": {"description": "How to use a safety code", "placeholders": {"name": {"type": "String"}}},
|
||||
"safetyCodeChanged": "{name}'s keys changed since this device last saw them. That happens after a new password without the recovery phrase, or if someone stands between you. Compare the code before trusting them.",
|
||||
"@safetyCodeChanged": {"description": "Warns that a member's keys changed", "placeholders": {"name": {"type": "String"}}},
|
||||
"safetyCodeMarkCompared": "Mark as compared",
|
||||
"@safetyCodeMarkCompared": {"description": "Marks a safety code compared"},
|
||||
"safetyCodeTrustNew": "Trust the new keys",
|
||||
"@safetyCodeTrustNew": {"description": "Trusts a member's changed keys after comparing"},
|
||||
"studysetViewOnly": "You can view and study this, not change it.",
|
||||
"@studysetViewOnly": {"description": "Line on a shared studyset where the person is a Viewer"},
|
||||
"studysetViewOnlyRefused": "You can only view this studyset.",
|
||||
"@studysetViewOnlyRefused": {"description": "A write in a studyset shared with the person as a Viewer was refused"}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue