frontend 2026-06-10 bontva a 2 felület

This commit is contained in:
Roo
2026-06-10 08:06:07 +00:00
parent b84b1bab41
commit 90e3173fbc
59 changed files with 8616 additions and 1412 deletions

83
frontend/src/i18n/cz.ts Normal file
View File

@@ -0,0 +1,83 @@
export default {
menu: {
features: 'Funkce',
garage: 'Vozidla',
calendar: 'Servisní kalendář',
finance: 'Finance & Náklady',
diagnostic: 'Živá diagnostika',
addVehicle: '+ Přidat nové vozidlo',
},
header: {
welcome: 'Vítejte',
userMenu: 'Uživatelské menu',
profile: 'Nastavení profilu',
logout: 'Odhlásit se',
subtitle: 'Váš dashboard a přehled vozidel',
switchLanguage: 'Přepnout jazyk',
},
dashboard: {
loading: 'Načítání...',
errorRetry: 'Opakovat',
statusActive: 'Aktivní',
statusUnknown: 'Neznámý',
condition: 'Stav',
mileage: 'km',
// Bento Box layout
myVehicles: 'Moje Vozidla',
vehicles: 'vozidel',
noVehicles: 'Zatím žádná vozidla. Přidejte své první!',
activeProcesses: 'Aktivní Procesy / Oznámení',
noNotifications: 'Vše v pořádku — žádná oznámení',
totalVehicles: 'Celkem Vozidel',
addVehicle: '+ Přidat Vozidlo',
refresh: 'Obnovit',
statsAndPoints: 'Statistiky & Body',
live: 'ŽIVĚ',
monthlyScore: 'Měsíční Skóre',
totalKm: 'Celková Vzdálenost',
fuelCost: 'Náklady na Palivo',
serviceCost: 'Náklady na Servis',
co2Savings: 'Úspora CO₂',
achievements: 'Úspěchy',
},
zen: {
hide: 'Skrýt UI (Zen režim)',
show: 'Zobrazit UI',
},
auth: {
invalid_credentials: 'Neplatný email nebo heslo.',
user_inactive: 'Váš účet ještě není aktivován. Prosím ověřte svůj email!',
forgotPasswordMessage: 'Funkce obnovení hesla je ve vývoji. Prosím kontaktujte administrátora!',
resendTitle: 'Znovu odeslat aktivační email',
resendDescription: 'Zadejte svou emailovou adresu a znovu zašleme aktivační odkaz.',
resendButton: 'Odeslat email',
resend_cooldown: 'Odeslat znovu ({seconds}s)',
send_email: 'Odeslat email',
resendSuccess: 'Aktivační email byl odeslán! Zkontrolujte své složky (včetně Spamu).',
resendLink: 'Nedostali jste aktivační email?',
backToLogin: 'Zpět na přihlášení',
loginTitle: 'Přihlášení do garáže',
loginButton: 'Přihlásit se',
loginLoading: 'Prosím čekejte...',
forgotPassword: 'Zapomněli jste heslo?',
rememberMe: 'Zapamatovat si mě',
noAccount: 'Nemáte ještě garáž?',
registerLink: 'Registrovat',
registerTitle: 'Otevřít novou garáž',
registerButton: 'Registrovat',
haveAccount: 'Již máte garáž?',
loginLink: 'Přihlásit se',
forgotTitle: 'Požádat o nové heslo',
forgotDescription: 'Zadejte svou emailovou adresu a zašleme vám bezpečnostní odkaz.',
forgotSuccess: 'Odkaz pro obnovení byl odeslán na váš email!',
forgotSendButton: 'Odeslat odkaz',
inactiveMessage: 'Váš účet ještě není aktivován! Aktivujte jej pomocí odkazu v emailu nebo požádejte o nový aktivační email.',
resendActivationButton: 'Znovu odeslat aktivační email',
resendActivationSuccess: 'Aktivační email byl znovu odeslán!',
socialDivider: 'Nebo se přihlaste pomocí sociálního účtu',
loginFailed: 'Přihlášení selhalo. Zkontrolujte své přihlašovací údaje.',
registerFailed: 'Registrace selhala.',
resendFailed: 'Odeslání selhalo. Prosím zkuste to znovu později.',
forgotFailed: 'Při odesílání požadavku došlo k chybě. Prosím zkuste to znovu.',
},
}

83
frontend/src/i18n/de.ts Normal file
View File

