Files
gerbeur/shared/digest-messages.ts

81 lines
2.2 KiB
TypeScript

/**
* Words the digest emails share with the pages that show or govern them: the
* `/community` page shows the digests' figures and sections, Settings and the
* unsubscribe page name the digests, the avatar menu links the community
* page. `api/mail/digest.ts` and those pages translate them from here, so an
* email and a page always say the same.
*
* Each is a Lingui message descriptor with an explicit id, since the server
* runs no macro; the `i18n` comment has `lingui extract` read its English into
* the catalogs. Pass one to `i18n._`, with its values: on the client, the
* `i18n` of `useLingui()`.
*
* @module
*/
import type { MessageDescriptor } from "@lingui/core";
/** The shared messages, by name. */
export const DIGEST_MESSAGES = {
weekly: /*i18n*/ {
id: "digest.weekly",
message: "Weekly digest",
},
monthly: /*i18n*/ {
id: "digest.monthly",
message: "Monthly recap",
},
weeklyOff: /*i18n*/ {
id: "digest.weekly.off",
message: "Turn off weekly digests",
},
monthlyOff: /*i18n*/ {
id: "digest.monthly.off",
message: "Turn off monthly recaps",
},
community: /*i18n*/ {
id: "digest.community",
message: "Community",
},
topWeek: /*i18n*/ {
id: "digest.topWeek",
message: "Top this week",
},
topMonth: /*i18n*/ {
id: "digest.topMonth",
message: "Top this month",
},
newMembers: /*i18n*/ {
id: "digest.newMembers",
message: "New members",
},
newPlaylists: /*i18n*/ {
id: "digest.newPlaylists",
message: "New public playlists",
},
invitedBy: /*i18n*/ {
id: "digest.invitedBy",
message: "invited by @{username}",
},
invitedByYou: /*i18n*/ {
id: "digest.invitedByYou",
message: "invited by you",
},
statDumps: /*i18n*/ {
id: "digest.stat.dumps",
message: "{n, plural, one {dump} other {dumps}}",
},
statChat: /*i18n*/ {
id: "digest.stat.chat",
message: "{n, plural, one {chat message} other {chat messages}}",
},
countUpvotes: /*i18n*/ {
id: "digest.count.upvotes",
message: "{n, plural, one {upvote} other {upvotes}}",
},
countComments: /*i18n*/ {
id: "digest.count.comments",
message: "{n, plural, one {comment} other {comments}}",
},
} as const satisfies Record<string, MessageDescriptor>;