Files
TREK/shared/src/i18n/fr/trip.ts
T
Maurice 5f77fa5cca feat(trips): trip invite links + optional trip binding on admin invites
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
2026-07-02 15:18:04 +02:00

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;