update email templates and subjects

This commit is contained in:
Niko Heller 2024-08-28 13:25:55 +02:00
parent ae6da78c62
commit ee120a04ff
14 changed files with 87 additions and 68 deletions

View file

@ -96,7 +96,7 @@ const providers: Provider[] = [
if (user) {
await emailClient.sendTemplate("LoginEmail", {
to: email,
subject: `${token} is your 6-digit code`,
subject: `${token} ist Dein sechsstelliger Eingabecode`,
props: {
name: user.name,
magicLink: absoluteUrl("/auth/login", {

View file

@ -235,7 +235,7 @@ export const polls = router({
waitUntil(
ctx.emailClient.sendTemplate("NewPollEmail", {
to: user.email,
subject: `Let's find a date for ${poll.title}`,
subject: `Lasst uns einen Termin finden für ${poll.title}`,
props: {
title: poll.title,
name: user.name,
@ -914,7 +914,7 @@ export const polls = router({
const emailToHost = waitUntil(
ctx.emailClient.sendTemplate("FinalizeHostEmail", {
subject: `Date booked for ${poll.title}`,
subject: `Termin gefunden für ${poll.title}`,
to: poll.user.email,
props: {
name: poll.user.name,
@ -939,7 +939,7 @@ export const polls = router({
const emailsToParticipants = participantsToEmail.map((p) => {
return ctx.emailClient.sendTemplate("FinalizeParticipantEmail", {
subject: `Date booked for ${poll.title}`,
subject: `Termin gefunden für ${poll.title}`,
to: p.email,
props: {
name: p.name,

View file

@ -82,7 +82,7 @@ export const comments = router({
emailsToSend.push(
ctx.emailClient.sendTemplate("NewCommentEmail", {
to: email,
subject: `${authorName} has commented on ${poll.title}`,
subject: `${authorName} hat ${poll.title} kommentiert`,
props: {
name: watcher.user.name,
authorName,

View file

@ -125,7 +125,7 @@ export const participants = router({
emailsToSend.push(
ctx.emailClient.sendTemplate("NewParticipantConfirmationEmail", {
to: email,
subject: `Thanks for responding to ${poll.title}`,
subject: `Danke für Deine Beteiligung an ${poll.title}`,
props: {
name,
title: poll.title,
@ -162,7 +162,7 @@ export const participants = router({
emailsToSend.push(
ctx.emailClient.sendTemplate("NewParticipantEmail", {
to: email,
subject: `${participant.name} has responded to ${poll.title}`,
subject: `${participant.name} hat in ${poll.title} geantwortet`,
props: {
name: watcher.user.name,
participantName: participant.name,

View file

@ -60,7 +60,7 @@ export const EmailLayout = ({
<Container style={containerStyles}>
<Img src={logoUrl} alt="Rallly" width={128} />
<Section style={sectionStyles}>
{recipientName ? <Text>Hi {recipientName},</Text> : null}
{recipientName ? <Text>Hallo {recipientName},</Text> : null}
{children}
{footNote ? (
<Text
@ -81,19 +81,29 @@ export const EmailLayout = ({
Home
</Link>
<span>&nbsp;&bull;&nbsp;</span>
<Link style={linkStyles} href="https://twitter.com/ralllyco">
Twitter
</Link>
<span>&nbsp;&bull;&nbsp;</span>
<Link style={linkStyles} href="https://github.com/lukevella/rallly">
Github
<Link
style={linkStyles}
href="https://www.gruene.de/service/impressum"
>
Impressum
</Link>
<span>&nbsp;&bull;&nbsp;</span>
<Link
style={linkStyles}
href={`mailto:${process.env["SUPPORT_EMAIL"]}`}
href="https://www.gruene.de/service/datenschutz"
>
Contact
Datenschutz
</Link>
<span>&nbsp;&bull;&nbsp;</span>
<Link
style={linkStyles}
href="https://netz.gruene.de/de/wissenswerk/2024-08/die-neue-termite"
>
Hilfe
</Link>
<span>&nbsp;&bull;&nbsp;</span>
<Link style={linkStyles} href="https://rallly.co">
Diese Anwendung basiert auf Rallly
</Link>
</Section>
</Container>

View file

@ -29,9 +29,10 @@ export const NotificationEmail = ({
recipientName={name}
footNote={
<>
If you would like to stop receiving updates you can{" "}
Wenn Du nicht mehr über Neuigkeiten informiert werden möchtest, kannst
Du die Benachrichtigungen in den Einstellungen{" "}
<Link className="whitespace-nowrap" href={disableNotificationsUrl}>
turn notifications off
deaktivieren
</Link>
.
</>
@ -40,7 +41,7 @@ export const NotificationEmail = ({
>
{children}
<Text>
<Button href={pollUrl}>View on {domain}</Button>
<Button href={pollUrl}>Du findest die Umfrage unter {domain}</Button>
</Text>
</EmailLayout>
);

View file

@ -30,7 +30,7 @@ export const FinalizeHostEmail = ({
return (
<EmailLayout ctx={ctx} recipientName={name} preview="Final date booked!">
<Text>
<strong>{title}</strong> has been booked for:
Es wurde ein Termin vereinbart für <strong>{title}</strong>:
</Text>
<Section>
<Row>
@ -71,10 +71,11 @@ export const FinalizeHostEmail = ({
</Row>
</Section>
<Text>
We&apos;ve notified participants and sent them calendar invites.
Wir haben die Teilnehmer*innen benachrichtigt und ihnen
Kalendereinladungen zugeschickt.
</Text>
<Text>
<Button href={pollUrl}>View Event</Button>
<Button href={pollUrl}>Termin anzeigen</Button>
</Text>
</EmailLayout>
);

View file

@ -32,8 +32,8 @@ export const FinalizeParticipantEmail = ({
return (
<EmailLayout ctx={ctx} recipientName={name} preview="Final date booked!">
<Text>
<strong>{hostName}</strong> has booked <strong>{title}</strong> for the
following date:
<strong>{hostName}</strong> hat für <strong>{title}</strong> folgendes
Datum festgelegt:
</Text>
<Section>
<Row>
@ -73,9 +73,9 @@ export const FinalizeParticipantEmail = ({
</Column>
</Row>
</Section>
<Text>Please find attached a calendar invite for this event.</Text>
<Text>Anbei findest Du die Kalendereinladung für diesen Termin.</Text>
<Text>
<Button href={pollUrl}>View Event</Button>
<Button href={pollUrl}>Termin anzeigen</Button>
</Text>
</EmailLayout>
);

View file

@ -27,32 +27,37 @@ export const LoginEmail = ({
ctx={ctx}
footNote={
<>
You&apos;re receiving this email because a request was made to login
to <Domain ctx={ctx} />. If this wasn&apos;t you, let us know by
replying to this email.
Du hast diese E-Mail erhalten, da ein Login-Versuch bei{" "}
<Domain ctx={ctx} /> stattgefunden hat. Wenn Du das nicht warst, lass
es uns bitte wissen und antworte auf diese E-Mail.
</>
}
recipientName={name}
preview="Use this link to log in on this device."
>
<Text>
To log in to your account, please choose one of the following options:
um Dich in Deinen Account einzuloggen, wähle bitte eine der folgenden
Optionen:
</Text>
<Card>
<Heading>Option 1: Magic Link</Heading>
<Text>Click this magic link to log in on this device.</Text>
<Heading>Option 1: Magischer Link</Heading>
<Text>
Klicke auf den magischen Link um Dich auf diesem Gerät anzumelden.
</Text>
<Button href={magicLink} id="magicLink">
Log in to {ctx.domain}
Logge Dich ein auf {ctx.domain}
</Button>
<Text light={true}>This link will expire in 15 minutes.</Text>
<Text light={true}>Dieser Link ist nur für 15 Minuten gültig. </Text>
</Card>
<Card>
<Heading>Option 2: Verification Code</Heading>
<Text>Enter this one-time 6-digit verification code.</Text>
<Heading>Option 2: Verifizierungscode</Heading>
<Text>
Gib diesen sechsstelligen Einmal-Code für die Verifizierung ein.
</Text>
<Heading as="h1" style={trackingWide} id="code">
{code}
</Heading>
<Text light={true}>This code will expire in 15 minutes.</Text>
<Text light={true}>Dieser Code ist nur für 15 Minuten gültig.</Text>
</Card>
</EmailLayout>
);

View file

@ -26,7 +26,7 @@ export const NewCommentEmail = ({
preview="Go to your poll to see what they said."
>
<Text>
<strong>{authorName}</strong> has commented on <strong>{title}</strong>.
<strong>{authorName}</strong> hat <strong>{title}</strong> kommentiert.
</Text>
</NotificationEmail>
);

View file

@ -20,24 +20,25 @@ export const NewParticipantConfirmationEmail = ({
ctx={ctx}
footNote={
<>
You are receiving this email because a response was submitted on{" "}
<Domain ctx={ctx} />. If this wasn&apos;t you, please ignore this
email.
Du erhältst diese E-Mail, da eine Antwort auf <Domain ctx={ctx} />{" "}
eingegangen ist. Wenn Du das nicht warst, ignoriere bitte diese
E-Mail.
</>
}
recipientName={name}
preview="To edit your response use the link below"
>
<Text>
Your response to <strong>{title}</strong> has been submitted.
Deine Antwort auf <strong>{title}</strong> wurde erfolgreich
übermittelt.
</Text>
<Text>
While the poll is still open you can change your response using the link
below.
Solange die Umfrage noch läuft, kannst Du Deine Antwort über den
folgenden Link ändern oder anschauen:
</Text>
<Section>
<Button id="editSubmissionUrl" href={editSubmissionUrl}>
Review response on {domain}
Ansehen auf {domain}
</Button>
</Section>
</EmailLayout>

View file

@ -26,8 +26,8 @@ export const NewParticipantEmail = ({
preview="Go to your poll to see the new response."
>
<Text>
<strong>{participantName}</strong> has responded to{" "}
<strong>{title}</strong>.
<strong>{participantName}</strong> hat an Deiner Umfrage{" "}
<strong>{title}</strong> teilgenommen.
</Text>
</NotificationEmail>
);

View file

@ -23,9 +23,9 @@ const ShareLink = ({
return (
<Link
href={`mailto:?subject=${encodeURIComponent(
`Availability for ${title}`,
`Terminfindung für ${title}`,
)}&body=${encodeURIComponent(
`Hi all,\nI'm trying to find the best date for ${title}.\nCan you please use the link below to choose your preferred dates:\n${participantLink}\nThank you.\n${name}`,
`Hallo,\nIch versuche einen passenden Termin für ${title} zu finden.\nKannst du bitte den Link unten benutzen um deine bevorzugten Termine anzugeben:\n${participantLink}\nDankeschön.\n${name}`,
)}`}
>
{children}
@ -46,22 +46,21 @@ export const NewPollEmail = ({
ctx={ctx}
footNote={
<>
You are receiving this email because a new poll was created with this
email address on <Link href={baseUrl}>{domain}</Link>. If this
wasn&apos;t you, please ignore this email.
Du erhältst diese E-Mail, weil eine neue Umfrage unter Angabe dieser
E-Mail-Adresse auf <Link href={baseUrl}>{domain}</Link> erstellt
wurde. Falls dies nicht von dir veranlasst wurde, ignoriere bitte
diese E-Mail.
</>
}
recipientName={name}
preview="Share your participant link to start collecting responses."
>
<Text>
Your poll has been successfully created! Here are the details:
</Text>
<Text>Deine Umfrage wurde erfolgreich angelegt!</Text>
<Card>
<Text>
<strong>Title:</strong> {title}
<strong>Titel:</strong> {title}
<br />
<strong>Invite Link:</strong>{" "}
<strong>Einladungslink:</strong>{" "}
<Link href={participantLink}>{participantLink}</Link>
</Text>
<Text>
@ -70,18 +69,19 @@ export const NewPollEmail = ({
name={name}
participantLink={participantLink}
>
Share via email
Per E-Mail teilen
</ShareLink>
</Text>
</Card>
<Text>
To invite participants to your poll, simply share the{" "}
<strong>Invite Link</strong> above with them. They&apos;ll be able to
vote on their preferred meeting times and dates.
Um Teilnehmer*innen zu deiner Umfrage einzuladen, teile einfach den oben
genannten <strong>Einladungslink</strong> mit ihnen. Sie können dann für
ihre bevorzugten Termine und Zeiten abstimmen.
</Text>
<Text>
If you need to make any changes to your poll, or if you want to see the
results so far, just click on the button below:
Wenn du Änderungen an deiner Umfrage vornehmen möchtest oder die
bisherigen Ergebnisse einsehen willst, klicke einfach auf den folgenden
Button:
</Text>
<Text>
<Button href={adminLink}>Manage Poll &rarr;</Button>

View file

@ -21,20 +21,21 @@ export const RegisterEmail = ({
ctx={ctx}
footNote={
<>
You&apos;re receiving this email because a request was made to
register an account on <Domain ctx={ctx} />. If this wasn&apos;t you,
please ignore this email.
Du erhältst diese E-Mail, da eine Registrierungsanfrage auf{" "}
<Domain ctx={ctx} /> eingegangen ist. Wenn Du das nicht warst,
ignoriere bitte diese E-Mail.
</>
}
preview={`Your 6-digit code is: ${code}`}
>
<Text>
Please use the following 6-digit verification code to verify your email:
Bitte nutze folgenden sechsstelligen Code um Deine E-Mailadresse zu
verifizieren:
</Text>
<Heading as="h1" style={{ ...trackingWide }} id="code">
{code}
</Heading>
<Text>This code is valid for 15 minutes</Text>
<Text>Dieser Code ist nur für 15 Minuten gültig.</Text>
</EmailLayout>
);
};