@@ -0,0 +1,83 @@
export default {
menu: {
features: 'Funktionen',
garage: 'Fahrzeuge',
calendar: 'Servicekalender',
finance: 'Finanzen & Kosten',
diagnostic: 'Live-Diagnose',
addVehicle: '+ Neues Fahrzeug hinzufügen',
},
header: {
welcome: 'Willkommen',
userMenu: 'Benutzermenü',
profile: 'Profileinstellungen',
logout: 'Abmelden',
subtitle: 'Ihr Dashboard und Fahrzeugübersicht',
switchLanguage: 'Sprache wechseln',
},
dashboard: {
loading: 'Wird geladen...',
errorRetry: 'Wiederholen',
statusActive: 'Aktiv',
statusUnknown: 'Unbekannt',
condition: 'Zustand',
mileage: 'km',
// Bento Box layout
myVehicles: 'Meine Fahrzeuge',
vehicles: 'Fahrzeuge',
noVehicles: 'Noch keine Fahrzeuge. Füge dein erstes hinzu!',
activeProcesses: 'Aktive Prozesse / Benachrichtigungen',
noNotifications: 'Alles klar — keine Benachrichtigungen',
totalVehicles: 'Gesamtfahrzeuge',
addVehicle: '+ Fahrzeug hinzufügen',
refresh: 'Aktualisieren',
statsAndPoints: 'Statistiken & Punkte',
live: 'LIVE',
monthlyScore: 'Monatliche Punktzahl',
totalKm: 'Gesamtstrecke',
fuelCost: 'Kraftstoffkosten',
serviceCost: 'Servicekosten',
co2Savings: 'CO₂-Einsparungen',
achievements: 'Errungenschaften',
},
zen: {
hide: 'UI ausblenden (Zen-Modus)',
show: 'UI anzeigen',
},
auth: {
invalid_credentials: 'Ungültige E-Mail oder Passwort.',
user_inactive: 'Ihr Konto ist noch nicht aktiviert. Bitte bestätigen Sie Ihre E-Mail!',
forgotPasswordMessage: 'Die Passwort-Zurücksetzen-Funktion befindet sich in Entwicklung. Bitte kontaktieren Sie den Administrator!',
resendTitle: 'Aktivierungs-E-Mail erneut senden',
resendDescription: 'Geben Sie Ihre E-Mail-Adresse ein und wir senden den Aktivierungslink erneut.',
resendButton: 'E-Mail senden',
resend_cooldown: 'Erneut senden ({seconds}s)',
send_email: 'E-Mail senden',
resendSuccess: 'Die Aktivierungs-E-Mail wurde gesendet! Überprüfen Sie Ihre Ordner (auch Spam).',
resendLink: 'Haben Sie die Aktivierungs-E-Mail nicht erhalten?',
backToLogin: 'Zurück zum Login',
loginTitle: 'Anmelden zur Garage',
loginButton: 'Anmelden',
loginLoading: 'Bitte warten...',
forgotPassword: 'Passwort vergessen?',
rememberMe: 'Angemeldet bleiben',
noAccount: 'Noch keine Garage?',
registerLink: 'Registrieren',
registerTitle: 'Neue Garage eröffnen',
registerButton: 'Registrieren',
haveAccount: 'Bereits eine Garage?',
loginLink: 'Anmelden',
forgotTitle: 'Neues Passwort anfordern',
forgotDescription: 'Geben Sie Ihre E-Mail-Adresse ein und wir senden Ihnen einen Sicherheitslink.',
forgotSuccess: 'Der Zurücksetzungslink wurde an Ihre E-Mail gesendet!',
forgotSendButton: 'Link senden',
inactiveMessage: 'Ihr Konto ist noch nicht aktiviert! Bitte aktivieren Sie es mit dem Link in der E-Mail oder fordern Sie eine neue Aktivierungs-E-Mail an.',
resendActivationButton: 'Aktivierungs-E-Mail erneut senden',
resendActivationSuccess: 'Die Aktivierungs-E-Mail wurde erneut gesendet!',
socialDivider: 'Oder mit Social-Konto anmelden',
loginFailed: 'Anmeldung fehlgeschlagen. Bitte überprüfen Sie Ihre Anmeldedaten.',
registerFailed: 'Registrierung fehlgeschlagen.',
resendFailed: 'Erneutes Senden fehlgeschlagen. Bitte versuchen Sie es später erneut.',
forgotFailed: 'Beim Senden der Anfrage ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut.',
},
}

View File

