Show invited people the Rule, let them copy its cards for their community, and replace an expired invitation link.

This commit is contained in:
adilallo committed 2026-11-06 09:16:06 -07:00
1 parent 727a92a9ac
commit 3c984e00c5
37 files changed
+1962 -19

No files matched your search

@@ -1,6 +1,10 @@
{
"toastTitle": "Your Rule is finished",
"toastDescription": "This is what the people you invite will see.",
"copyReadyToastTitle": "Your copy is ready",
"copyReadyToastDescription": "It started from {possessive} Rule. Read it through and change what does not fit before you invite your members.",
"copyNameHitTitle": "One line names {name}",
"copyNameHitDescription": "It is in {entry} under {category}.",
"askOrganizerLead": "Has your Rule changed how your community works?",
"askOrganizerLink": "Tell an organizer what changed.",
"shareNoRuleTitle": "Nothing to share yet",
+2
View File
@@ -34,6 +34,7 @@ import login from "./pages/login.json";
import profile from "./pages/profile.json";
import notFoundPage from "./pages/notFoundPage.json";
import ruleDetail from "./pages/ruleDetail.json";
import invite from "./pages/invite.json";
import navigation from "./navigation.json";
import metadata from "./metadata.json";
import modalsShare from "./modals/share.json";
@@ -114,6 +115,7 @@ export default {
profile,
notFoundPage,
ruleDetail,
invite,
},
create: {
community: {
+8
View File
@@ -50,6 +50,14 @@
"title": "Log in",
"description": "Enter your email and we'll send you a magic link to sign in. No password needed!"
},
"invite": {
"title": "Invitation",
"description": "Read a CommunityRule you were invited to see."
},
"inviteExpired": {
"title": "This link has expired",
"description": "Ask for a new invitation link to read the Rule."
},
"profile": {
"title": "Profile",
"description": "Manage your CommunityRules, saved progress, and account."
+50
View File
@@ -0,0 +1,50 @@
{
"_comment": "Invited Rule reader, Make a copy, and expired invitation link.",
"makeACopy": "Make a copy",
"makeACopyAria": "Make a copy of this Rule",
"navAria": "Invitation",
"bannerTitle": "{email} invited you to read this Rule",
"bannerTitleNoEmail": "You were invited to read this Rule",
"bannerDescription": "Their Rule sets out how they talk, who belongs, how they decide and what happens when they disagree.",
"downloadPdf": "Download PDF",
"print": "Print",
"factsHeading": "About this Rule",
"whoCanEdit": "Who can edit",
"whoCanEditUnknown": "The person who invited you",
"whoCanSee": "Who can see it",
"whoCanSeeValue": "Only people the community invites",
"lastChanged": "Last changed",
"copyCardTitle": "Start a Rule from this one",
"copyCardBody": "You get its {counts} word for word. The name, description, photo, invited people and history stay with the original.",
"privacy": "Every Rule starts private. Only the people the community invites can read it until the person who holds the pen turns on a link.",
"exportFailedTitle": "Could not export",
"exportFailedDescription": "Something went wrong. Refresh the page and try again.",
"dialogTitle": "Make a copy for your community",
"dialogDescription": "Your copy starts with {possessive} {counts} word for word.",
"communityNameLabel": "Community name",
"communityNamePlaceholder": "Enter community name",
"characterCountTemplate": "{current}/{max}",
"comesWithTitle": "Comes with the copy",
"comesWithBody": "The cards and the text on them.",
"staysWithTitle": "Stays with the original",
"staysWithBody": "The name, description, photo, invited people and history.",
"saveTo": "The copy saves to {email}.",
"cancel": "Cancel",
"confirm": "Make a copy",
"copyFailed": "Could not make a copy. Try again.",
"nameRequired": "Add your community’s name to continue.",
"expiredTitle": "This link has expired",
"expiredDescription": "Enter the email the invitation was sent to. We’ll send a new link that works for 60 minutes.",
"emailLabel": "Email address",
"emailPlaceholder": "you@example.com",
"sendNewLink": "Send a new link",
"notInvitedAddress": "Not the address you were invited at?",
"backToHome": "← Back to home",
"sentTitle": "Check your email",
"sentBody": "If that address still has an invitation, we sent a new link. Open it within 60 minutes.",
"emailInvalid": "Enter a valid email address.",
"genericError": "Something went wrong. Try again.",
"rateLimited": "Too many requests. Try again in {seconds} seconds.",
"missingToken": "This page needs the original invitation link. Ask the person who invited you to send it again.",
"loadingFallback": "Loading…"
}