mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-10-18 21:16:47 +00:00
5f77fa5cca
Trip invite links (#1143): each trip can have one rotating invite link in its Share panel. An existing, logged-in user who opens /join/<token> is added to the trip as a member; an anonymous visitor is sent to the login page and returned to the invite afterwards — there is no registration from this link. Reading, rotating or disabling the link all require the share_manage permission. Admin invite trip binding (#1402): the admin create-invite dialog can now bind a registration invite to a trip. Someone who registers via that link is auto-added to the trip as a member (password and OIDC paths), inside the same atomic step that consumes the invite. Adds a trip_invite_tokens table and a nullable invite_tokens.trip_id, a shared owner-safe/idempotent add-by-id helper, the manage + join endpoints, the JoinTripPage and Share-panel section, the admin trip picker, and the new i18n keys across every locale. Wiki updated. Discussion #1143
44 lines
2.1 KiB
TypeScript
44 lines
2.1 KiB
TypeScript
import type { TranslationStrings } from '../types';
|
|
|
|
const trip: TranslationStrings = {
|
|
'trip.tabs.plan': 'Plan',
|
|
'trip.tabs.transports': 'Transports',
|
|
'trip.tabs.reservations': 'Réservations',
|
|
'trip.tabs.reservationsShort': 'Résa',
|
|
'trip.tabs.packing': 'Liste de bagages',
|
|
'trip.tabs.packingShort': 'Bagages',
|
|
'trip.tabs.lists': 'Listes',
|
|
'trip.tabs.listsShort': 'Listes',
|
|
'trip.tabs.budget': 'Costs',
|
|
'trip.tabs.files': 'Fichiers',
|
|
'trip.loading': 'Chargement du voyage…',
|
|
'trip.loadingPhotos': 'Chargement des photos des lieux...',
|
|
'trip.mobilePlan': 'Plan',
|
|
'trip.mobilePlaces': 'Lieux',
|
|
'trip.toast.placeUpdated': 'Lieu mis à jour',
|
|
'trip.toast.placeAdded': 'Lieu ajouté',
|
|
'trip.toast.placeDeleted': 'Lieu supprimé',
|
|
'trip.toast.selectDay': "Veuillez d'abord sélectionner un jour",
|
|
'trip.toast.assignedToDay': 'Lieu attribué au planning',
|
|
'trip.toast.reorderError': 'Échec de la réorganisation',
|
|
'trip.toast.reservationUpdated': 'Réservation mise à jour',
|
|
'trip.toast.reservationAdded': 'Réservation ajoutée',
|
|
'trip.toast.deleted': 'Supprimé',
|
|
'trip.confirm.deletePlace': 'Voulez-vous vraiment supprimer ce lieu ?',
|
|
'trip.confirm.deletePlaces': 'Supprimer {count} lieux?',
|
|
'trip.toast.placesDeleted': '{count} lieux supprimés',
|
|
'trip.invite.linkTitle': 'Lien d\'invitation au voyage',
|
|
'trip.invite.linkHint': 'Toute personne disposant d\'un compte TREK qui ouvre ce lien rejoint le voyage en tant que membre. Régénérez le lien pour invalider l\'ancien.',
|
|
'trip.invite.create': 'Créer un lien d\'invitation',
|
|
'trip.invite.regenerate': 'Régénérer',
|
|
'trip.invite.disable': 'Désactiver',
|
|
'trip.invite.joinHeading': 'Rejoindre ce voyage',
|
|
'trip.invite.joinPrompt': 'Vous avez été invité à rejoindre « {title} ».',
|
|
'trip.invite.joinCta': 'Rejoindre le voyage',
|
|
'trip.invite.joining': 'Ajout en cours…',
|
|
'trip.invite.invalidTitle': 'Invitation indisponible',
|
|
'trip.invite.invalid': 'Ce lien d\'invitation est invalide ou a expiré.',
|
|
'trip.invite.backToDashboard': 'Retour au tableau de bord',
|
|
};
|
|
export default trip;
|