mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-10-18 21:16:47 +00:00
7528706d00
* feat(vacay): support half vacation days (#552) Log a vacation day as a half day (0.5) as well as a full day and count it as such against the entitlement. A "Half day" mode joins the calendar toolbar on desktop and mobile; half days render as a diagonal half-fill in the day cell, and the used/remaining totals carry the fraction. Closes #552 * refactor(vacay): half-day as a per-person toggle with a corner badge The diagonal half-fill collided with the two-person split — one person's half day looked like two people off. Drop the diagonal: the cell fill keeps showing who is off, a half day gets a small corner ½ badge, and a hover tooltip lists who is off on that date and how much (only when a half day is present). Logging moves from a third mode to a Half-day toggle that applies to the selected person, on desktop and mobile. * feat(vacay): mark half days with an orange corner dot Swap the ½ badge for a small orange dot in the bottom-right corner, mirroring the blue trip dot — quieter in the grid, and the hover tooltip still spells out who is on a half day. * fix(vacay): make the fraction migration idempotent The crosswalk test replays the migration tail (rewind + re-run), which expects every later migration to be idempotent. Guard the vacay_entries ADD COLUMN behind a pragma_table_info check so the second run is a no-op. Also only set dayVisual's `half` flag when true, so full days keep their exact { background, numColor } shape for the mobile day-model unit test. * style(vacay): nudge the mobile day dots slightly inward The blue trip dot and orange half-day dot sat right in the cell corner on mobile; move both a touch toward the centre so they read cleaner.
97 lines
4.5 KiB
TypeScript
97 lines
4.5 KiB
TypeScript
import type { TranslationStrings } from '../types';
|
|
|
|
const vacay: TranslationStrings = {
|
|
'vacay.subtitle': 'Urlaubstage planen und verwalten',
|
|
'vacay.settings': 'Einstellungen',
|
|
'vacay.year': 'Jahr',
|
|
'vacay.addYear': 'Nächstes Jahr hinzufügen',
|
|
'vacay.addPrevYear': 'Vorheriges Jahr hinzufügen',
|
|
'vacay.removeYear': 'Jahr entfernen',
|
|
'vacay.removeYearConfirm': '{year} entfernen?',
|
|
'vacay.removeYearHint': 'Alle Urlaubseinträge und Betriebsferien für dieses Jahr werden unwiderruflich gelöscht.',
|
|
'vacay.remove': 'Entfernen',
|
|
'vacay.persons': 'Personen',
|
|
'vacay.noPersons': 'Keine Personen angelegt',
|
|
'vacay.addPerson': 'Person hinzufügen',
|
|
'vacay.editPerson': 'Person bearbeiten',
|
|
'vacay.removePerson': 'Person entfernen',
|
|
'vacay.removePersonConfirm': '{name} wirklich entfernen?',
|
|
'vacay.removePersonHint': 'Alle Urlaubseinträge dieser Person werden unwiderruflich gelöscht.',
|
|
'vacay.personName': 'Name',
|
|
'vacay.personNamePlaceholder': 'Name eingeben',
|
|
'vacay.color': 'Farbe',
|
|
'vacay.add': 'Hinzufügen',
|
|
'vacay.legend': 'Legende',
|
|
'vacay.publicHoliday': 'Feiertag',
|
|
'vacay.companyHoliday': 'Betriebsferien',
|
|
'vacay.weekend': 'Wochenende',
|
|
'vacay.modeVacation': 'Urlaub',
|
|
'vacay.modeCompany': 'Betriebsferien',
|
|
'vacay.modeHalf': 'Halbtag',
|
|
'vacay.modeHalfHint': 'Halbe Urlaubstage eintragen',
|
|
'vacay.fullDay': 'Ganzer Tag',
|
|
'vacay.entitlement': 'Urlaubsanspruch',
|
|
'vacay.entitlementDays': 'Tage',
|
|
'vacay.used': 'Weg',
|
|
'vacay.remaining': 'Rest',
|
|
'vacay.carriedOver': 'aus {year}',
|
|
'vacay.blockWeekends': 'Wochenenden sperren',
|
|
'vacay.blockWeekendsHint': 'Verhindert Urlaubseinträge an Wochenendtagen',
|
|
'vacay.weekendDays': 'Wochenendtage',
|
|
'vacay.mon': 'Mo',
|
|
'vacay.tue': 'Di',
|
|
'vacay.wed': 'Mi',
|
|
'vacay.thu': 'Do',
|
|
'vacay.fri': 'Fr',
|
|
'vacay.sat': 'Sa',
|
|
'vacay.sun': 'So',
|
|
'vacay.publicHolidays': 'Feiertage',
|
|
'vacay.publicHolidaysHint': 'Feiertage im Kalender markieren',
|
|
'vacay.selectCountry': 'Land wählen',
|
|
'vacay.selectRegion': 'Region wählen (optional)',
|
|
'vacay.addCalendar': 'Kalender hinzufügen',
|
|
'vacay.calendarLabel': 'Bezeichnung (optional)',
|
|
'vacay.calendarColor': 'Farbe',
|
|
'vacay.noCalendars': 'Noch keine Feiertagskalender angelegt',
|
|
'vacay.companyHolidays': 'Betriebsferien',
|
|
'vacay.companyHolidaysHint': 'Erlaubt das Markieren von unternehmensweiten Feiertagen',
|
|
'vacay.companyHolidaysNoDeduct': 'Betriebsferien werden nicht vom Urlaubskontingent abgezogen.',
|
|
'vacay.weekStart': 'Woche beginnt am',
|
|
'vacay.weekStartHint': 'Wähle ob die Kalenderwoche am Montag oder Sonntag beginnt',
|
|
'vacay.carryOver': 'Urlaubsmitnahme',
|
|
'vacay.carryOverHint': 'Resturlaub automatisch ins Folgejahr übertragen',
|
|
'vacay.sharing': 'Teilen',
|
|
'vacay.sharingHint': 'Teile deinen Urlaubsplan mit anderen TREK-Benutzern',
|
|
'vacay.owner': 'Besitzer',
|
|
'vacay.shareEmailPlaceholder': 'E-Mail des TREK-Benutzers',
|
|
'vacay.shareSuccess': 'Plan erfolgreich geteilt',
|
|
'vacay.shareError': 'Plan konnte nicht geteilt werden',
|
|
'vacay.dissolve': 'Fusion auflösen',
|
|
'vacay.dissolveHint': 'Kalender wieder trennen. Deine Einträge bleiben erhalten.',
|
|
'vacay.dissolveAction': 'Auflösen',
|
|
'vacay.dissolved': 'Kalender getrennt',
|
|
'vacay.fusedWith': 'Fusioniert mit',
|
|
'vacay.you': 'du',
|
|
'vacay.noData': 'Keine Daten',
|
|
'vacay.changeColor': 'Farbe ändern',
|
|
'vacay.inviteUser': 'Benutzer einladen',
|
|
'vacay.inviteHint': 'Lade einen anderen TREK-Benutzer ein, um einen gemeinsamen Urlaubskalender zu teilen.',
|
|
'vacay.selectUser': 'Benutzer wählen',
|
|
'vacay.sendInvite': 'Einladung senden',
|
|
'vacay.inviteSent': 'Einladung gesendet',
|
|
'vacay.inviteError': 'Einladung konnte nicht gesendet werden',
|
|
'vacay.pending': 'ausstehend',
|
|
'vacay.noUsersAvailable': 'Keine Benutzer verfügbar',
|
|
'vacay.accept': 'Annehmen',
|
|
'vacay.decline': 'Ablehnen',
|
|
'vacay.acceptFusion': 'Annehmen & Fusionieren',
|
|
'vacay.inviteTitle': 'Fusionsanfrage',
|
|
'vacay.inviteWantsToFuse': 'möchte einen Urlaubskalender mit dir teilen.',
|
|
'vacay.fuseInfo1': 'Beide sehen alle Urlaubseinträge in einem gemeinsamen Kalender.',
|
|
'vacay.fuseInfo2': 'Beide können Einträge für den jeweils anderen erstellen und bearbeiten.',
|
|
'vacay.fuseInfo3': 'Beide können Einträge löschen und den Urlaubsanspruch ändern.',
|
|
'vacay.fuseInfo4': 'Einstellungen wie Feiertage und Betriebsferien werden geteilt.',
|
|
'vacay.fuseInfo5': 'Die Fusion kann jederzeit von beiden Seiten aufgelöst werden. Einträge bleiben erhalten.',
|
|
};
|
|
export default vacay;
|