mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-06-24 15:51:46 +00:00
ebbbf91d60
When the backend or identity provider was unreachable, a returning user with a persisted session landed on the dashboard with an empty trip grid and no error. That looks identical to a logged-in user who simply has no trips, so people assumed their data had been lost. Three client-side layers were quietly swallowing the failure: the auth check only cleared state on a 401, so a 5xx or a network error left the stale session in place and kept rendering the protected route; the offline-first trip repo turned a failed fetch into the empty cache without throwing; and the dashboard had neither an error nor an empty state, so a blank grid meant both "outage" and "no trips". The auth check now tells genuine offline (keep serving the cache silently, the PWA happy path) apart from a server outage while online (keep the session but flag it). The dashboard shows a reassuring "couldn't reach the server, your trips are safe" banner with a retry, and a real zero-trip account finally gets a proper empty state so the two cases never look alike. New strings added across all locales.
168 lines
8.6 KiB
TypeScript
168 lines
8.6 KiB
TypeScript
import type { TranslationStrings } from '../types';
|
||
|
||
const dashboard: TranslationStrings = {
|
||
'dashboard.title': 'Utazásaim',
|
||
'dashboard.subtitle.loading': 'Utazások betöltése...',
|
||
'dashboard.subtitle.trips': '{count} utazás ({archived} archivált)',
|
||
'dashboard.subtitle.empty': 'Indítsd el az első utazásodat',
|
||
'dashboard.subtitle.activeOne': '{count} aktív utazás',
|
||
'dashboard.subtitle.activeMany': '{count} aktív utazás',
|
||
'dashboard.subtitle.archivedSuffix': ' · {count} archivált',
|
||
'dashboard.newTrip': 'Új utazás',
|
||
'dashboard.newTripSub': 'Tervezz egy új utazást a nulláról',
|
||
'dashboard.gridView': 'Rácsnézet',
|
||
'dashboard.listView': 'Listanézet',
|
||
'dashboard.currency': 'Pénznem',
|
||
'dashboard.timezone': 'Időzónák',
|
||
'dashboard.localTime': 'Helyi',
|
||
'dashboard.timezoneCustomTitle': 'Egyéni időzóna',
|
||
'dashboard.timezoneCustomLabelPlaceholder': 'Címke (opcionális)',
|
||
'dashboard.timezoneCustomTzPlaceholder': 'pl. America/New_York',
|
||
'dashboard.timezoneCustomAdd': 'Hozzáadás',
|
||
'dashboard.timezoneCustomErrorEmpty': 'Adj meg egy időzóna-azonosítót',
|
||
'dashboard.timezoneCustomErrorInvalid': 'Érvénytelen időzóna. Használj Europe/Berlin formátumot',
|
||
'dashboard.timezoneCustomErrorDuplicate': 'Már hozzáadva',
|
||
'dashboard.emptyTitle': 'Még nincsenek utazások',
|
||
'dashboard.emptyText':
|
||
'Hozd létre az első utazásodat, és kezdj el tervezni helyeket, napi programokat és csomagolási listákat.',
|
||
'dashboard.emptyButton': 'Első utazás létrehozása',
|
||
'dashboard.nextTrip': 'Következő utazás',
|
||
'dashboard.shared': 'Megosztott',
|
||
'dashboard.sharedBy': 'Megosztotta: {name}',
|
||
'dashboard.days': 'nap',
|
||
'dashboard.places': 'hely',
|
||
'dashboard.members': 'Útitársak',
|
||
'dashboard.archive': 'Archiválás',
|
||
'dashboard.copyTrip': 'Másolás',
|
||
'dashboard.copySuffix': 'másolat',
|
||
'dashboard.restore': 'Visszaállítás',
|
||
'dashboard.archived': 'Archivált',
|
||
'dashboard.status.ongoing': 'Folyamatban',
|
||
'dashboard.status.today': 'Ma',
|
||
'dashboard.status.tomorrow': 'Holnap',
|
||
'dashboard.status.past': 'Múlt',
|
||
'dashboard.status.daysLeft': 'Még {count} nap',
|
||
'dashboard.toast.loadError': 'Nem sikerült betölteni az utazásokat',
|
||
'dashboard.loadErrorBanner': 'Nem sikerült elérni a kiszolgálót. Az utazásaid biztonságban vannak — kérlek, próbáld újra.',
|
||
'dashboard.retry': 'Újra',
|
||
'dashboard.toast.created': 'Utazás sikeresen létrehozva!',
|
||
'dashboard.toast.createError': 'Nem sikerült létrehozni',
|
||
'dashboard.toast.updated': 'Utazás frissítve!',
|
||
'dashboard.toast.updateError': 'Nem sikerült frissíteni',
|
||
'dashboard.toast.deleted': 'Utazás törölve',
|
||
'dashboard.toast.deleteError': 'Nem sikerült törölni',
|
||
'dashboard.toast.archived': 'Utazás archiválva',
|
||
'dashboard.toast.archiveError': 'Nem sikerült archiválni',
|
||
'dashboard.toast.restored': 'Utazás visszaállítva',
|
||
'dashboard.toast.restoreError': 'Nem sikerült visszaállítani',
|
||
'dashboard.toast.copied': 'Utazás másolva!',
|
||
'dashboard.toast.copyError': 'Nem sikerült másolni az utazást',
|
||
'dashboard.confirm.delete': '"{title}" utazás törlése? Minden hely és terv véglegesen törlődik.',
|
||
'dashboard.editTrip': 'Utazás szerkesztése',
|
||
'dashboard.createTrip': 'Új utazás létrehozása',
|
||
'dashboard.tripTitle': 'Cím',
|
||
'dashboard.tripTitlePlaceholder': 'pl. Nyár Japánban',
|
||
'dashboard.tripDescription': 'Leírás',
|
||
'dashboard.tripDescriptionPlaceholder': 'Miről szól ez az utazás?',
|
||
'dashboard.startDate': 'Kezdő dátum',
|
||
'dashboard.endDate': 'Záró dátum',
|
||
'dashboard.dayCount': 'Napok száma',
|
||
'dashboard.dayCountHint': 'Hány napot tervezzen, ha nincsenek utazási dátumok megadva.',
|
||
'dashboard.noDateHint': 'Nincs dátum megadva — 7 alapértelmezett nap jön létre. Ezt bármikor módosíthatod.',
|
||
'dashboard.coverImage': 'Borítókép',
|
||
'dashboard.addCoverImage': 'Borítókép hozzáadása',
|
||
'dashboard.addMembers': 'Útitársak',
|
||
'dashboard.addMember': 'Tag hozzáadása',
|
||
'dashboard.coverSaved': 'Borítókép mentve',
|
||
'dashboard.coverUploadError': 'Feltöltés sikertelen',
|
||
'dashboard.coverRemoveError': 'Eltávolítás sikertelen',
|
||
'dashboard.titleRequired': 'A cím megadása kötelező',
|
||
'dashboard.endDateError': 'A záró dátumnak a kezdő dátum után kell lennie',
|
||
'dashboard.greeting.morning': 'Jó reggelt,',
|
||
'dashboard.greeting.afternoon': 'Jó napot,',
|
||
'dashboard.greeting.evening': 'Jó estét,',
|
||
'dashboard.mobile.liveNow': 'Most élőben',
|
||
'dashboard.mobile.tripProgress': 'Út előrehaladása',
|
||
'dashboard.mobile.daysLeft': 'még {count} nap',
|
||
'dashboard.mobile.places': 'Helyszínek',
|
||
'dashboard.mobile.buddies': 'Útitársak',
|
||
'dashboard.mobile.newTrip': 'Új út',
|
||
'dashboard.mobile.currency': 'Pénznem',
|
||
'dashboard.mobile.timezone': 'Időzóna',
|
||
'dashboard.mobile.upcomingTrips': 'Közelgő utak',
|
||
'dashboard.mobile.yourTrips': 'Utaid',
|
||
'dashboard.mobile.trips': 'út',
|
||
'dashboard.mobile.starts': 'Kezdés',
|
||
'dashboard.mobile.duration': 'Időtartam',
|
||
'dashboard.mobile.day': 'nap',
|
||
'dashboard.mobile.days': 'nap',
|
||
'dashboard.mobile.ongoing': 'Folyamatban',
|
||
'dashboard.mobile.startsToday': 'Ma kezdődik',
|
||
'dashboard.mobile.tomorrow': 'Holnap',
|
||
'dashboard.mobile.inDays': '{count} nap múlva',
|
||
'dashboard.mobile.inMonths': '{count} hónap múlva',
|
||
'dashboard.mobile.completed': 'Befejezett',
|
||
'dashboard.mobile.currencyConverter': 'Pénznemváltó',
|
||
'dashboard.filter.planned': 'Tervezett',
|
||
'dashboard.hero.badgeLive': 'MOST ÉLŐBEN',
|
||
'dashboard.hero.badgeToday': 'MA KEZDŐDIK',
|
||
'dashboard.hero.badgeTomorrow': 'HOLNAP',
|
||
'dashboard.hero.badgeNext': 'KÖVETKEZŐ',
|
||
'dashboard.hero.badgeRecent': 'LEGUTÓBBI',
|
||
'dashboard.hero.tripDates': 'Utazás dátumai',
|
||
'dashboard.hero.noDates': 'Nincs dátum megadva',
|
||
'dashboard.hero.travelerOne': '{count} utazó',
|
||
'dashboard.hero.travelerMany': '{count} utazó',
|
||
'dashboard.hero.destinationOne': '{count} úti cél',
|
||
'dashboard.hero.destinationMany': '{count} úti cél',
|
||
'dashboard.hero.dayUnitOne': 'nap',
|
||
'dashboard.hero.dayUnitMany': 'nap',
|
||
'dashboard.hero.dayLeft': 'nap van hátra',
|
||
'dashboard.hero.daysLeft': 'nap van hátra',
|
||
'dashboard.hero.lastDay': 'Utolsó nap',
|
||
'dashboard.hero.untilStart': 'Indulásig',
|
||
'dashboard.hero.startsIn': 'Indulásig',
|
||
'dashboard.atlas.countriesVisited': 'Atlas · Meglátogatott országok',
|
||
'dashboard.atlas.ofTotal': '/ {total}',
|
||
'dashboard.atlas.tripsTotal': 'Utazások összesen',
|
||
'dashboard.atlas.placesMapped': '{count} hely a térképen',
|
||
'dashboard.atlas.daysTraveled': 'Utazási napok',
|
||
'dashboard.atlas.daysUnit': 'nap',
|
||
'dashboard.atlas.acrossAllTrips': 'az összes utazásban',
|
||
'dashboard.atlas.distanceFlown': 'Megtett távolság',
|
||
'dashboard.atlas.kmUnit': 'km',
|
||
'dashboard.atlas.aroundEquator': '≈ {count}× az Egyenlítő körül',
|
||
'dashboard.card.idea': 'Ötlet',
|
||
'dashboard.card.buddyOne': 'Útitárs',
|
||
'dashboard.fx.from': 'Erről',
|
||
'dashboard.fx.to': 'Erre',
|
||
'dashboard.fx.unavailable': 'Árfolyam nem elérhető',
|
||
'dashboard.tz.searchPlaceholder': 'Időzóna keresése…',
|
||
'dashboard.tz.empty': 'Még nincs több időzóna — adj hozzá egyet a + gombbal',
|
||
'dashboard.upcoming.title': 'Közelgő foglalások',
|
||
'dashboard.upcoming.empty': 'Még nincs semmi lefoglalva.',
|
||
'dashboard.confirm.copy.title': 'Másolja ezt az utazást?',
|
||
'dashboard.confirm.copy.willCopy': 'Másolásra kerül',
|
||
'dashboard.confirm.copy.will1': 'Napok, helyek és napi hozzárendelések',
|
||
'dashboard.confirm.copy.will2': 'Szállások és foglalások',
|
||
'dashboard.confirm.copy.will3': 'Költségtételek és kategóriasorrend',
|
||
'dashboard.confirm.copy.will4': 'Csomaglisták (kipipálatlan)',
|
||
'dashboard.confirm.copy.will5': 'Teendők (hozzárendelés és pipa nélkül)',
|
||
'dashboard.confirm.copy.will6': 'Napi jegyzetek',
|
||
'dashboard.confirm.copy.wontCopy': 'Nem kerül másolásra',
|
||
'dashboard.confirm.copy.wont1': 'Közreműködők és tag-hozzárendelések',
|
||
'dashboard.confirm.copy.wont2': 'Közös jegyzetek, szavazások és üzenetek',
|
||
'dashboard.confirm.copy.wont3': 'Fájlok és fotók',
|
||
'dashboard.confirm.copy.wont4': 'Megosztási tokenek',
|
||
'dashboard.confirm.copy.confirm': 'Utazás másolása',
|
||
'dashboard.aria.toggleView': 'Nézet váltása',
|
||
'dashboard.aria.filter': 'Szűrő',
|
||
'dashboard.aria.duplicate': 'Duplikálás',
|
||
'dashboard.aria.refreshRates': 'Árfolyamok frissítése',
|
||
'dashboard.aria.swapCurrencies': 'Pénznemek cseréje',
|
||
'dashboard.aria.addTimezone': 'Időzóna hozzáadása',
|
||
'dashboard.aria.removeTimezone': '{city} eltávolítása',
|
||
'dashboard.dayCountRequired': 'A napok száma kötelező',
|
||
};
|
||
export default dashboard;
|