4aea069295
Build & Push Docker Image / build (push) Successful in 4m6s
Bug fixes:
- bbb.js: replace undefined t('defaultWelcome') call that threw a
ReferenceError when a room had an empty welcome message, breaking
meeting creation. Default welcome and the guest-invite hint are now
localised via the i18n system (new "bbb" namespace in de/en).
- auth.js: app name was read from the never-written 'branding' settings
key, so custom names never appeared in verification emails or the TOTP
issuer. Now resolved through a shared getAppName() helper.
- auth.js: lowercase the email in the registration duplicate check so
case-variant duplicates return a clean 409 instead of a 500 (UNIQUE
violation).
- federation.js: select the user's "language" column so federation
invite emails respect the recipient's language instead of always
defaulting to English.
- calendar.js: a set reminder could not be cleared. COALESCE treated an
explicit reminder_minutes: null as "keep existing"; use a direct
assignment that distinguishes "omitted" (keep) from "null" (clear).
- index.js / analytics.js: exclude the BBB learning-analytics callback
from the global 100kb body limit and give it its own 5mb limit, since
analytics payloads for large meetings can be several MB.
Cleanup:
- Add server/config/appName.js as the single source of truth for the
app name (admin setting -> APP_NAME env -> 'Redlight') and use it in
auth, admin, rooms, calendar and federation, replacing the previous
mix of wrong DB key, direct app_name reads and bare process.env reads.
- Localise the BBB default welcome message in the room owner's language.
- Remove two unused safeAppName variables in mailer.js.
51 lines
2.2 KiB
JSON
51 lines
2.2 KiB
JSON
{
|
|
"email": {
|
|
"greeting": "Hey {name} 👋",
|
|
"viewInvitation": "Einladung anzeigen",
|
|
"invitationFooter": "Öffne den Link oben, um die Einladung anzunehmen oder abzulehnen.",
|
|
"linkHint": "Oder kopiere diesen Link in deinen Browser:",
|
|
"verify": {
|
|
"subject": "{appName} - E-Mail-Adresse bestätigen",
|
|
"intro": "Bitte bestätige deine E-Mail-Adresse, indem du auf den Button klickst:",
|
|
"button": "E-Mail bestätigen",
|
|
"validity": "Dieser Link ist 24 Stunden gültig.",
|
|
"footer": "Falls du dich nicht registriert hast, kannst du diese E-Mail ignorieren."
|
|
},
|
|
"invite": {
|
|
"subject": "{appName} - Du wurdest eingeladen",
|
|
"title": "Du wurdest eingeladen! 🎉",
|
|
"intro": "Du wurdest eingeladen, ein Konto auf {appName} zu erstellen.",
|
|
"prompt": "Klicke auf den Button, um dich zu registrieren:",
|
|
"button": "Konto erstellen",
|
|
"validity": "Dieser Link ist 7 Tage gültig.",
|
|
"footer": "Falls du diese Einladung nicht erwartet hast, kannst du diese E-Mail ignorieren."
|
|
},
|
|
"federationInvite": {
|
|
"subject": "{appName} - Meeting-Einladung von {fromUser}",
|
|
"intro": "Du hast eine Meeting-Einladung von {fromUser} erhalten.",
|
|
"roomLabel": "Raum:"
|
|
},
|
|
"guestInvite": {
|
|
"subject": "{appName} - Einladung zu einem Meeting",
|
|
"intro": "{fromUser} hat dich zu einem Meeting eingeladen.",
|
|
"roomLabel": "Raum:",
|
|
"joinButton": "Meeting beitreten",
|
|
"footer": "Klicke auf den Button oben, um dem Meeting beizutreten."
|
|
},
|
|
"calendarInvite": {
|
|
"subject": "{appName} - Kalendereinladung von {fromUser}",
|
|
"intro": "Du hast eine Kalendereinladung von {fromUser} erhalten."
|
|
},
|
|
"calendarDeleted": {
|
|
"subject": "{appName} - Kalendereintrag abgesagt: {title}",
|
|
"intro": "Der folgende Kalendereintrag wurde vom Organisator ({fromUser}) gelöscht und ist nicht mehr verfügbar:",
|
|
"note": "Der Termin wurde automatisch aus deinem Kalender entfernt.",
|
|
"footer": "Diese Nachricht wurde automatisch von {appName} versendet."
|
|
}
|
|
},
|
|
"bbb": {
|
|
"defaultWelcome": "Willkommen im Meeting!",
|
|
"inviteHint": "Lade weitere Teilnehmer ein, indem du diesen Link teilst:"
|
|
}
|
|
}
|