Files
TREK/shared/src/i18n/en/login.ts
T
jubnl bf969ee80d feat(auth): add "Remember me" checkbox to extend session lifetime (#1189)
Adds a "Remember me" checkbox to the login form (single responsive page,
covers mobile + desktop). Unchecked (default) issues the existing
SESSION_DURATION JWT with a browser-session cookie (no maxAge); checked
issues a longer-lived JWT plus a persistent cookie sized by the new
SESSION_DURATION_REMEMBER env var (default 30d). The choice is threaded
through the MFA verify leg so it survives the step-up.

Register/demo logins keep their current persistent behaviour.
2026-06-15 12:21:05 +02:00

99 lines
4.9 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import type { TranslationStrings } from '../types';
const login: TranslationStrings = {
'login.error': 'Login failed. Please check your credentials.',
'login.tagline': 'Your Trips.\nYour Plan.',
'login.description':
'Plan trips collaboratively with interactive maps, budgets, and real-time sync.',
'login.features.maps': 'Interactive Maps',
'login.features.mapsDesc': 'Google Places, routes & clustering',
'login.features.realtime': 'Real-Time Sync',
'login.features.realtimeDesc': 'Plan together via WebSocket',
'login.features.budget': 'Budget Tracking',
'login.features.budgetDesc': 'Categories, charts & per-person costs',
'login.features.collab': 'Collaboration',
'login.features.collabDesc': 'Multi-user with shared trips',
'login.features.packing': 'Packing Lists',
'login.features.packingDesc': 'Categories, progress & suggestions',
'login.features.bookings': 'Reservations',
'login.features.bookingsDesc': 'Flights, hotels, restaurants & more',
'login.features.files': 'Documents',
'login.features.filesDesc': 'Upload & manage documents',
'login.features.routes': 'Smart Routes',
'login.features.routesDesc': 'Auto-optimize & Google Maps export',
'login.selfHosted': 'Self-hosted · Open Source · Your data stays yours',
'login.title': 'Sign In',
'login.subtitle': 'Welcome back',
'login.signingIn': 'Signing in…',
'login.signIn': 'Sign In',
'login.createAdmin': 'Create Admin Account',
'login.createAdminHint': 'Set up the first admin account for TREK.',
'login.setNewPassword': 'Set New Password',
'login.setNewPasswordHint':
'You must change your password before continuing.',
'login.createAccount': 'Create Account',
'login.createAccountHint': 'Register a new account.',
'login.creating': 'Creating…',
'login.noAccount': "Don't have an account?",
'login.hasAccount': 'Already have an account?',
'login.register': 'Register',
'login.emailPlaceholder': 'your@email.com',
'login.username': 'Username',
'login.oidc.registrationDisabled':
'Registration is disabled. Contact your administrator.',
'login.oidc.noEmail': 'No email received from provider.',
'login.oidc.tokenFailed': 'Authentication failed.',
'login.oidc.invalidState': 'Invalid session. Please try again.',
'login.demoFailed': 'Demo login failed',
'login.oidcSignIn': 'Sign in with {name}',
'login.oidcOnly':
'Password authentication is disabled. Please sign in using your SSO provider.',
'login.oidcLoggedOut':
'You have been logged out. Sign in again using your SSO provider.',
'login.demoHint': 'Try the demo — no registration needed',
'login.mfaTitle': 'Two-factor authentication',
'login.mfaSubtitle': 'Enter the 6-digit code from your authenticator app.',
'login.mfaCodeLabel': 'Verification code',
'login.mfaCodeRequired': 'Enter the code from your authenticator app.',
'login.mfaHint': 'Open Google Authenticator, Authy, or another TOTP app.',
'login.mfaBack': '← Back to sign in',
'login.mfaVerify': 'Verify',
'login.invalidInviteLink': 'Invalid or expired invite link',
'login.oidcFailed': 'OIDC login failed',
'login.usernameRequired': 'Username is required',
'login.passwordMinLength': 'Password must be at least 8 characters',
'login.forgotPassword': 'Forgot password?',
'login.rememberMe': 'Remember me',
'login.forgotPasswordTitle': 'Reset your password',
'login.forgotPasswordBody':
"Enter the email address you signed up with. If an account exists, we'll send a reset link.",
'login.forgotPasswordSubmit': 'Send reset link',
'login.forgotPasswordSentTitle': 'Check your email',
'login.forgotPasswordSentBody':
'If an account exists for that email, a reset link is on its way. It expires in 60 minutes.',
'login.forgotPasswordSmtpHintOff':
"Heads up: your administrator hasn't configured SMTP, so the reset link will be written to the server console instead of being emailed.",
'login.backToLogin': 'Back to sign in',
'login.newPassword': 'New password',
'login.confirmPassword': 'Confirm new password',
'login.passwordsDontMatch': "Passwords don't match",
'login.mfaCode': '2FA code',
'login.resetPasswordTitle': 'Set a new password',
'login.resetPasswordBody':
'Pick a strong password you havent used here before. Minimum 8 characters.',
'login.resetPasswordMfaBody':
'Enter your 2FA code or a backup code to complete the reset.',
'login.resetPasswordSubmit': 'Reset password',
'login.resetPasswordVerify': 'Verify & reset',
'login.resetPasswordSuccessTitle': 'Password updated',
'login.resetPasswordSuccessBody':
'You can now sign in with your new password.',
'login.resetPasswordInvalidLink': 'Invalid reset link',
'login.resetPasswordInvalidLinkBody':
'This link is missing or broken. Request a new one to continue.',
'login.resetPasswordFailed': 'Reset failed. The link may have expired.',
'login.passkey.signIn': 'Sign in with a passkey',
'login.passkey.failed': 'Passkey sign-in failed. Please try again.',
};
export default login;