mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-06-30 18:46:00 +00:00
72f9beffbe
When the server issues a Secure session cookie but the request arrived over plain HTTP (the common LAN install over http://ip:3000), the browser drops the cookie and the next request dead-ends on a bare "Access token required" — the top source of avoidable install issues. The login response now flags this exact case and the login page shows a localized box explaining the fix (use HTTPS, or set COOKIE_SECURE=false) with a link to the Troubleshooting guide. It only triggers in the real failure case, never for correct HTTPS setups.
96 lines
6.0 KiB
TypeScript
96 lines
6.0 KiB
TypeScript
import type { TranslationStrings } from '../types';
|
||
|
||
const login: TranslationStrings = {
|
||
'login.error': 'Échec de la connexion. Veuillez vérifier vos identifiants.',
|
||
'login.tagline': 'Vos voyages.\nVotre organisation.',
|
||
'login.description':
|
||
'Planifiez vos voyages en collaboration avec des cartes interactives, des budgets et la synchronisation en temps réel.',
|
||
'login.features.maps': 'Cartes interactives',
|
||
'login.features.mapsDesc': 'Google Places, itinéraires et regroupement',
|
||
'login.features.realtime': 'Synchronisation en temps réel',
|
||
'login.features.realtimeDesc': 'Planifiez ensemble via WebSocket',
|
||
'login.features.budget': 'Suivi du budget',
|
||
'login.features.budgetDesc': 'Catégories, graphiques et coûts par personne',
|
||
'login.features.collab': 'Collaboration',
|
||
'login.features.collabDesc': 'Multi-utilisateurs avec voyages partagés',
|
||
'login.features.packing': 'Listes de bagages',
|
||
'login.features.packingDesc': 'Catégories, progression et suggestions',
|
||
'login.features.bookings': 'Réservations',
|
||
'login.features.bookingsDesc': 'Vols, hôtels, restaurants et plus',
|
||
'login.features.files': 'Documents',
|
||
'login.features.filesDesc': 'Importez et gérez vos documents',
|
||
'login.features.routes': 'Itinéraires intelligents',
|
||
'login.features.routesDesc': 'Optimisation automatique et export Google Maps',
|
||
'login.selfHosted': 'Auto-hébergé · Open Source · Vos données restent les vôtres',
|
||
'login.title': 'Connexion',
|
||
'login.subtitle': 'Bon retour',
|
||
'login.signingIn': 'Connexion en cours…',
|
||
'login.signIn': 'Se connecter',
|
||
'login.createAdmin': 'Créer un compte administrateur',
|
||
'login.createAdminHint': 'Configurez le premier compte administrateur pour TREK.',
|
||
'login.setNewPassword': 'Définir un nouveau mot de passe',
|
||
'login.setNewPasswordHint': 'Vous devez changer votre mot de passe avant de continuer.',
|
||
'login.createAccount': 'Créer un compte',
|
||
'login.createAccountHint': 'Créez un nouveau compte.',
|
||
'login.creating': 'Création…',
|
||
'login.noAccount': 'Pas encore de compte ?',
|
||
'login.hasAccount': 'Vous avez déjà un compte ?',
|
||
'login.register': "S'inscrire",
|
||
'login.emailPlaceholder': 'votre@email.com',
|
||
'login.username': "Nom d'utilisateur",
|
||
'login.oidc.registrationDisabled': 'Les inscriptions sont désactivées. Contactez votre administrateur.',
|
||
'login.oidc.noEmail': 'Aucun e-mail reçu du fournisseur.',
|
||
'login.mfaTitle': 'Authentification à deux facteurs',
|
||
'login.mfaSubtitle': "Entrez le code à 6 chiffres de votre application d'authentification.",
|
||
'login.mfaCodeLabel': 'Code de vérification',
|
||
'login.mfaCodeRequired': "Entrez le code de votre application d'authentification.",
|
||
'login.mfaHint': 'Ouvrez Google Authenticator, Authy ou une autre application TOTP.',
|
||
'login.mfaBack': '← Retour à la connexion',
|
||
'login.mfaVerify': 'Vérifier',
|
||
'login.invalidInviteLink': "Lien d'invitation invalide ou expiré",
|
||
'login.oidcFailed': 'Échec de connexion OIDC',
|
||
'login.usernameRequired': "Le nom d'utilisateur est obligatoire",
|
||
'login.passwordMinLength': 'Le mot de passe doit comporter au moins 8 caractères',
|
||
'login.forgotPassword': 'Mot de passe oublié ?',
|
||
'login.rememberMe': 'Se souvenir de moi',
|
||
'login.forgotPasswordTitle': 'Réinitialiser votre mot de passe',
|
||
'login.forgotPasswordBody':
|
||
"Entrez l'adresse e-mail associée à votre compte. Si un compte existe, nous enverrons un lien de réinitialisation.",
|
||
'login.forgotPasswordSubmit': 'Envoyer le lien',
|
||
'login.forgotPasswordSentTitle': 'Vérifiez vos e-mails',
|
||
'login.forgotPasswordSentBody':
|
||
'Si un compte existe pour cette adresse, un lien de réinitialisation est en route. Il expire dans 60 minutes.',
|
||
'login.forgotPasswordSmtpHintOff':
|
||
"Remarque : votre administrateur n'a pas configuré SMTP. Le lien de réinitialisation sera écrit dans la console du serveur au lieu d'être envoyé par e-mail.",
|
||
'login.backToLogin': 'Retour à la connexion',
|
||
'login.newPassword': 'Nouveau mot de passe',
|
||
'login.confirmPassword': 'Confirmer le nouveau mot de passe',
|
||
'login.passwordsDontMatch': 'Les mots de passe ne correspondent pas',
|
||
'login.mfaCode': 'Code 2FA',
|
||
'login.resetPasswordTitle': 'Définir un nouveau mot de passe',
|
||
'login.resetPasswordBody':
|
||
"Choisissez un mot de passe fort que vous n'avez pas encore utilisé ici. 8 caractères minimum.",
|
||
'login.resetPasswordMfaBody': 'Entrez votre code 2FA ou un code de secours pour finaliser la réinitialisation.',
|
||
'login.resetPasswordSubmit': 'Réinitialiser',
|
||
'login.resetPasswordVerify': 'Vérifier et réinitialiser',
|
||
'login.resetPasswordSuccessTitle': 'Mot de passe mis à jour',
|
||
'login.resetPasswordSuccessBody': 'Vous pouvez maintenant vous connecter avec votre nouveau mot de passe.',
|
||
'login.resetPasswordInvalidLink': 'Lien de réinitialisation invalide',
|
||
'login.resetPasswordInvalidLinkBody': 'Ce lien est manquant ou invalide. Demandez-en un nouveau pour continuer.',
|
||
'login.resetPasswordFailed': 'Échec de la réinitialisation. Le lien a peut-être expiré.',
|
||
'login.oidc.tokenFailed': "L'authentification a échoué.",
|
||
'login.oidc.invalidState': 'Session invalide. Veuillez réessayer.',
|
||
'login.demoFailed': 'Échec de la connexion démo',
|
||
'login.oidcSignIn': 'Se connecter avec {name}',
|
||
'login.oidcOnly':
|
||
"L'authentification par mot de passe est désactivée. Veuillez vous connecter via votre fournisseur SSO.",
|
||
'login.oidcLoggedOut': 'Vous avez été déconnecté. Reconnectez-vous via votre fournisseur SSO.',
|
||
'login.demoHint': 'Essayez la démo — aucune inscription nécessaire',
|
||
'login.passkey.signIn': 'Se connecter avec une passkey',
|
||
'login.passkey.failed': 'Échec de la connexion par passkey. Veuillez réessayer.',
|
||
'login.insecureCookie.title': "Login won't stick over HTTP",
|
||
'login.insecureCookie.body': "You’re connecting over plain HTTP, so your browser drops TREK’s secure session cookie — the next request fails with \"Access token required\". Fix: use HTTPS, or for a home-lab set COOKIE_SECURE=false.",
|
||
'login.insecureCookie.link': "Open the Troubleshooting guide",
|
||
};
|
||
export default login;
|