@@ -1,4 +1,20 @@
export default {
landing: {
openGarage: 'Open Garage',
heroTitle: 'Digital Fleet',
heroTitleAccent: 'Management',
heroSubtitle: 'Real-time cost tracking, automatic notifications and gamified point system all in one place.',
cardStats: 'Statistics',
cardStatsLabel: 'Managed Vehicles',
cardStatsValue: '1,245+',
cardGamification: 'Gamification',
cardGamificationLabel: 'Monthly Score',
cardCosts: 'Costs',
cardCostsFuel: 'Fuel',
cardCostsService: 'Service',
cardCostsTotal: 'Total',
cardCostsUnit: 'HUF',
},
menu: {
features: 'Features',
garage: 'Vehicles',
@@ -14,6 +30,26 @@ export default {
logout: 'Logout',
subtitle: 'Your dashboard and vehicle overview',
switchLanguage: 'Switch language',
close: 'Close',
noCompanies: 'No companies yet',
newCompany: ' New Company',
myCompany: '🏢 My Company',
myCompanies: '🏢 My Companies',
personalGarage: '👤 Personal Garage',
privateGarage: '👤 Private Garage',
company: '🏢 Company',
companyGarage: 'My Company Garage',
companyGarageLabel: '{name}_garage',
companyGarageFallback: 'Company_garage',
personalGarageLabel: '{name}_garage',
personalGarageFallback: 'User_garage',
companyPrefix: 'Company',
user: 'User',
welcomeCard: 'Welcome, {name}!',
language: 'Language',
regionSettings: 'Region Settings',
regionDescription: 'Date, time & currency format',
dashboard: 'Dashboard',
},
dashboard: {
loading: 'Loading...',
@@ -22,6 +58,27 @@ export default {
statusUnknown: 'Unknown',
condition: 'Condition',
mileage: 'km',
subtitle: 'Your dashboard and vehicle overview',
guest: 'Guest',
// Bento Box layout
myVehicles: 'My Vehicles',
vehicles: 'vehicles',
noVehicles: 'No vehicles yet. Add your first one!',
activeProcesses: 'Active Processes / Notifications',
noNotifications: 'All clear — no notifications',
totalVehicles: 'Total Vehicles',
addVehicle: '+ Add Vehicle',
refresh: 'Refresh',
statsAndPoints: 'Statistics & Points',
live: 'LIVE',
monthlyScore: 'Monthly Score',
totalKm: 'Total Distance',
fuelCost: 'Fuel Cost',
serviceCost: 'Service Cost',
co2Savings: 'CO₂ Savings',
achievements: 'Achievements',
detailedView: 'Detailed View',
modalPlaceholder: 'Content for this section will be available soon.',
},
zen: {
hide: 'Hide UI (Zen mode)',
@@ -70,4 +127,230 @@ export default {
resendFailed: 'Resend failed. Please try again later.',
forgotFailed: 'An error occurred while sending the request. Please try again.',
},
profile: {
title: 'Profile Settings',
loading: 'Loading profile data...',
completion: 'Profile Completion',
accountInfo: 'Account Info',
email: 'Email',
phone: 'Phone Number',
edit: 'Edit',
cancel: 'Cancel',
save: 'Save',
changePassword: 'Change Password',
// Tabs
tabPersonal: 'Personal & Address',
tabDocs: 'Documents & Emergency',
// Personal data
personalData: 'Personal Data (KYC)',
lastName: 'Last Name',
firstName: 'First Name',
birthPlace: 'Place of Birth',
birthDate: 'Date of Birth',
mothersLastName: 'Mother\'s Last Name',
mothersFirstName: 'Mother\'s First Name',
// Address
addressTitle: 'Address Data',
zipCode: 'ZIP Code',
city: 'City',
street: 'Street',
streetType: 'Street Type',
houseNumber: 'House Number',
stairwell: 'Stairwell',
floor: 'Floor',
door: 'Door',
parcelId: 'Parcel ID',
hrsz: 'Parcel No.',
selectPlaceholder: 'Select...',
// Identity docs
identityDocs: 'Documents (Identity Docs)',
idCard: 'ID Card (ID_CARD)',
drivingLicense: 'Driving License (LICENSE)',
docNumber: 'Number',
docExpiry: 'Expiry',
categories: 'Categories',
number: 'Number:',
expiry: 'Expiry:',
categoriesLabel: 'Categories:',
// ICE contact
iceTitle: 'Emergency Contact (ICE)',
iceName: 'Name',
iceRelation: 'Relation',
icePhone: 'Phone Number',
iceEmail: 'Email Address',
iceNameLabel: 'Name:',
iceRelationLabel: 'Relation:',
icePhoneLabel: 'Phone:',
iceEmailLabel: 'Email:',
// Password modal
passwordTitle: 'Change Password',
currentPassword: 'Current Password',
newPassword: 'New Password',
confirmPassword: 'Confirm New Password',
passwordRequired: 'All fields are required.',
passwordMismatch: 'The new password and confirmation do not match.',
passwordMinLength: 'The new password must be at least 6 characters long.',
passwordChanged: 'Password successfully changed!',
passwordChangeFailed: 'Password change failed.',
// Save messages
saveSuccess: 'Profile data and documents updated successfully!',
saveError: 'An error occurred while saving.',
// Regional settings tab
tabRegional: 'Regional Settings',
regionalLanguage: 'Language',
regionalDateFormat: 'Date Format',
regionalCurrency: 'Currency',
dateFormatHU: 'YYYY. MM. DD.',
dateFormatISO: 'YYYY-MM-DD',
currencyHUF: 'HUF (Ft)',
currencyEUR: 'EUR (€)',
currencyUSD: 'USD ($)',
// Back
backToGarage: 'Back to Garage',
// Diagnostic
xray: '🩻 X-RAY: person (address_* fields)',
},
kyc: {
title: 'Garage Activation — Complete Your Account',
stepAddress: 'Address',
stepExtras: 'Extras',
// Step 1
addressTitle: '📍 Address Data',
addressDescription: 'ZIP code and city are required to activate your account.',
softKyc: '(Soft KYC)',
country: 'Country',
zipCode: 'ZIP Code',
city: 'City',
optionalAddress: '📝 Additional Address Details (optional)',
streetName: 'Street Name',
streetType: 'Type',
houseNumber: 'House Number',
// Step 2
extrasTitle: '🔧 Additional Data',
extrasDescription: 'You can provide these details later in your profile.',
extrasOptional: '(All optional)',
phoneNumber: '📞 Phone Number',
documentsTitle: '🪪 Document Details (optional)',
idCard: 'ID Card',
drivingLicense: 'Driving License',
docNumber: 'Document Number',
docExpiry: 'Expiry',
language: '🌐 Language',
currency: '💰 Currency',
// Navigation
back: 'Back',
next: 'Next',
submitting: 'Processing...',
submit: 'Activate Garage 🚀',
skip: 'Skip, I\'ll fill it in later in my profile →',
// Validation
zipRequired: 'Please enter the ZIP code.',
cityRequired: 'Please enter the city.',
addressRequired: 'Address is required to activate your garage.',
// Errors
submitError: 'Garage activation failed. Please try again.',
},
verifyEmail: {
verifying: 'Activating account...',
verifyingDesc: 'Please wait while we verify the confirmation link.',
success: 'Successful activation and login!',
successDesc: 'Your account is now active and you are automatically logged in.',
redirectCountdown: 'Redirecting in {seconds} seconds...',
redirectNow: 'Redirecting...',
goToProfile: 'Go to Profile',
checkEmail: '📧 Check your email inbox',
checkEmailDesc: 'We have sent you a confirmation email. Please <strong>check your inbox and spam folder</strong>.<br><br>If the email <strong>does not arrive within 10 minutes</strong>, you can request a new one by clicking the button below.',
emailLabel: 'Email Address',
emailPlaceholder: 'example@email.com',
resendButton: 'I didn\'t receive the email, resend it',
resending: 'Sending...',
resendSuccess: 'The new confirmation email has been sent!',
resendFailed: 'Resend failed. Please try again later.',
backToLogin: '← Back to Login',
tokenExpired: 'The link has expired or is invalid.',
},
company: {
// CompanyGarageView
garageTitle: 'Company Garage',
user: 'User',
// Dashboard cards
fleetTitle: 'Fleet Overview',
fleetVehicles: 'Managed vehicles: {count}',
fleetActive: 'Active',
fleetInactive: 'Inactive',
gamificationTitle: 'Gamification',
gamificationScore: 'Monthly Score: {score}',
quickActionsTitle: 'Quick Actions',
quickNewWaybill: 'New Waybill',
quickReportIssue: 'Report Issue',
// CompanyOnboardingView
onboardingTitle: 'Company Registration — 3 simple steps',
stepLegal: 'Company Data',
stepAddress: 'Address',
stepContact: 'Contact',
// Step 1
legalTitle: '⚖️ Legal Data',
legalDescription: 'Enter your company\'s tax number, then click <strong>Load Company Data</strong> for automatic filling.',
taxNumber: 'Tax Number',
taxLookup: 'Load Company Data',
taxLookupTitle: 'Load company data by tax number',
fullName: 'Full Company Name',
shortName: 'Short Name',
displayName: 'Display Name',
regNumber: 'Registration Number',
// Step 2
addressTitle: '📍 Address & Finance',
addressDescription: 'Company headquarters address and default financial settings.',
country: 'Country',
language: 'Language',
currency: 'Currency',
zipCode: 'ZIP Code',
city: 'City',
streetName: 'Street Name',
streetType: 'Type',
houseNumber: 'House Number',
stairwell: 'Stairwell',
floor: 'Floor',
door: 'Door',
parcelId: 'Parcel ID',
// Step 3
contactTitle: '📞 Contact',
contactDescription: 'Primary contact details (the logged-in user) cannot be modified.',
contactName: 'Contact Name',
contactEmail: 'Email Address',
contactPhone: 'Phone Number',
// Navigation
cancel: 'Cancel',
back: 'Back',
next: 'Next',
submitting: 'Creating...',
submit: 'Create Company 🚀',
// Validation
taxRequired: 'Please enter the tax number.',
fullNameRequired: 'Please enter the full company name.',
shortNameRequired: 'Please enter the short name.',
displayNameRequired: 'Please enter the display name.',
regNumberRequired: 'Please enter the registration number.',
zipRequired: 'Please enter the ZIP code.',
cityRequired: 'Please enter the city.',
emailRequired: 'Please enter the primary email address.',
phoneRequired: 'Please enter the primary phone number.',
// Errors
lookupError: 'Failed to load company data. Please check the tax number.',
duplicateCompany: 'This company is already registered in the system.',
submitError: 'Company creation failed. Please try again.',
// Success
successMessage: 'Company created successfully! Redirecting to garage...',
},
organization: {
backToPrivate: '⬅️ Back to Private Garage',
fallbackName: 'Company Garage',
},
address: {
stairwell: 'Stairwell: {value}',
floor: 'Floor: {value}',
door: 'Door: {value}',
hrsz: 'Parcel No.: {value}',
placeholder: '—',
},
}

View File

@@ -1,4 +1,20 @@
export default {
landing: {
openGarage: 'Garázs Nyitása',
heroTitle: 'Digitális Flotta',
heroTitleAccent: 'Menedzsment',
heroSubtitle: 'Valós idejű költségkövetés, automatikus értesítések és gamifikált pontrendszer minden egy helyen.',
cardStats: 'Statisztika',
cardStatsLabel: 'Kezelt járművek',
cardStatsValue: '1,245+',
cardGamification: 'Gamifikáció',
cardGamificationLabel: 'Havi Pontszám',
cardCosts: 'Költségek',
cardCostsFuel: 'Üzemanyag',
cardCostsService: 'Szerviz',
cardCostsTotal: 'Összesen',
cardCostsUnit: 'Ft',
},
menu: {
features: 'Funkciók',
garage: 'Járművek',
@@ -14,6 +30,26 @@ export default {
logout: 'Kilépés',
subtitle: 'Irányítópultod és járműveid áttekintése',
switchLanguage: 'Nyelv váltása',
close: 'Bezárás',
noCompanies: 'Még nincs céged',
newCompany: ' Új cég',
myCompany: '🏢 Cégem',
myCompanies: '🏢 Cégeim',
personalGarage: '👤 Személyes Garázs',
privateGarage: '👤 Privát garázs',
company: '🏢 Cég',
companyGarage: 'Cégem garázs',
companyGarageLabel: '{name}_garázsa',
companyGarageFallback: 'Cég_garázsa',
personalGarageLabel: '{name}_garázsa',
personalGarageFallback: 'Felhasználó_garázsa',
companyPrefix: 'Cég',
user: 'Felhasználó',
welcomeCard: 'Üdvözlünk, {name}!',
language: 'Nyelv',
regionSettings: 'Területi beállítások',
regionDescription: 'Dátum, idő és pénznem formátum',
dashboard: 'Irányítópult',
},
dashboard: {
loading: 'Betöltés...',
@@ -22,6 +58,27 @@ export default {
statusUnknown: 'Ismeretlen',
condition: 'Állapot',
mileage: 'km',
subtitle: 'Irányítópultod és járműveid áttekintése',
guest: 'Vendég',
// Bento Box layout
myVehicles: 'Saját Járművek',
vehicles: 'jármű',
noVehicles: 'Még nincsenek járművek. Add hozzá az elsőt!',
activeProcesses: 'Aktív Folyamatok / Értesítések',
noNotifications: 'Minden rendben — nincs értesítés',
totalVehicles: 'Összes Jármű',
addVehicle: '+ Jármű Hozzáadása',
refresh: 'Frissítés',
statsAndPoints: 'Statisztika és Pontok',
live: 'ÉLŐ',
monthlyScore: 'Havi Pontszám',
totalKm: 'Teljes Táv',
fuelCost: 'Üzemanyag Költség',
serviceCost: 'Szerviz Költség',
co2Savings: 'CO₂ Megtakarítás',
achievements: 'Eredmények',
detailedView: 'Részletes Nézet',
modalPlaceholder: 'A szekció tartalma hamarosan elérhető lesz.',
},
zen: {
hide: 'UI elrejtése (Zen mód)',
@@ -70,4 +127,230 @@ export default {
resendFailed: 'Az újraküldés sikertelen. Kérlek próbáld újra később.',
forgotFailed: 'Hiba történt a kérelem elküldésekor. Kérlek próbáld újra.',
},
profile: {
title: 'Profil beállítások',
loading: 'Profil adatok betöltése...',
completion: 'Profil kitöltöttsége',
accountInfo: 'Fiók adatok',
email: 'Email',
phone: 'Telefonszám',
edit: 'Szerkesztés',
cancel: 'Mégse',
save: 'Mentés',
changePassword: 'Jelszó módosítása',
// Tabs
tabPersonal: 'Személyes és Lakcím',
tabDocs: 'Okmányok és Vészhelyzet',
// Personal data
personalData: 'Személyes adatok (KYC)',
lastName: 'Vezetéknév',
firstName: 'Keresztnév',
birthPlace: 'Születési hely',
birthDate: 'Születési dátum',
mothersLastName: 'Anyja vezetékneve',
mothersFirstName: 'Anyja keresztneve',
// Address
addressTitle: 'Lakcím adatok',
zipCode: 'Irányítószám',
city: 'Város',
street: 'Utca',
streetType: 'Közterület jellege',
houseNumber: 'Házszám',
stairwell: 'Lépcsőház',
floor: 'Emelet',
door: 'Ajtó',
parcelId: 'Helyrajzi szám',
hrsz: 'Hrsz.',
selectPlaceholder: 'Válassz...',
// Identity docs
identityDocs: 'Okmányok (Identity Docs)',
idCard: 'Személyi Igazolvány (ID_CARD)',
drivingLicense: 'Jogosítvány (LICENSE)',
docNumber: 'Szám',
docExpiry: 'Lejárat',
categories: 'Kategóriák',
number: 'Szám:',
expiry: 'Lejárat:',
categoriesLabel: 'Kategóriák:',
// ICE contact
iceTitle: 'Vészhelyzeti Kapcsolattartó (ICE)',
iceName: 'Név',
iceRelation: 'Viszony',
icePhone: 'Telefonszám',
iceEmail: 'E-mail cím',
iceNameLabel: 'Név:',
iceRelationLabel: 'Viszony:',
icePhoneLabel: 'Telefonszám:',
iceEmailLabel: 'E-mail:',
// Password modal
passwordTitle: 'Jelszó módosítása',
currentPassword: 'Jelenlegi jelszó',
newPassword: 'Új jelszó',
confirmPassword: 'Új jelszó újra',
passwordRequired: 'Minden mező kitöltése kötelező.',
passwordMismatch: 'Az új jelszó és a megerősítés nem egyezik.',
passwordMinLength: 'Az új jelszónak legalább 6 karakter hosszúnak kell lennie.',
passwordChanged: 'Jelszó sikeresen megváltoztatva!',
passwordChangeFailed: 'A jelszó módosítása sikertelen.',
// Save messages
saveSuccess: 'A profil adatok és okmányok sikeresen frissítve!',
saveError: 'Hiba történt a mentés során.',
// Regional settings tab
tabRegional: 'Területi beállítások',
regionalLanguage: 'Nyelv',
regionalDateFormat: 'Dátum formátum',
regionalCurrency: 'Pénznem',
dateFormatHU: 'ÉÉÉÉ. HH. NN.',
dateFormatISO: 'ÉÉÉÉ-HH-NN',
currencyHUF: 'HUF (Ft)',
currencyEUR: 'EUR (€)',
currencyUSD: 'USD ($)',
// Back
backToGarage: 'Vissza a Garázsba',
// Diagnostic
xray: '🩻 RÖNTGEN: person (address_* fields)',
},
kyc: {
title: 'Garázs Aktiválás — Fiók kiegészítése',
stepAddress: 'Lakcím',
stepExtras: 'Kiegészítő',
// Step 1
addressTitle: '📍 Lakcím adatok',
addressDescription: 'Az irányítószám és város kötelező a fiókod aktiválásához.',
softKyc: '(Soft KYC)',
country: 'Ország',
zipCode: 'Irányítószám',
city: 'Város',
optionalAddress: '📝 További címrészletek (opcionális)',
streetName: 'Utca neve',
streetType: 'Típus',
houseNumber: 'Házszám',
// Step 2
extrasTitle: '🔧 Kiegészítő adatok',
extrasDescription: 'Ezeket az adatokat később is megadhatod a profilodban.',
extrasOptional: '(Mind opcionális)',
phoneNumber: '📞 Telefonszám',
documentsTitle: '🪪 Okmányok adatai (opcionális)',
idCard: 'Személyi igazolvány',
drivingLicense: 'Jogosítvány',
docNumber: 'Okmány száma',
docExpiry: 'Lejárat',
language: '🌐 Nyelv',
currency: '💰 Pénznem',
// Navigation
back: 'Vissza',
next: 'Tovább',
submitting: 'Feldolgozás...',
submit: 'Garázs Aktiválása 🚀',
skip: 'Kihagyom, kitöltöm később a profilban →',
// Validation
zipRequired: 'Kérlek add meg az irányítószámot.',
cityRequired: 'Kérlek add meg a várost.',
addressRequired: 'A lakcím megadása kötelező a garázs aktiválásához.',
// Errors
submitError: 'A garázs aktiválása sikertelen. Kérlek próbáld újra.',
},
verifyEmail: {
verifying: 'Fiók aktiválása...',
verifyingDesc: 'Kérlek várj, amíg ellenőrizzük a megerősítő linket.',
success: 'Sikeres aktiválás és bejelentkezés!',
successDesc: 'A fiókod aktív lett, és automatikusan be vagy jelentkezve.',
redirectCountdown: 'Átirányítás {seconds} másodperc múlva...',
redirectNow: 'Átirányítás...',
goToProfile: 'Tovább a Profilhoz',
checkEmail: '📧 Ellenőrizd az e-mail postafiókodat',
checkEmailDesc: 'Küldtünk neked egy megerősítő e-mailt. Kérlek, <strong>ellenőrizd a beérkező leveleidet és a spam mappát is</strong>.<br><br>Ha <strong>10 percen belül nem érkezik meg</strong> a levél, kérhetsz újat az alábbi gombra kattintva.',
emailLabel: 'E-mail cím',
emailPlaceholder: 'pelda@email.com',
resendButton: 'Nem kaptam meg az e-mailt, küldjétek újra',
resending: 'Küldés...',
resendSuccess: 'Az új megerősítő e-mail elküldésre került!',
resendFailed: 'Az újraküldés sikertelen. Kérlek próbáld újra később.',
backToLogin: '← Vissza a bejelentkezéshez',
tokenExpired: 'A link lejárt vagy érvénytelen.',
},
company: {
// CompanyGarageView
garageTitle: 'Céges garázs',
user: 'Felhasználó',
// Dashboard cards
fleetTitle: 'Flotta áttekintés',
fleetVehicles: 'Kezelt járművek: {count}',
fleetActive: 'Aktív',
fleetInactive: 'Inaktív',
gamificationTitle: 'Gamifikáció',
gamificationScore: 'Havi Pontszám: {score}',
quickActionsTitle: 'Gyorsműveletek',
quickNewWaybill: 'Új menetlevél',
quickReportIssue: 'Hiba bejelentése',
// CompanyOnboardingView
onboardingTitle: 'Cég Regisztráció — 3 egyszerű lépésben',
stepLegal: 'Cégadatok',
stepAddress: 'Székhely',
stepContact: 'Kapcsolat',
// Step 1
legalTitle: '⚖️ Jogi adatok',
legalDescription: 'Add meg a céged adószámát, majd kattints a <strong>Cégadatok betöltése</strong> gombra az automatikus kitöltéshez.',
taxNumber: 'Adószám',
taxLookup: 'Cégadatok betöltése',
taxLookupTitle: 'Cégadatok betöltése adószám alapján',
fullName: 'Teljes cégnév',
shortName: 'Rövid név',
displayName: 'Megjelenítendő név',
regNumber: 'Cégjegyzékszám',
// Step 2
addressTitle: '📍 Székhely és pénzügy',
addressDescription: 'A cég székhelyének címe és az alapértelmezett pénzügyi beállítások.',
country: 'Ország',
language: 'Nyelv',
currency: 'Pénznem',
zipCode: 'Irányítószám',
city: 'Város',
streetName: 'Utca neve',
streetType: 'Típus',
houseNumber: 'Házszám',
stairwell: 'Lépcsőház',
floor: 'Emelet',
door: 'Ajtó',
parcelId: 'Helyrajzi szám',
// Step 3
contactTitle: '📞 Kapcsolat',
contactDescription: 'Az elsődleges kapcsolattartó adatai (a bejelentkezett felhasználó) nem módosíthatók.',
contactName: 'Kapcsolattartó neve',
contactEmail: 'E-mail cím',
contactPhone: 'Telefonszám',
// Navigation
cancel: 'Mégsem',
back: 'Vissza',
next: 'Tovább',
submitting: 'Létrehozás...',
submit: 'Cég Létrehozása 🚀',
// Validation
taxRequired: 'Kérlek add meg az adószámot.',
fullNameRequired: 'Kérlek add meg a teljes cégnév.',
shortNameRequired: 'Kérlek add meg a rövid nevet.',
displayNameRequired: 'Kérlek add meg a megjelenítendő nevet.',
regNumberRequired: 'Kérlek add meg a cégjegyzékszámot.',
zipRequired: 'Kérlek add meg az irányítószámot.',
cityRequired: 'Kérlek add meg a várost.',
emailRequired: 'Kérlek add meg az elsődleges e-mail címet.',
phoneRequired: 'Kérlek add meg az elsődleges telefonszámot.',
// Errors
lookupError: 'Nem sikerült betölteni a cégadatokat. Kérlek ellenőrizd az adószámot.',
duplicateCompany: 'Ez a cég már regisztrálva van a rendszerben.',
submitError: 'A cég létrehozása sikertelen. Kérlek próbáld újra.',
// Success
successMessage: 'A cég sikeresen létrejött! Átirányítás a garázsba...',
},
organization: {
backToPrivate: '⬅️ Vissza a Privát Garázsba',
fallbackName: 'Céges Garázs',
},
address: {
stairwell: 'Lépcsőház: {value}',
floor: 'Emelet: {value}',
door: 'Ajtó: {value}',
hrsz: 'Hrsz.: {value}',
placeholder: '—',
},
}

83
frontend/src/i18n/ro.ts Normal file
View File

@@ -0,0 +1,83 @@
export default {
menu: {
features: 'Funcționalități',
garage: 'Vehicule',
calendar: 'Calendar Service',
finance: 'Finanțe & Costuri',
diagnostic: 'Diagnosticare Live',
addVehicle: '+ Adăugați Vehicul Nou',
},
header: {
welcome: 'Bun venit',
userMenu: 'Meniul utilizatorului',
profile: 'Setări Profil',
logout: 'Deconectare',
subtitle: 'Tabloul de bord și prezentarea vehiculelor',
switchLanguage: 'Schimbă limba',
},
dashboard: {
loading: 'Se încarcă...',
errorRetry: 'Reîncercare',
statusActive: 'Activ',
statusUnknown: 'Necunoscut',
condition: 'Stare',
mileage: 'km',
// Bento Box layout
myVehicles: 'Vehiculele Mele',
vehicles: 'vehicule',
noVehicles: 'Încă nu aveți vehicule. Adăugați primul!',
activeProcesses: 'Procese Active / Notificări',
noNotifications: 'Totul în regulă — nicio notificare',
totalVehicles: 'Total Vehicule',
addVehicle: '+ Adăugați Vehicul',
refresh: 'Reîmprospătare',
statsAndPoints: 'Statistici & Puncte',
live: 'LIVE',
monthlyScore: 'Scor Lunar',
totalKm: 'Distanță Totală',
fuelCost: 'Cost Combustibil',
serviceCost: 'Cost Service',
co2Savings: 'Economii CO₂',
achievements: 'Realizări',
},
zen: {
hide: 'Ascunde UI (Mod Zen)',
show: 'Arată UI',
},
auth: {
invalid_credentials: 'Email sau parolă invalidă.',
user_inactive: 'Contul dumneavoastră nu este încă activat. Vă rugăm să verificați emailul!',
forgotPasswordMessage: 'Funcția de resetare a parolei este în dezvoltare. Vă rugăm să contactați administratorul!',
resendTitle: 'Retrimiteți Emailul de Activare',
resendDescription: 'Introduceți adresa de email și vom retrimite linkul de activare.',
resendButton: 'Trimiteți Email',
resend_cooldown: 'Retrimiteți ({seconds}s)',
send_email: 'Trimiteți Email',
resendSuccess: 'Emailul de activare a fost trimis! Verificați dosarele (inclusiv Spam).',
resendLink: 'Nu ați primit emailul de activare?',
backToLogin: 'Înapoi la Autentificare',
loginTitle: 'Autentificare în Garaj',
loginButton: 'Autentificare',
loginLoading: 'Vă rugăm așteptați...',
forgotPassword: 'Ați uitat parola?',
rememberMe: 'Ține-mă minte',
noAccount: 'Nu aveți încă un garaj?',
registerLink: 'Înregistrare',
registerTitle: 'Deschideți un Garaj Nou',
registerButton: 'Înregistrare',
haveAccount: 'Aveți deja un garaj?',
loginLink: 'Autentificare',
forgotTitle: 'Solicitați o Parolă Nouă',
forgotDescription: 'Introduceți adresa de email și vă vom trimite un link de securitate.',
forgotSuccess: 'Linkul de resetare a fost trimis pe email!',
forgotSendButton: 'Trimiteți Linkul',
inactiveMessage: 'Contul dumneavoastră nu este încă activat! Activați-l folosind linkul din email sau solicitați un nou email de activare.',
resendActivationButton: 'Retrimiteți Emailul de Activare',
resendActivationSuccess: 'Emailul de activare a fost retrimis!',
socialDivider: 'Sau autentificați-vă cu un cont Social',
loginFailed: 'Autentificare eșuată. Verificați datele de autentificare.',
registerFailed: 'Înregistrare eșuată.',
resendFailed: 'Retrimiterea a eșuat. Vă rugăm încercați din nou mai târziu.',
forgotFailed: 'A apărut o eroare la trimiterea cererii. Vă rugăm încercați din nou.',
},
}

83
frontend/src/i18n/sk.ts Normal file
View File

@@ -0,0 +1,83 @@
export default {
menu: {
features: 'Funkcie',
garage: 'Vozidlá',
calendar: 'Servisný kalendár',
finance: 'Financie & Náklady',
diagnostic: 'Živá diagnostika',
addVehicle: '+ Pridať nové vozidlo',
},
header: {
welcome: 'Vitajte',
userMenu: 'Používateľské menu',
profile: 'Nastavenia profilu',
logout: 'Odhlásiť sa',
subtitle: 'Váš dashboard a prehľad vozidiel',
switchLanguage: 'Prepnúť jazyk',
},
dashboard: {
loading: 'Načítava sa...',
errorRetry: 'Opakovať',
statusActive: 'Aktívny',
statusUnknown: 'Neznámy',
condition: 'Stav',
mileage: 'km',
// Bento Box layout
myVehicles: 'Moje Vozidlá',
vehicles: 'vozidiel',
noVehicles: 'Zatiaľ žiadne vozidlá. Pridajte svoje prvé!',
activeProcesses: 'Aktívne Procesy / Notifikácie',
noNotifications: 'Všetko v poriadku — žiadne notifikácie',
totalVehicles: 'Celkový Počet Vozidiel',
addVehicle: '+ Pridať Vozidlo',
refresh: 'Obnoviť',
statsAndPoints: 'Štatistiky & Body',
live: 'ŽIVĚ',
monthlyScore: 'Mesačné Skóre',
totalKm: 'Celková Vzdialenosť',
fuelCost: 'Náklady na Palivo',
serviceCost: 'Náklady na Servis',
co2Savings: 'Úspora CO₂',
achievements: 'Úspechy',
},
zen: {
hide: 'Skryť UI (Zen režim)',
show: 'Zobraziť UI',
},
auth: {
invalid_credentials: 'Neplatný email alebo heslo.',
user_inactive: 'Váš účet ešte nie je aktivovaný. Prosím overte svoj email!',
forgotPasswordMessage: 'Funkcia obnovenia hesla je vo vývoji. Prosím kontaktujte administrátora!',
resendTitle: 'Znova odoslať aktivačný email',
resendDescription: 'Zadajte svoju emailovú adresu a znova pošleme aktivačný odkaz.',
resendButton: 'Odoslať email',
resend_cooldown: 'Odoslať znova ({seconds}s)',
send_email: 'Odoslať email',
resendSuccess: 'Aktivačný email bol odoslaný! Skontrolujte svoje priečinky (vrátane Spamu).',
resendLink: 'Nedostali ste aktivačný email?',
backToLogin: 'Späť na prihlásenie',
loginTitle: 'Prihlásenie do garáže',
loginButton: 'Prihlásiť sa',
loginLoading: 'Prosím čakajte...',
forgotPassword: 'Zabudli ste heslo?',
rememberMe: 'Zapamätať si ma',
noAccount: 'Ešte nemáte garáž?',
registerLink: 'Registrovať',
registerTitle: 'Otvoriť novú garáž',
registerButton: 'Registrovať',
haveAccount: 'Už máte garáž?',
loginLink: 'Prihlásiť sa',
forgotTitle: 'Požiadať o nové heslo',
forgotDescription: 'Zadajte svoju emailovú adresu a pošleme vám bezpečnostný odkaz.',
forgotSuccess: 'Odkaz na obnovenie bol odoslaný na váš email!',
forgotSendButton: 'Odoslať odkaz',
inactiveMessage: 'Váš účet ešte nie je aktivovaný! Aktivujte ho pomocou odkazu v emaile alebo požiadajte o nový aktivačný email.',
resendActivationButton: 'Znova odoslať aktivačný email',
resendActivationSuccess: 'Aktivačný email bol znovu odoslaný!',
socialDivider: 'Alebo sa prihláste pomocou sociálneho účtu',
loginFailed: 'Prihlásenie zlyhalo. Skontrolujte svoje prihlasovacie údaje.',
registerFailed: 'Registrácia zlyhala.',
resendFailed: 'Odoslanie zlyhalo. Prosím skúste to znova neskôr.',
forgotFailed: 'Pri odosielaní požiadavky došlo k chybe. Prosím skúste to znova.',
},
}