@open-mercato/core 0.7.1-develop.7178.1.ab93fbaf4e → 0.7.1-develop.7180.1.9717fbbb43
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +2 -2
- package/dist/generated/entities/staff_time_entry/index.js +14 -0
- package/dist/generated/entities/staff_time_entry/index.js.map +2 -2
- package/dist/generated/entities/staff_time_entry_tag/index.js +15 -0
- package/dist/generated/entities/staff_time_entry_tag/index.js.map +7 -0
- package/dist/generated/entities/staff_time_project/index.js +16 -0
- package/dist/generated/entities/staff_time_project/index.js.map +2 -2
- package/dist/generated/entities/staff_time_report/index.js +57 -0
- package/dist/generated/entities/staff_time_report/index.js.map +7 -0
- package/dist/generated/entities/staff_time_report_entry/index.js +27 -0
- package/dist/generated/entities/staff_time_report_entry/index.js.map +7 -0
- package/dist/generated/entities/staff_time_report_event/index.js +21 -0
- package/dist/generated/entities/staff_time_report_event/index.js.map +7 -0
- package/dist/generated/entities/staff_time_report_project/index.js +15 -0
- package/dist/generated/entities/staff_time_report_project/index.js.map +7 -0
- package/dist/generated/entities/staff_time_tag/index.js +21 -0
- package/dist/generated/entities/staff_time_tag/index.js.map +7 -0
- package/dist/generated/entities/staff_time_task/index.js +37 -0
- package/dist/generated/entities/staff_time_task/index.js.map +7 -0
- package/dist/generated/entities/staff_time_task_comment/index.js +21 -0
- package/dist/generated/entities/staff_time_task_comment/index.js.map +7 -0
- package/dist/generated/entities/staff_time_task_status/index.js +29 -0
- package/dist/generated/entities/staff_time_task_status/index.js.map +7 -0
- package/dist/generated/entities/staff_time_task_tag/index.js +15 -0
- package/dist/generated/entities/staff_time_task_tag/index.js.map +7 -0
- package/dist/generated/entities.ids.generated.js +11 -1
- package/dist/generated/entities.ids.generated.js.map +2 -2
- package/dist/generated/entity-fields-registry.js +149 -0
- package/dist/generated/entity-fields-registry.js.map +2 -2
- package/dist/helpers/integration/timesheetFixtures.js +7 -0
- package/dist/helpers/integration/timesheetFixtures.js.map +2 -2
- package/dist/modules/auth/cli.js +16 -0
- package/dist/modules/auth/cli.js.map +2 -2
- package/dist/modules/auth/lib/backendChrome.js +1 -0
- package/dist/modules/auth/lib/backendChrome.js.map +2 -2
- package/dist/modules/customer_accounts/lib/customerRoleAcls.js +44 -0
- package/dist/modules/customer_accounts/lib/customerRoleAcls.js.map +7 -0
- package/dist/modules/customer_accounts/setup.js +1 -28
- package/dist/modules/customer_accounts/setup.js.map +2 -2
- package/dist/modules/data_sync/api/options.js +2 -0
- package/dist/modules/data_sync/api/options.js.map +2 -2
- package/dist/modules/data_sync/backend/data-sync/page.js +39 -17
- package/dist/modules/data_sync/backend/data-sync/page.js.map +2 -2
- package/dist/modules/data_sync/lib/start-controls.js +42 -0
- package/dist/modules/data_sync/lib/start-controls.js.map +7 -0
- package/dist/modules/staff/acl.js +9 -1
- package/dist/modules/staff/acl.js.map +2 -2
- package/dist/modules/staff/ai-agents.js +142 -0
- package/dist/modules/staff/ai-agents.js.map +7 -0
- package/dist/modules/staff/ai-tools/time-tracking-pack.js +348 -0
- package/dist/modules/staff/ai-tools/time-tracking-pack.js.map +7 -0
- package/dist/modules/staff/ai-tools/types.js +54 -0
- package/dist/modules/staff/ai-tools/types.js.map +7 -0
- package/dist/modules/staff/ai-tools.js +8 -0
- package/dist/modules/staff/ai-tools.js.map +7 -0
- package/dist/modules/staff/analytics.js +84 -1
- package/dist/modules/staff/analytics.js.map +2 -2
- package/dist/modules/staff/api/guards.js +37 -3
- package/dist/modules/staff/api/guards.js.map +2 -2
- package/dist/modules/staff/api/leave-requests/accept/route.js +1 -3
- package/dist/modules/staff/api/leave-requests/accept/route.js.map +2 -2
- package/dist/modules/staff/api/leave-requests/reject/route.js +1 -3
- package/dist/modules/staff/api/leave-requests/reject/route.js.map +2 -2
- package/dist/modules/staff/api/portal/time-reports/[id]/route.js +131 -0
- package/dist/modules/staff/api/portal/time-reports/[id]/route.js.map +7 -0
- package/dist/modules/staff/api/portal/time-reports/route.js +179 -0
- package/dist/modules/staff/api/portal/time-reports/route.js.map +7 -0
- package/dist/modules/staff/api/team-members/self/route.js +1 -3
- package/dist/modules/staff/api/team-members/self/route.js.map +2 -2
- package/dist/modules/staff/api/team-members/tags/assign/route.js +1 -3
- package/dist/modules/staff/api/team-members/tags/assign/route.js.map +2 -2
- package/dist/modules/staff/api/team-members/tags/unassign/route.js +1 -3
- package/dist/modules/staff/api/team-members/tags/unassign/route.js.map +2 -2
- package/dist/modules/staff/api/timesheets/_shared/withTimesheetInterceptors.js +174 -0
- package/dist/modules/staff/api/timesheets/_shared/withTimesheetInterceptors.js.map +7 -0
- package/dist/modules/staff/api/timesheets/access-requests/route.js +226 -0
- package/dist/modules/staff/api/timesheets/access-requests/route.js.map +7 -0
- package/dist/modules/staff/api/timesheets/my-projects/[projectId]/route.js +15 -8
- package/dist/modules/staff/api/timesheets/my-projects/[projectId]/route.js.map +2 -2
- package/dist/modules/staff/api/timesheets/my-projects/route.js +13 -1
- package/dist/modules/staff/api/timesheets/my-projects/route.js.map +2 -2
- package/dist/modules/staff/api/timesheets/my-work/myWorkAggregate.js +42 -0
- package/dist/modules/staff/api/timesheets/my-work/myWorkAggregate.js.map +7 -0
- package/dist/modules/staff/api/timesheets/my-work/route.js +383 -0
- package/dist/modules/staff/api/timesheets/my-work/route.js.map +7 -0
- package/dist/modules/staff/api/timesheets/projects/kpis/route.js +14 -2
- package/dist/modules/staff/api/timesheets/projects/kpis/route.js.map +2 -2
- package/dist/modules/staff/api/timesheets/reports/[id]/close/route.js +168 -0
- package/dist/modules/staff/api/timesheets/reports/[id]/close/route.js.map +7 -0
- package/dist/modules/staff/api/timesheets/reports/[id]/export/route.js +246 -0
- package/dist/modules/staff/api/timesheets/reports/[id]/export/route.js.map +7 -0
- package/dist/modules/staff/api/timesheets/reports/[id]/sheet/route.js +183 -0
- package/dist/modules/staff/api/timesheets/reports/[id]/sheet/route.js.map +7 -0
- package/dist/modules/staff/api/timesheets/reports/[id]/unlock/route.js +164 -0
- package/dist/modules/staff/api/timesheets/reports/[id]/unlock/route.js.map +7 -0
- package/dist/modules/staff/api/timesheets/reports/preview/route.js +360 -0
- package/dist/modules/staff/api/timesheets/reports/preview/route.js.map +7 -0
- package/dist/modules/staff/api/timesheets/reports/route.js +316 -0
- package/dist/modules/staff/api/timesheets/reports/route.js.map +7 -0
- package/dist/modules/staff/api/timesheets/reports/shared.js +63 -0
- package/dist/modules/staff/api/timesheets/reports/shared.js.map +7 -0
- package/dist/modules/staff/api/timesheets/settings/reapply-rounding/route.js +164 -0
- package/dist/modules/staff/api/timesheets/settings/reapply-rounding/route.js.map +7 -0
- package/dist/modules/staff/api/timesheets/settings/rounding-impact/route.js +168 -0
- package/dist/modules/staff/api/timesheets/settings/rounding-impact/route.js.map +7 -0
- package/dist/modules/staff/api/timesheets/settings/route.js +199 -0
- package/dist/modules/staff/api/timesheets/settings/route.js.map +7 -0
- package/dist/modules/staff/api/timesheets/tags/access.js +76 -0
- package/dist/modules/staff/api/timesheets/tags/access.js.map +7 -0
- package/dist/modules/staff/api/timesheets/tags/entry-assignments/route.js +235 -0
- package/dist/modules/staff/api/timesheets/tags/entry-assignments/route.js.map +7 -0
- package/dist/modules/staff/api/timesheets/tags/route.js +160 -0
- package/dist/modules/staff/api/timesheets/tags/route.js.map +7 -0
- package/dist/modules/staff/api/timesheets/tags/task-assignments/route.js +233 -0
- package/dist/modules/staff/api/timesheets/tags/task-assignments/route.js.map +7 -0
- package/dist/modules/staff/api/timesheets/task-statuses/route.js +188 -0
- package/dist/modules/staff/api/timesheets/task-statuses/route.js.map +7 -0
- package/dist/modules/staff/api/timesheets/tasks/[id]/comments/route.js +399 -0
- package/dist/modules/staff/api/timesheets/tasks/[id]/comments/route.js.map +7 -0
- package/dist/modules/staff/api/timesheets/tasks/[id]/status/route.js +210 -0
- package/dist/modules/staff/api/timesheets/tasks/[id]/status/route.js.map +7 -0
- package/dist/modules/staff/api/timesheets/tasks/route.js +333 -0
- package/dist/modules/staff/api/timesheets/tasks/route.js.map +7 -0
- package/dist/modules/staff/api/timesheets/time-entries/[id]/duplicate/route.js +228 -0
- package/dist/modules/staff/api/timesheets/time-entries/[id]/duplicate/route.js.map +7 -0
- package/dist/modules/staff/api/timesheets/time-entries/[id]/segments/[segmentId]/route.js +29 -10
- package/dist/modules/staff/api/timesheets/time-entries/[id]/segments/[segmentId]/route.js.map +2 -2
- package/dist/modules/staff/api/timesheets/time-entries/[id]/segments/route.js +31 -18
- package/dist/modules/staff/api/timesheets/time-entries/[id]/segments/route.js.map +2 -2
- package/dist/modules/staff/api/timesheets/time-entries/[id]/timer-start/route.js +21 -7
- package/dist/modules/staff/api/timesheets/time-entries/[id]/timer-start/route.js.map +2 -2
- package/dist/modules/staff/api/timesheets/time-entries/[id]/timer-stop/route.js +27 -7
- package/dist/modules/staff/api/timesheets/time-entries/[id]/timer-stop/route.js.map +2 -2
- package/dist/modules/staff/api/timesheets/time-entries/bulk/route.js +215 -32
- package/dist/modules/staff/api/timesheets/time-entries/bulk/route.js.map +2 -2
- package/dist/modules/staff/api/timesheets/time-entries/copy-day/route.js +378 -0
- package/dist/modules/staff/api/timesheets/time-entries/copy-day/route.js.map +7 -0
- package/dist/modules/staff/api/timesheets/time-entries/overlaps/route.js +340 -0
- package/dist/modules/staff/api/timesheets/time-entries/overlaps/route.js.map +7 -0
- package/dist/modules/staff/api/timesheets/time-entries/route.js +238 -26
- package/dist/modules/staff/api/timesheets/time-entries/route.js.map +2 -2
- package/dist/modules/staff/api/timesheets/time-entries/start-timer/route.js +23 -8
- package/dist/modules/staff/api/timesheets/time-entries/start-timer/route.js.map +2 -2
- package/dist/modules/staff/api/timesheets/time-projects/[id]/change-currency/route.js +209 -0
- package/dist/modules/staff/api/timesheets/time-projects/[id]/change-currency/route.js.map +7 -0
- package/dist/modules/staff/api/timesheets/time-projects/[id]/employees/route.js +59 -2
- package/dist/modules/staff/api/timesheets/time-projects/[id]/employees/route.js.map +2 -2
- package/dist/modules/staff/api/timesheets/time-projects/route.js +264 -22
- package/dist/modules/staff/api/timesheets/time-projects/route.js.map +2 -2
- package/dist/modules/staff/backend/staff/time-tracking/board/page.js +110 -0
- package/dist/modules/staff/backend/staff/time-tracking/board/page.js.map +7 -0
- package/dist/modules/staff/backend/staff/time-tracking/board/page.meta.js +18 -0
- package/dist/modules/staff/backend/staff/time-tracking/board/page.meta.js.map +7 -0
- package/dist/modules/staff/backend/staff/time-tracking/entries/page.js +981 -0
- package/dist/modules/staff/backend/staff/time-tracking/entries/page.js.map +7 -0
- package/dist/modules/staff/backend/staff/time-tracking/entries/page.meta.js +18 -0
- package/dist/modules/staff/backend/staff/time-tracking/entries/page.meta.js.map +7 -0
- package/dist/modules/staff/backend/staff/time-tracking/page.js +583 -0
- package/dist/modules/staff/backend/staff/time-tracking/page.js.map +7 -0
- package/dist/modules/staff/backend/staff/time-tracking/page.meta.js +15 -0
- package/dist/modules/staff/backend/staff/time-tracking/page.meta.js.map +7 -0
- package/dist/modules/staff/backend/staff/time-tracking/projects/[id]/board/page.js +65 -0
- package/dist/modules/staff/backend/staff/time-tracking/projects/[id]/board/page.js.map +7 -0
- package/dist/modules/staff/backend/staff/time-tracking/projects/[id]/board/page.meta.js +16 -0
- package/dist/modules/staff/backend/staff/time-tracking/projects/[id]/board/page.meta.js.map +7 -0
- package/dist/modules/staff/backend/staff/time-tracking/projects/[id]/edit/page.js +229 -0
- package/dist/modules/staff/backend/staff/time-tracking/projects/[id]/edit/page.js.map +7 -0
- package/dist/modules/staff/backend/staff/time-tracking/projects/[id]/edit/page.meta.js +16 -0
- package/dist/modules/staff/backend/staff/time-tracking/projects/[id]/edit/page.meta.js.map +7 -0
- package/dist/modules/staff/backend/staff/time-tracking/projects/[id]/page.js +1014 -0
- package/dist/modules/staff/backend/staff/time-tracking/projects/[id]/page.js.map +7 -0
- package/dist/modules/staff/backend/staff/time-tracking/projects/[id]/page.meta.js +16 -0
- package/dist/modules/staff/backend/staff/time-tracking/projects/[id]/page.meta.js.map +7 -0
- package/dist/modules/staff/backend/staff/time-tracking/projects/create/page.js +97 -0
- package/dist/modules/staff/backend/staff/time-tracking/projects/create/page.js.map +7 -0
- package/dist/modules/staff/backend/staff/time-tracking/projects/create/page.meta.js +16 -0
- package/dist/modules/staff/backend/staff/time-tracking/projects/create/page.meta.js.map +7 -0
- package/dist/modules/staff/backend/staff/time-tracking/projects/page.js +1040 -0
- package/dist/modules/staff/backend/staff/time-tracking/projects/page.js.map +7 -0
- package/dist/modules/staff/backend/staff/time-tracking/projects/page.meta.js +19 -0
- package/dist/modules/staff/backend/staff/time-tracking/projects/page.meta.js.map +7 -0
- package/dist/modules/staff/backend/staff/time-tracking/projects/projectFormConfig.js +353 -0
- package/dist/modules/staff/backend/staff/time-tracking/projects/projectFormConfig.js.map +7 -0
- package/dist/modules/staff/backend/staff/time-tracking/reports/[id]/page.js +457 -0
- package/dist/modules/staff/backend/staff/time-tracking/reports/[id]/page.js.map +7 -0
- package/dist/modules/staff/backend/staff/time-tracking/reports/[id]/page.meta.js +16 -0
- package/dist/modules/staff/backend/staff/time-tracking/reports/[id]/page.meta.js.map +7 -0
- package/dist/modules/staff/backend/staff/time-tracking/reports/create/page.js +697 -0
- package/dist/modules/staff/backend/staff/time-tracking/reports/create/page.js.map +7 -0
- package/dist/modules/staff/backend/staff/time-tracking/reports/create/page.meta.js +16 -0
- package/dist/modules/staff/backend/staff/time-tracking/reports/create/page.meta.js.map +7 -0
- package/dist/modules/staff/backend/staff/time-tracking/reports/page.js +174 -0
- package/dist/modules/staff/backend/staff/time-tracking/reports/page.js.map +7 -0
- package/dist/modules/staff/backend/staff/time-tracking/reports/page.meta.js +18 -0
- package/dist/modules/staff/backend/staff/time-tracking/reports/page.meta.js.map +7 -0
- package/dist/modules/staff/backend/staff/time-tracking/settings/page.js +546 -0
- package/dist/modules/staff/backend/staff/time-tracking/settings/page.js.map +7 -0
- package/dist/modules/staff/backend/staff/time-tracking/settings/page.meta.js +18 -0
- package/dist/modules/staff/backend/staff/time-tracking/settings/page.meta.js.map +7 -0
- package/dist/modules/staff/backend/staff/time-tracking/timesheet/GridView.js +710 -0
- package/dist/modules/staff/backend/staff/time-tracking/timesheet/GridView.js.map +7 -0
- package/dist/modules/staff/backend/staff/time-tracking/timesheet/page.js +646 -0
- package/dist/modules/staff/backend/staff/time-tracking/timesheet/page.js.map +7 -0
- package/dist/modules/staff/backend/staff/time-tracking/timesheet/page.meta.js +18 -0
- package/dist/modules/staff/backend/staff/time-tracking/timesheet/page.meta.js.map +7 -0
- package/dist/modules/staff/backend/staff/timesheets/page.js +4 -793
- package/dist/modules/staff/backend/staff/timesheets/page.js.map +2 -2
- package/dist/modules/staff/backend/staff/timesheets/page.meta.js +2 -7
- package/dist/modules/staff/backend/staff/timesheets/page.meta.js.map +2 -2
- package/dist/modules/staff/backend/staff/timesheets/projects/[id]/edit/page.js +5 -136
- package/dist/modules/staff/backend/staff/timesheets/projects/[id]/edit/page.js.map +2 -2
- package/dist/modules/staff/backend/staff/timesheets/projects/[id]/edit/page.meta.js +1 -7
- package/dist/modules/staff/backend/staff/timesheets/projects/[id]/edit/page.meta.js.map +2 -2
- package/dist/modules/staff/backend/staff/timesheets/projects/[id]/page.js +5 -445
- package/dist/modules/staff/backend/staff/timesheets/projects/[id]/page.js.map +3 -3
- package/dist/modules/staff/backend/staff/timesheets/projects/[id]/page.meta.js +1 -7
- package/dist/modules/staff/backend/staff/timesheets/projects/[id]/page.meta.js.map +2 -2
- package/dist/modules/staff/backend/staff/timesheets/projects/create/page.js +4 -76
- package/dist/modules/staff/backend/staff/timesheets/projects/create/page.js.map +2 -2
- package/dist/modules/staff/backend/staff/timesheets/projects/create/page.meta.js +1 -7
- package/dist/modules/staff/backend/staff/timesheets/projects/create/page.meta.js.map +2 -2
- package/dist/modules/staff/backend/staff/timesheets/projects/page.js +4 -613
- package/dist/modules/staff/backend/staff/timesheets/projects/page.js.map +2 -2
- package/dist/modules/staff/backend/staff/timesheets/projects/page.meta.js +2 -17
- package/dist/modules/staff/backend/staff/timesheets/projects/page.meta.js.map +2 -2
- package/dist/modules/staff/ce.js +40 -0
- package/dist/modules/staff/ce.js.map +2 -2
- package/dist/modules/staff/cli.js +166 -1
- package/dist/modules/staff/cli.js.map +2 -2
- package/dist/modules/staff/commands/index.js +5 -0
- package/dist/modules/staff/commands/index.js.map +2 -2
- package/dist/modules/staff/commands/timesheets-entries.js +569 -21
- package/dist/modules/staff/commands/timesheets-entries.js.map +3 -3
- package/dist/modules/staff/commands/timesheets-projects.js +450 -7
- package/dist/modules/staff/commands/timesheets-projects.js.map +2 -2
- package/dist/modules/staff/commands/timesheets-reports.js +1036 -0
- package/dist/modules/staff/commands/timesheets-reports.js.map +7 -0
- package/dist/modules/staff/commands/timesheets-tags.js +1015 -0
- package/dist/modules/staff/commands/timesheets-tags.js.map +7 -0
- package/dist/modules/staff/commands/timesheets-task-comments.js +438 -0
- package/dist/modules/staff/commands/timesheets-task-comments.js.map +7 -0
- package/dist/modules/staff/commands/timesheets-task-statuses.js +723 -0
- package/dist/modules/staff/commands/timesheets-task-statuses.js.map +7 -0
- package/dist/modules/staff/commands/timesheets-tasks.js +834 -0
- package/dist/modules/staff/commands/timesheets-tasks.js.map +7 -0
- package/dist/modules/staff/data/enrichers.js +426 -12
- package/dist/modules/staff/data/enrichers.js.map +2 -2
- package/dist/modules/staff/data/entities.js +552 -3
- package/dist/modules/staff/data/entities.js.map +2 -2
- package/dist/modules/staff/data/extensions.js +41 -0
- package/dist/modules/staff/data/extensions.js.map +7 -0
- package/dist/modules/staff/data/validators.js +254 -9
- package/dist/modules/staff/data/validators.js.map +2 -2
- package/dist/modules/staff/di.js +42 -1
- package/dist/modules/staff/di.js.map +2 -2
- package/dist/modules/staff/events.js +84 -6
- package/dist/modules/staff/events.js.map +2 -2
- package/dist/modules/staff/events.payloads.js +158 -0
- package/dist/modules/staff/events.payloads.js.map +7 -0
- package/dist/modules/staff/extension-points.js +261 -0
- package/dist/modules/staff/extension-points.js.map +7 -0
- package/dist/modules/staff/frontend/[orgSlug]/portal/time-reports/[id]/page.js +138 -0
- package/dist/modules/staff/frontend/[orgSlug]/portal/time-reports/[id]/page.js.map +7 -0
- package/dist/modules/staff/frontend/[orgSlug]/portal/time-reports/[id]/page.meta.js +12 -0
- package/dist/modules/staff/frontend/[orgSlug]/portal/time-reports/[id]/page.meta.js.map +7 -0
- package/dist/modules/staff/frontend/[orgSlug]/portal/time-reports/page.js +133 -0
- package/dist/modules/staff/frontend/[orgSlug]/portal/time-reports/page.js.map +7 -0
- package/dist/modules/staff/frontend/[orgSlug]/portal/time-reports/page.meta.js +19 -0
- package/dist/modules/staff/frontend/[orgSlug]/portal/time-reports/page.meta.js.map +7 -0
- package/dist/modules/staff/lib/crud.js +11 -1
- package/dist/modules/staff/lib/crud.js.map +2 -2
- package/dist/modules/staff/lib/time-tracking/access.js +92 -0
- package/dist/modules/staff/lib/time-tracking/access.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking/billability.js +39 -0
- package/dist/modules/staff/lib/time-tracking/billability.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking/capacity.js +68 -0
- package/dist/modules/staff/lib/time-tracking/capacity.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking/componentContracts.js +15 -0
- package/dist/modules/staff/lib/time-tracking/componentContracts.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking/cost.js +82 -0
- package/dist/modules/staff/lib/time-tracking/cost.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking/duration.js +55 -0
- package/dist/modules/staff/lib/time-tracking/duration.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking/featureAccess.js +41 -0
- package/dist/modules/staff/lib/time-tracking/featureAccess.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking/interval.js +72 -0
- package/dist/modules/staff/lib/time-tracking/interval.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking/migrateProjectCodes.js +88 -0
- package/dist/modules/staff/lib/time-tracking/migrateProjectCodes.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking/moneyVisibility.js +10 -0
- package/dist/modules/staff/lib/time-tracking/moneyVisibility.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking/overlap.js +87 -0
- package/dist/modules/staff/lib/time-tracking/overlap.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking/portalRecipients.js +27 -0
- package/dist/modules/staff/lib/time-tracking/portalRecipients.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking/portalReports.js +16 -0
- package/dist/modules/staff/lib/time-tracking/portalReports.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking/projectCode.js +135 -0
- package/dist/modules/staff/lib/time-tracking/projectCode.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking/reapplyRounding.js +187 -0
- package/dist/modules/staff/lib/time-tracking/reapplyRounding.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking/recalculationRunner.js +80 -0
- package/dist/modules/staff/lib/time-tracking/recalculationRunner.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking/recalculations.js +56 -0
- package/dist/modules/staff/lib/time-tracking/recalculations.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking/registries/invoke.js +63 -0
- package/dist/modules/staff/lib/time-tracking/registries/invoke.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking/registries/registry.js +62 -0
- package/dist/modules/staff/lib/time-tracking/registries/registry.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking/registries/scope.js +21 -0
- package/dist/modules/staff/lib/time-tracking/registries/scope.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking/rollup.js +34 -0
- package/dist/modules/staff/lib/time-tracking/rollup.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking/rounding.js +66 -0
- package/dist/modules/staff/lib/time-tracking/rounding.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking/roundingImpact.js +39 -0
- package/dist/modules/staff/lib/time-tracking/roundingImpact.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking/settingKeys.js +214 -0
- package/dist/modules/staff/lib/time-tracking/settingKeys.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking/settings.js +87 -0
- package/dist/modules/staff/lib/time-tracking/settings.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking/sqlInClause.js +9 -0
- package/dist/modules/staff/lib/time-tracking/sqlInClause.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking/timeEntrySources.js +48 -0
- package/dist/modules/staff/lib/time-tracking/timeEntrySources.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking-ui/BoardFilterChips.js +283 -0
- package/dist/modules/staff/lib/time-tracking-ui/BoardFilterChips.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking-ui/CustomerPicker.js +324 -0
- package/dist/modules/staff/lib/time-tracking-ui/CustomerPicker.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking-ui/DurationInput.js +121 -0
- package/dist/modules/staff/lib/time-tracking-ui/DurationInput.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking-ui/EntryDetailsFields.js +188 -0
- package/dist/modules/staff/lib/time-tracking-ui/EntryDetailsFields.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking-ui/EntryFilterBar.js +89 -0
- package/dist/modules/staff/lib/time-tracking-ui/EntryFilterBar.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking-ui/KanbanBoard.js +855 -0
- package/dist/modules/staff/lib/time-tracking-ui/KanbanBoard.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking-ui/KanbanCard.js +360 -0
- package/dist/modules/staff/lib/time-tracking-ui/KanbanCard.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking-ui/KanbanColumn.js +259 -0
- package/dist/modules/staff/lib/time-tracking-ui/KanbanColumn.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking-ui/NewTaskDialog.js +238 -0
- package/dist/modules/staff/lib/time-tracking-ui/NewTaskDialog.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking-ui/NoProjectAccess.js +130 -0
- package/dist/modules/staff/lib/time-tracking-ui/NoProjectAccess.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking-ui/PeriodSelector.js +98 -0
- package/dist/modules/staff/lib/time-tracking-ui/PeriodSelector.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking-ui/PhasePlaceholder.js +27 -0
- package/dist/modules/staff/lib/time-tracking-ui/PhasePlaceholder.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking-ui/ProjectCodeField.js +166 -0
- package/dist/modules/staff/lib/time-tracking-ui/ProjectCodeField.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking-ui/ProjectCurrencyField.js +295 -0
- package/dist/modules/staff/lib/time-tracking-ui/ProjectCurrencyField.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking-ui/ProjectFormSections.js +212 -0
- package/dist/modules/staff/lib/time-tracking-ui/ProjectFormSections.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking-ui/ProjectTeamDrawer.js +729 -0
- package/dist/modules/staff/lib/time-tracking-ui/ProjectTeamDrawer.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking-ui/ReportSheet.js +217 -0
- package/dist/modules/staff/lib/time-tracking-ui/ReportSheet.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking-ui/TagPicker.js +158 -0
- package/dist/modules/staff/lib/time-tracking-ui/TagPicker.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking-ui/TaskBoardScreen.js +224 -0
- package/dist/modules/staff/lib/time-tracking-ui/TaskBoardScreen.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking-ui/TaskCommentThread.js +93 -0
- package/dist/modules/staff/lib/time-tracking-ui/TaskCommentThread.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking-ui/TaskDrawer.js +1196 -0
- package/dist/modules/staff/lib/time-tracking-ui/TaskDrawer.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking-ui/TaskListView.js +176 -0
- package/dist/modules/staff/lib/time-tracking-ui/TaskListView.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking-ui/TaskPicker.js +307 -0
- package/dist/modules/staff/lib/time-tracking-ui/TaskPicker.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking-ui/TaskQuickLog.js +284 -0
- package/dist/modules/staff/lib/time-tracking-ui/TaskQuickLog.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking-ui/TimeEntriesSummaryFooter.js +73 -0
- package/dist/modules/staff/lib/time-tracking-ui/TimeEntriesSummaryFooter.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking-ui/TimeEntryDialog.js +1499 -0
- package/dist/modules/staff/lib/time-tracking-ui/TimeEntryDialog.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking-ui/TimeEntryDurationCell.js +95 -0
- package/dist/modules/staff/lib/time-tracking-ui/TimeEntryDurationCell.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking-ui/TimesheetCalendar.js +188 -0
- package/dist/modules/staff/lib/time-tracking-ui/TimesheetCalendar.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking-ui/TimesheetPeriodFooter.js +61 -0
- package/dist/modules/staff/lib/time-tracking-ui/TimesheetPeriodFooter.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking-ui/TimesheetViewSwitch.js +45 -0
- package/dist/modules/staff/lib/time-tracking-ui/TimesheetViewSwitch.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking-ui/boardDirectory.js +176 -0
- package/dist/modules/staff/lib/time-tracking-ui/boardDirectory.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking-ui/boardFilters.js +82 -0
- package/dist/modules/staff/lib/time-tracking-ui/boardFilters.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking-ui/boardSummary.js +5 -0
- package/dist/modules/staff/lib/time-tracking-ui/boardSummary.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking-ui/kanbanBoardData.js +152 -0
- package/dist/modules/staff/lib/time-tracking-ui/kanbanBoardData.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking-ui/projectTeamAssignment.js +92 -0
- package/dist/modules/staff/lib/time-tracking-ui/projectTeamAssignment.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking-ui/taskDrawerData.js +111 -0
- package/dist/modules/staff/lib/time-tracking-ui/taskDrawerData.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking-ui/timeEntryDialogState.js +243 -0
- package/dist/modules/staff/lib/time-tracking-ui/timeEntryDialogState.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking-ui/timeEntryListData.js +151 -0
- package/dist/modules/staff/lib/time-tracking-ui/timeEntryListData.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking-ui/timeTrackingSettingsForm.js +105 -0
- package/dist/modules/staff/lib/time-tracking-ui/timeTrackingSettingsForm.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking-ui/timesheetData.js +132 -0
- package/dist/modules/staff/lib/time-tracking-ui/timesheetData.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking-ui/timesheetPeriod.js +205 -0
- package/dist/modules/staff/lib/time-tracking-ui/timesheetPeriod.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking-ui/timesheetTargets.js +53 -0
- package/dist/modules/staff/lib/time-tracking-ui/timesheetTargets.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking-ui/useBoardFilters.js +77 -0
- package/dist/modules/staff/lib/time-tracking-ui/useBoardFilters.js.map +7 -0
- package/dist/modules/staff/lib/time-tracking-ui/useTimesheetPreferences.js +151 -0
- package/dist/modules/staff/lib/time-tracking-ui/useTimesheetPreferences.js.map +7 -0
- package/dist/modules/staff/lib/timeTrackingSeeds.js +809 -0
- package/dist/modules/staff/lib/timeTrackingSeeds.js.map +7 -0
- package/dist/modules/staff/lib/timesheets/timeEntryCacheInvalidation.js +2 -3
- package/dist/modules/staff/lib/timesheets/timeEntryCacheInvalidation.js.map +2 -2
- package/dist/modules/staff/lib/timesheets/timeEntryDecoration.js +152 -0
- package/dist/modules/staff/lib/timesheets/timeEntryDecoration.js.map +7 -0
- package/dist/modules/staff/lib/timesheets-projects/budgetBurn.js +36 -0
- package/dist/modules/staff/lib/timesheets-projects/budgetBurn.js.map +7 -0
- package/dist/modules/staff/lib/timesheets-projects/budgetThreshold.js +66 -0
- package/dist/modules/staff/lib/timesheets-projects/budgetThreshold.js.map +7 -0
- package/dist/modules/staff/lib/timesheets-projects/budgetThresholdState.js +78 -0
- package/dist/modules/staff/lib/timesheets-projects/budgetThresholdState.js.map +7 -0
- package/dist/modules/staff/lib/timesheets-projects/computeProjectFinancials.js +81 -0
- package/dist/modules/staff/lib/timesheets-projects/computeProjectFinancials.js.map +7 -0
- package/dist/modules/staff/lib/timesheets-projects/reportSelection.js +44 -0
- package/dist/modules/staff/lib/timesheets-projects/reportSelection.js.map +7 -0
- package/dist/modules/staff/lib/timesheets-projects-ui/AssignMembersDialog.js +169 -0
- package/dist/modules/staff/lib/timesheets-projects-ui/AssignMembersDialog.js.map +7 -0
- package/dist/modules/staff/lib/timesheets-projects-ui/ProjectBudgetCell.js +22 -0
- package/dist/modules/staff/lib/timesheets-projects-ui/ProjectBudgetCell.js.map +7 -0
- package/dist/modules/staff/lib/timesheets-projects-ui/ProjectCard.js +51 -1
- package/dist/modules/staff/lib/timesheets-projects-ui/ProjectCard.js.map +2 -2
- package/dist/modules/staff/lib/timesheets-projects-ui/ProjectsBulkActionsBar.js +70 -0
- package/dist/modules/staff/lib/timesheets-projects-ui/ProjectsBulkActionsBar.js.map +7 -0
- package/dist/modules/staff/lib/timesheets-reports/buildReportSheet.js +63 -0
- package/dist/modules/staff/lib/timesheets-reports/buildReportSheet.js.map +7 -0
- package/dist/modules/staff/lib/timesheets-reports/loadReportData.js +170 -0
- package/dist/modules/staff/lib/timesheets-reports/loadReportData.js.map +7 -0
- package/dist/modules/staff/lib/timesheets-reports/pdf.js +205 -0
- package/dist/modules/staff/lib/timesheets-reports/pdf.js.map +7 -0
- package/dist/modules/staff/lib/timesheets-reports/reportApprovalPolicies.js +68 -0
- package/dist/modules/staff/lib/timesheets-reports/reportApprovalPolicies.js.map +7 -0
- package/dist/modules/staff/lib/timesheets-reports/reportConfigData.js +135 -0
- package/dist/modules/staff/lib/timesheets-reports/reportConfigData.js.map +7 -0
- package/dist/modules/staff/lib/timesheets-reports/reportConfigState.js +48 -0
- package/dist/modules/staff/lib/timesheets-reports/reportConfigState.js.map +7 -0
- package/dist/modules/staff/lib/timesheets-reports/reportExport.js +262 -0
- package/dist/modules/staff/lib/timesheets-reports/reportExport.js.map +7 -0
- package/dist/modules/staff/lib/timesheets-reports/reportExportFormats.js +34 -0
- package/dist/modules/staff/lib/timesheets-reports/reportExportFormats.js.map +7 -0
- package/dist/modules/staff/lib/timesheets-reports/reportGroupings.js +79 -0
- package/dist/modules/staff/lib/timesheets-reports/reportGroupings.js.map +7 -0
- package/dist/modules/staff/lib/timesheets-reports/reportLabels.js +11 -0
- package/dist/modules/staff/lib/timesheets-reports/reportLabels.js.map +7 -0
- package/dist/modules/staff/lib/timesheets-reports/reportReference.js +83 -0
- package/dist/modules/staff/lib/timesheets-reports/reportReference.js.map +7 -0
- package/dist/modules/staff/lib/timesheets-reports/reportRows.js +42 -0
- package/dist/modules/staff/lib/timesheets-reports/reportRows.js.map +7 -0
- package/dist/modules/staff/lib/timesheets-reports/reportSheetData.js +107 -0
- package/dist/modules/staff/lib/timesheets-reports/reportSheetData.js.map +7 -0
- package/dist/modules/staff/lib/timesheets-reports/reportTotals.js +289 -0
- package/dist/modules/staff/lib/timesheets-reports/reportTotals.js.map +7 -0
- package/dist/modules/staff/lib/timesheets-reports/xlsx.js +145 -0
- package/dist/modules/staff/lib/timesheets-reports/xlsx.js.map +7 -0
- package/dist/modules/staff/lib/timesheets-tasks/computeTaskRollups.js +116 -0
- package/dist/modules/staff/lib/timesheets-tasks/computeTaskRollups.js.map +7 -0
- package/dist/modules/staff/lib/timesheets-tasks/defaultStatusTemplate.js +50 -0
- package/dist/modules/staff/lib/timesheets-tasks/defaultStatusTemplate.js.map +7 -0
- package/dist/modules/staff/lib/timesheets-tasks/seedProjectStatuses.js +27 -0
- package/dist/modules/staff/lib/timesheets-tasks/seedProjectStatuses.js.map +7 -0
- package/dist/modules/staff/lib/timesheets-tasks/statusPositions.js +65 -0
- package/dist/modules/staff/lib/timesheets-tasks/statusPositions.js.map +7 -0
- package/dist/modules/staff/lib/timesheets-tasks/statusSlug.js +31 -0
- package/dist/modules/staff/lib/timesheets-tasks/statusSlug.js.map +7 -0
- package/dist/modules/staff/lib/timesheets-tasks/taskHierarchy.js +31 -0
- package/dist/modules/staff/lib/timesheets-tasks/taskHierarchy.js.map +7 -0
- package/dist/modules/staff/lib/timesheets-tasks/taskHoursTotals.js +17 -0
- package/dist/modules/staff/lib/timesheets-tasks/taskHoursTotals.js.map +7 -0
- package/dist/modules/staff/lib/timesheets-tasks/taskReference.js +51 -0
- package/dist/modules/staff/lib/timesheets-tasks/taskReference.js.map +7 -0
- package/dist/modules/staff/lib/timesheets-ui/CreateProjectDialog.js +11 -4
- package/dist/modules/staff/lib/timesheets-ui/CreateProjectDialog.js.map +2 -2
- package/dist/modules/staff/lib/timesheets-ui/ListView.js +369 -111
- package/dist/modules/staff/lib/timesheets-ui/ListView.js.map +2 -2
- package/dist/modules/staff/lib/timesheets-ui/TimerBar.js +47 -2
- package/dist/modules/staff/lib/timesheets-ui/TimerBar.js.map +2 -2
- package/dist/modules/staff/migrations/Migration20260813073131_staff.js +79 -0
- package/dist/modules/staff/migrations/Migration20260813073131_staff.js.map +7 -0
- package/dist/modules/staff/migrations/Migration20260824143357_staff.js +15 -0
- package/dist/modules/staff/migrations/Migration20260824143357_staff.js.map +7 -0
- package/dist/modules/staff/notifications.client.js +16 -0
- package/dist/modules/staff/notifications.client.js.map +7 -0
- package/dist/modules/staff/notifications.handlers.js +80 -0
- package/dist/modules/staff/notifications.handlers.js.map +7 -0
- package/dist/modules/staff/notifications.js +168 -0
- package/dist/modules/staff/notifications.js.map +2 -2
- package/dist/modules/staff/search.js +159 -1
- package/dist/modules/staff/search.js.map +2 -2
- package/dist/modules/staff/setup.js +20 -1
- package/dist/modules/staff/setup.js.map +2 -2
- package/dist/modules/staff/subscribers/time-project-access-requested-notification.js +68 -0
- package/dist/modules/staff/subscribers/time-project-access-requested-notification.js.map +7 -0
- package/dist/modules/staff/subscribers/time-project-budget-threshold-notification.js +149 -0
- package/dist/modules/staff/subscribers/time-project-budget-threshold-notification.js.map +7 -0
- package/dist/modules/staff/subscribers/time-report-approved-notification.js +78 -0
- package/dist/modules/staff/subscribers/time-report-approved-notification.js.map +7 -0
- package/dist/modules/staff/subscribers/time-report-portal-broadcast.js +78 -0
- package/dist/modules/staff/subscribers/time-report-portal-broadcast.js.map +7 -0
- package/dist/modules/staff/translations.js +4 -1
- package/dist/modules/staff/translations.js.map +2 -2
- package/dist/modules/staff/widgets/components.js +7 -0
- package/dist/modules/staff/widgets/components.js.map +7 -0
- package/dist/modules/staff/widgets/injection/timer-sidebar-indicator/widget.js +5 -4
- package/dist/modules/staff/widgets/injection/timer-sidebar-indicator/widget.js.map +2 -2
- package/dist/modules/staff/widgets/notifications/TimeProjectAccessRequestedRenderer.js +135 -0
- package/dist/modules/staff/widgets/notifications/TimeProjectAccessRequestedRenderer.js.map +7 -0
- package/dist/modules/staff/widgets/notifications/index.js +5 -0
- package/dist/modules/staff/widgets/notifications/index.js.map +7 -0
- package/dist/modules/staff/workers/timesheets-reapply-rounding.js +43 -0
- package/dist/modules/staff/workers/timesheets-reapply-rounding.js.map +7 -0
- package/generated/entities/staff_time_entry/index.ts +7 -0
- package/generated/entities/staff_time_entry_tag/index.ts +6 -0
- package/generated/entities/staff_time_project/index.ts +8 -0
- package/generated/entities/staff_time_report/index.ts +27 -0
- package/generated/entities/staff_time_report_entry/index.ts +12 -0
- package/generated/entities/staff_time_report_event/index.ts +9 -0
- package/generated/entities/staff_time_report_project/index.ts +6 -0
- package/generated/entities/staff_time_tag/index.ts +9 -0
- package/generated/entities/staff_time_task/index.ts +17 -0
- package/generated/entities/staff_time_task_comment/index.ts +9 -0
- package/generated/entities/staff_time_task_status/index.ts +13 -0
- package/generated/entities/staff_time_task_tag/index.ts +6 -0
- package/generated/entities.ids.generated.ts +11 -1
- package/generated/entity-fields-registry.ts +149 -0
- package/package.json +7 -7
- package/src/helpers/integration/timesheetFixtures.ts +31 -1
- package/src/modules/auth/README.md +1 -1
- package/src/modules/auth/cli.ts +35 -1
- package/src/modules/auth/i18n/de.json +7 -0
- package/src/modules/auth/i18n/en.json +7 -0
- package/src/modules/auth/i18n/es.json +7 -0
- package/src/modules/auth/i18n/ko.json +7 -0
- package/src/modules/auth/i18n/pl.json +7 -0
- package/src/modules/auth/lib/backendChrome.tsx +1 -0
- package/src/modules/customer_accounts/lib/customerRoleAcls.ts +79 -0
- package/src/modules/customer_accounts/setup.ts +1 -45
- package/src/modules/data_sync/AGENTS.md +34 -0
- package/src/modules/data_sync/api/options.ts +2 -0
- package/src/modules/data_sync/backend/data-sync/page.tsx +82 -33
- package/src/modules/data_sync/i18n/de.json +1 -0
- package/src/modules/data_sync/i18n/en.json +1 -0
- package/src/modules/data_sync/i18n/es.json +1 -0
- package/src/modules/data_sync/i18n/ko.json +1 -0
- package/src/modules/data_sync/i18n/pl.json +1 -0
- package/src/modules/data_sync/lib/adapter.ts +45 -0
- package/src/modules/data_sync/lib/start-controls.ts +89 -0
- package/src/modules/staff/AGENTS.md +769 -1
- package/src/modules/staff/acl.ts +9 -0
- package/src/modules/staff/ai-agents.ts +189 -0
- package/src/modules/staff/ai-tools/time-tracking-pack.ts +494 -0
- package/src/modules/staff/ai-tools/types.ts +82 -0
- package/src/modules/staff/ai-tools.ts +13 -0
- package/src/modules/staff/analytics.ts +113 -0
- package/src/modules/staff/api/guards.ts +85 -3
- package/src/modules/staff/api/leave-requests/accept/route.ts +0 -2
- package/src/modules/staff/api/leave-requests/reject/route.ts +0 -2
- package/src/modules/staff/api/portal/time-reports/[id]/route.ts +182 -0
- package/src/modules/staff/api/portal/time-reports/route.ts +270 -0
- package/src/modules/staff/api/team-members/self/route.ts +0 -2
- package/src/modules/staff/api/team-members/tags/assign/route.ts +0 -2
- package/src/modules/staff/api/team-members/tags/unassign/route.ts +0 -2
- package/src/modules/staff/api/timesheets/_shared/withTimesheetInterceptors.ts +292 -0
- package/src/modules/staff/api/timesheets/access-requests/route.ts +299 -0
- package/src/modules/staff/api/timesheets/my-projects/[projectId]/route.ts +15 -7
- package/src/modules/staff/api/timesheets/my-projects/route.ts +14 -1
- package/src/modules/staff/api/timesheets/my-work/myWorkAggregate.ts +90 -0
- package/src/modules/staff/api/timesheets/my-work/route.ts +475 -0
- package/src/modules/staff/api/timesheets/projects/kpis/route.ts +15 -2
- package/src/modules/staff/api/timesheets/reports/[id]/close/route.ts +203 -0
- package/src/modules/staff/api/timesheets/reports/[id]/export/route.ts +315 -0
- package/src/modules/staff/api/timesheets/reports/[id]/sheet/route.ts +220 -0
- package/src/modules/staff/api/timesheets/reports/[id]/unlock/route.ts +208 -0
- package/src/modules/staff/api/timesheets/reports/preview/route.ts +449 -0
- package/src/modules/staff/api/timesheets/reports/route.ts +386 -0
- package/src/modules/staff/api/timesheets/reports/shared.ts +121 -0
- package/src/modules/staff/api/timesheets/settings/reapply-rounding/route.ts +205 -0
- package/src/modules/staff/api/timesheets/settings/rounding-impact/route.ts +226 -0
- package/src/modules/staff/api/timesheets/settings/route.ts +242 -0
- package/src/modules/staff/api/timesheets/tags/access.ts +134 -0
- package/src/modules/staff/api/timesheets/tags/entry-assignments/route.ts +290 -0
- package/src/modules/staff/api/timesheets/tags/route.ts +177 -0
- package/src/modules/staff/api/timesheets/tags/task-assignments/route.ts +294 -0
- package/src/modules/staff/api/timesheets/task-statuses/route.ts +232 -0
- package/src/modules/staff/api/timesheets/tasks/[id]/comments/route.ts +532 -0
- package/src/modules/staff/api/timesheets/tasks/[id]/status/route.ts +271 -0
- package/src/modules/staff/api/timesheets/tasks/route.ts +443 -0
- package/src/modules/staff/api/timesheets/time-entries/[id]/duplicate/route.ts +306 -0
- package/src/modules/staff/api/timesheets/time-entries/[id]/segments/[segmentId]/route.ts +32 -10
- package/src/modules/staff/api/timesheets/time-entries/[id]/segments/route.ts +32 -17
- package/src/modules/staff/api/timesheets/time-entries/[id]/timer-start/route.ts +27 -6
- package/src/modules/staff/api/timesheets/time-entries/[id]/timer-stop/route.ts +36 -6
- package/src/modules/staff/api/timesheets/time-entries/bulk/route.ts +331 -34
- package/src/modules/staff/api/timesheets/time-entries/copy-day/route.ts +533 -0
- package/src/modules/staff/api/timesheets/time-entries/overlaps/route.ts +457 -0
- package/src/modules/staff/api/timesheets/time-entries/route.ts +378 -24
- package/src/modules/staff/api/timesheets/time-entries/start-timer/route.ts +31 -9
- package/src/modules/staff/api/timesheets/time-projects/[id]/change-currency/route.ts +246 -0
- package/src/modules/staff/api/timesheets/time-projects/[id]/employees/route.ts +62 -2
- package/src/modules/staff/api/timesheets/time-projects/route.ts +397 -22
- package/src/modules/staff/backend/staff/time-tracking/board/page.meta.ts +14 -0
- package/src/modules/staff/backend/staff/time-tracking/board/page.tsx +151 -0
- package/src/modules/staff/backend/staff/time-tracking/entries/page.meta.ts +14 -0
- package/src/modules/staff/backend/staff/time-tracking/entries/page.tsx +1229 -0
- package/src/modules/staff/backend/staff/time-tracking/page.meta.ts +11 -0
- package/src/modules/staff/backend/staff/time-tracking/page.tsx +823 -0
- package/src/modules/staff/backend/staff/time-tracking/projects/[id]/board/page.meta.ts +12 -0
- package/src/modules/staff/backend/staff/time-tracking/projects/[id]/board/page.tsx +81 -0
- package/src/modules/staff/backend/staff/time-tracking/projects/[id]/edit/page.meta.ts +12 -0
- package/src/modules/staff/backend/staff/time-tracking/projects/[id]/edit/page.tsx +275 -0
- package/src/modules/staff/backend/staff/time-tracking/projects/[id]/page.meta.ts +12 -0
- package/src/modules/staff/backend/staff/time-tracking/projects/[id]/page.tsx +1420 -0
- package/src/modules/staff/backend/staff/time-tracking/projects/create/page.meta.ts +12 -0
- package/src/modules/staff/backend/staff/time-tracking/projects/create/page.tsx +109 -0
- package/src/modules/staff/backend/staff/time-tracking/projects/page.meta.ts +15 -0
- package/src/modules/staff/backend/staff/time-tracking/projects/page.tsx +1254 -0
- package/src/modules/staff/backend/staff/time-tracking/projects/projectFormConfig.ts +466 -0
- package/src/modules/staff/backend/staff/time-tracking/reports/[id]/page.meta.ts +12 -0
- package/src/modules/staff/backend/staff/time-tracking/reports/[id]/page.tsx +632 -0
- package/src/modules/staff/backend/staff/time-tracking/reports/create/page.meta.ts +12 -0
- package/src/modules/staff/backend/staff/time-tracking/reports/create/page.tsx +867 -0
- package/src/modules/staff/backend/staff/time-tracking/reports/page.meta.ts +14 -0
- package/src/modules/staff/backend/staff/time-tracking/reports/page.tsx +246 -0
- package/src/modules/staff/backend/staff/time-tracking/settings/page.meta.ts +14 -0
- package/src/modules/staff/backend/staff/time-tracking/settings/page.tsx +701 -0
- package/src/modules/staff/backend/staff/time-tracking/timesheet/GridView.tsx +953 -0
- package/src/modules/staff/backend/staff/time-tracking/timesheet/page.meta.ts +14 -0
- package/src/modules/staff/backend/staff/time-tracking/timesheet/page.tsx +800 -0
- package/src/modules/staff/backend/staff/timesheets/page.meta.ts +6 -6
- package/src/modules/staff/backend/staff/timesheets/page.tsx +12 -1010
- package/src/modules/staff/backend/staff/timesheets/projects/[id]/edit/page.meta.ts +0 -6
- package/src/modules/staff/backend/staff/timesheets/projects/[id]/edit/page.tsx +4 -158
- package/src/modules/staff/backend/staff/timesheets/projects/[id]/page.meta.ts +0 -6
- package/src/modules/staff/backend/staff/timesheets/projects/[id]/page.tsx +4 -609
- package/src/modules/staff/backend/staff/timesheets/projects/create/page.meta.ts +0 -6
- package/src/modules/staff/backend/staff/timesheets/projects/create/page.tsx +3 -89
- package/src/modules/staff/backend/staff/timesheets/projects/page.meta.ts +2 -19
- package/src/modules/staff/backend/staff/timesheets/projects/page.tsx +3 -778
- package/src/modules/staff/ce.ts +63 -0
- package/src/modules/staff/cli.ts +207 -1
- package/src/modules/staff/commands/index.ts +5 -0
- package/src/modules/staff/commands/timesheets-entries.ts +1006 -28
- package/src/modules/staff/commands/timesheets-projects.ts +593 -7
- package/src/modules/staff/commands/timesheets-reports.ts +1329 -0
- package/src/modules/staff/commands/timesheets-tags.ts +1315 -0
- package/src/modules/staff/commands/timesheets-task-comments.ts +583 -0
- package/src/modules/staff/commands/timesheets-task-statuses.ts +889 -0
- package/src/modules/staff/commands/timesheets-tasks.ts +1121 -0
- package/src/modules/staff/data/enrichers.ts +675 -10
- package/src/modules/staff/data/entities.ts +494 -2
- package/src/modules/staff/data/extensions.ts +68 -0
- package/src/modules/staff/data/validators.ts +348 -3
- package/src/modules/staff/di.ts +96 -0
- package/src/modules/staff/events.payloads.ts +268 -0
- package/src/modules/staff/events.ts +87 -5
- package/src/modules/staff/extension-points.ts +308 -0
- package/src/modules/staff/frontend/[orgSlug]/portal/time-reports/[id]/page.meta.ts +10 -0
- package/src/modules/staff/frontend/[orgSlug]/portal/time-reports/[id]/page.tsx +225 -0
- package/src/modules/staff/frontend/[orgSlug]/portal/time-reports/page.meta.ts +17 -0
- package/src/modules/staff/frontend/[orgSlug]/portal/time-reports/page.tsx +182 -0
- package/src/modules/staff/i18n/de.json +899 -0
- package/src/modules/staff/i18n/en.json +899 -0
- package/src/modules/staff/i18n/es.json +899 -0
- package/src/modules/staff/i18n/ko.json +899 -0
- package/src/modules/staff/i18n/pl.json +899 -0
- package/src/modules/staff/lib/crud.ts +14 -3
- package/src/modules/staff/lib/time-tracking/access.ts +155 -0
- package/src/modules/staff/lib/time-tracking/billability.ts +68 -0
- package/src/modules/staff/lib/time-tracking/capacity.ts +124 -0
- package/src/modules/staff/lib/time-tracking/componentContracts.ts +26 -0
- package/src/modules/staff/lib/time-tracking/cost.ts +144 -0
- package/src/modules/staff/lib/time-tracking/duration.ts +68 -0
- package/src/modules/staff/lib/time-tracking/featureAccess.ts +115 -0
- package/src/modules/staff/lib/time-tracking/interval.ts +90 -0
- package/src/modules/staff/lib/time-tracking/migrateProjectCodes.ts +161 -0
- package/src/modules/staff/lib/time-tracking/moneyVisibility.ts +37 -0
- package/src/modules/staff/lib/time-tracking/overlap.ts +159 -0
- package/src/modules/staff/lib/time-tracking/portalRecipients.ts +76 -0
- package/src/modules/staff/lib/time-tracking/portalReports.ts +31 -0
- package/src/modules/staff/lib/time-tracking/projectCode.ts +221 -0
- package/src/modules/staff/lib/time-tracking/reapplyRounding.ts +313 -0
- package/src/modules/staff/lib/time-tracking/recalculationRunner.ts +118 -0
- package/src/modules/staff/lib/time-tracking/recalculations.ts +135 -0
- package/src/modules/staff/lib/time-tracking/registries/invoke.ts +122 -0
- package/src/modules/staff/lib/time-tracking/registries/registry.ts +124 -0
- package/src/modules/staff/lib/time-tracking/registries/scope.ts +56 -0
- package/src/modules/staff/lib/time-tracking/rollup.ts +59 -0
- package/src/modules/staff/lib/time-tracking/rounding.ts +126 -0
- package/src/modules/staff/lib/time-tracking/roundingImpact.ts +75 -0
- package/src/modules/staff/lib/time-tracking/settingKeys.ts +274 -0
- package/src/modules/staff/lib/time-tracking/settings.ts +168 -0
- package/src/modules/staff/lib/time-tracking/sqlInClause.ts +22 -0
- package/src/modules/staff/lib/time-tracking/timeEntrySources.ts +85 -0
- package/src/modules/staff/lib/time-tracking-ui/BoardFilterChips.tsx +360 -0
- package/src/modules/staff/lib/time-tracking-ui/CustomerPicker.tsx +427 -0
- package/src/modules/staff/lib/time-tracking-ui/DurationInput.tsx +192 -0
- package/src/modules/staff/lib/time-tracking-ui/EntryDetailsFields.tsx +224 -0
- package/src/modules/staff/lib/time-tracking-ui/EntryFilterBar.tsx +144 -0
- package/src/modules/staff/lib/time-tracking-ui/KanbanBoard.tsx +1065 -0
- package/src/modules/staff/lib/time-tracking-ui/KanbanCard.tsx +435 -0
- package/src/modules/staff/lib/time-tracking-ui/KanbanColumn.tsx +316 -0
- package/src/modules/staff/lib/time-tracking-ui/NewTaskDialog.tsx +291 -0
- package/src/modules/staff/lib/time-tracking-ui/NoProjectAccess.tsx +162 -0
- package/src/modules/staff/lib/time-tracking-ui/PeriodSelector.tsx +149 -0
- package/src/modules/staff/lib/time-tracking-ui/PhasePlaceholder.tsx +31 -0
- package/src/modules/staff/lib/time-tracking-ui/ProjectCodeField.tsx +230 -0
- package/src/modules/staff/lib/time-tracking-ui/ProjectCurrencyField.tsx +432 -0
- package/src/modules/staff/lib/time-tracking-ui/ProjectFormSections.tsx +323 -0
- package/src/modules/staff/lib/time-tracking-ui/ProjectTeamDrawer.tsx +930 -0
- package/src/modules/staff/lib/time-tracking-ui/ReportSheet.tsx +357 -0
- package/src/modules/staff/lib/time-tracking-ui/TagPicker.tsx +195 -0
- package/src/modules/staff/lib/time-tracking-ui/TaskBoardScreen.tsx +243 -0
- package/src/modules/staff/lib/time-tracking-ui/TaskCommentThread.tsx +137 -0
- package/src/modules/staff/lib/time-tracking-ui/TaskDrawer.tsx +1405 -0
- package/src/modules/staff/lib/time-tracking-ui/TaskListView.tsx +260 -0
- package/src/modules/staff/lib/time-tracking-ui/TaskPicker.tsx +435 -0
- package/src/modules/staff/lib/time-tracking-ui/TaskQuickLog.tsx +296 -0
- package/src/modules/staff/lib/time-tracking-ui/TimeEntriesSummaryFooter.tsx +97 -0
- package/src/modules/staff/lib/time-tracking-ui/TimeEntryDialog.tsx +1929 -0
- package/src/modules/staff/lib/time-tracking-ui/TimeEntryDurationCell.tsx +126 -0
- package/src/modules/staff/lib/time-tracking-ui/TimesheetCalendar.tsx +265 -0
- package/src/modules/staff/lib/time-tracking-ui/TimesheetPeriodFooter.tsx +78 -0
- package/src/modules/staff/lib/time-tracking-ui/TimesheetViewSwitch.tsx +70 -0
- package/src/modules/staff/lib/time-tracking-ui/boardDirectory.ts +231 -0
- package/src/modules/staff/lib/time-tracking-ui/boardFilters.ts +128 -0
- package/src/modules/staff/lib/time-tracking-ui/boardSummary.ts +20 -0
- package/src/modules/staff/lib/time-tracking-ui/kanbanBoardData.ts +228 -0
- package/src/modules/staff/lib/time-tracking-ui/projectTeamAssignment.ts +143 -0
- package/src/modules/staff/lib/time-tracking-ui/taskDrawerData.ts +194 -0
- package/src/modules/staff/lib/time-tracking-ui/timeEntryDialogState.ts +400 -0
- package/src/modules/staff/lib/time-tracking-ui/timeEntryListData.ts +271 -0
- package/src/modules/staff/lib/time-tracking-ui/timeTrackingSettingsForm.ts +168 -0
- package/src/modules/staff/lib/time-tracking-ui/timesheetData.ts +225 -0
- package/src/modules/staff/lib/time-tracking-ui/timesheetPeriod.ts +278 -0
- package/src/modules/staff/lib/time-tracking-ui/timesheetTargets.ts +93 -0
- package/src/modules/staff/lib/time-tracking-ui/useBoardFilters.ts +107 -0
- package/src/modules/staff/lib/time-tracking-ui/useTimesheetPreferences.ts +245 -0
- package/src/modules/staff/lib/timeTrackingSeeds.ts +1037 -0
- package/src/modules/staff/lib/timesheets/timeEntryCacheInvalidation.ts +11 -10
- package/src/modules/staff/lib/timesheets/timeEntryDecoration.ts +256 -0
- package/src/modules/staff/lib/timesheets-projects/budgetBurn.ts +60 -0
- package/src/modules/staff/lib/timesheets-projects/budgetThreshold.ts +135 -0
- package/src/modules/staff/lib/timesheets-projects/budgetThresholdState.ts +137 -0
- package/src/modules/staff/lib/timesheets-projects/computeProjectFinancials.ts +142 -0
- package/src/modules/staff/lib/timesheets-projects/reportSelection.ts +82 -0
- package/src/modules/staff/lib/timesheets-projects-ui/AssignMembersDialog.tsx +237 -0
- package/src/modules/staff/lib/timesheets-projects-ui/ProjectBudgetCell.tsx +33 -0
- package/src/modules/staff/lib/timesheets-projects-ui/ProjectCard.tsx +56 -1
- package/src/modules/staff/lib/timesheets-projects-ui/ProjectsBulkActionsBar.tsx +90 -0
- package/src/modules/staff/lib/timesheets-reports/buildReportSheet.ts +125 -0
- package/src/modules/staff/lib/timesheets-reports/loadReportData.ts +251 -0
- package/src/modules/staff/lib/timesheets-reports/pdf.ts +263 -0
- package/src/modules/staff/lib/timesheets-reports/reportApprovalPolicies.ts +137 -0
- package/src/modules/staff/lib/timesheets-reports/reportConfigData.ts +247 -0
- package/src/modules/staff/lib/timesheets-reports/reportConfigState.ts +89 -0
- package/src/modules/staff/lib/timesheets-reports/reportExport.ts +373 -0
- package/src/modules/staff/lib/timesheets-reports/reportExportFormats.ts +71 -0
- package/src/modules/staff/lib/timesheets-reports/reportGroupings.ts +153 -0
- package/src/modules/staff/lib/timesheets-reports/reportLabels.ts +23 -0
- package/src/modules/staff/lib/timesheets-reports/reportReference.ts +146 -0
- package/src/modules/staff/lib/timesheets-reports/reportRows.ts +89 -0
- package/src/modules/staff/lib/timesheets-reports/reportSheetData.ts +196 -0
- package/src/modules/staff/lib/timesheets-reports/reportTotals.ts +544 -0
- package/src/modules/staff/lib/timesheets-reports/xlsx.ts +207 -0
- package/src/modules/staff/lib/timesheets-tasks/computeTaskRollups.ts +238 -0
- package/src/modules/staff/lib/timesheets-tasks/defaultStatusTemplate.ts +90 -0
- package/src/modules/staff/lib/timesheets-tasks/seedProjectStatuses.ts +43 -0
- package/src/modules/staff/lib/timesheets-tasks/statusPositions.ts +132 -0
- package/src/modules/staff/lib/timesheets-tasks/statusSlug.ts +43 -0
- package/src/modules/staff/lib/timesheets-tasks/taskHierarchy.ts +99 -0
- package/src/modules/staff/lib/timesheets-tasks/taskHoursTotals.ts +42 -0
- package/src/modules/staff/lib/timesheets-tasks/taskReference.ts +108 -0
- package/src/modules/staff/lib/timesheets-ui/CreateProjectDialog.tsx +18 -4
- package/src/modules/staff/lib/timesheets-ui/ListView.tsx +504 -149
- package/src/modules/staff/lib/timesheets-ui/TimerBar.tsx +50 -2
- package/src/modules/staff/migrations/.snapshot-open-mercato.json +3244 -228
- package/src/modules/staff/migrations/Migration20260813073131_staff.ts +94 -0
- package/src/modules/staff/migrations/Migration20260824143357_staff.ts +17 -0
- package/src/modules/staff/notifications.client.ts +16 -0
- package/src/modules/staff/notifications.handlers.ts +88 -0
- package/src/modules/staff/notifications.ts +163 -0
- package/src/modules/staff/search.ts +191 -1
- package/src/modules/staff/setup.ts +22 -0
- package/src/modules/staff/subscribers/time-project-access-requested-notification.ts +95 -0
- package/src/modules/staff/subscribers/time-project-budget-threshold-notification.ts +226 -0
- package/src/modules/staff/subscribers/time-report-approved-notification.ts +116 -0
- package/src/modules/staff/subscribers/time-report-portal-broadcast.ts +120 -0
- package/src/modules/staff/translations.ts +17 -0
- package/src/modules/staff/widgets/components.ts +34 -0
- package/src/modules/staff/widgets/injection/timer-sidebar-indicator/widget.tsx +6 -5
- package/src/modules/staff/widgets/notifications/TimeProjectAccessRequestedRenderer.tsx +138 -0
- package/src/modules/staff/widgets/notifications/index.ts +1 -0
- package/src/modules/staff/workers/timesheets-reapply-rounding.ts +59 -0
- package/dist/modules/staff/backend/staff/timesheets/projects/projectFormConfig.js +0 -123
- package/dist/modules/staff/backend/staff/timesheets/projects/projectFormConfig.js.map +0 -7
- package/src/modules/staff/backend/staff/timesheets/projects/projectFormConfig.ts +0 -138
|
@@ -119,12 +119,37 @@
|
|
|
119
119
|
"staff.audit.teams.create": "Team erstellen",
|
|
120
120
|
"staff.audit.teams.delete": "Team löschen",
|
|
121
121
|
"staff.audit.teams.update": "Team aktualisieren",
|
|
122
|
+
"staff.audit.timesheets.reports.close": "Bericht schließen und sperren",
|
|
123
|
+
"staff.audit.timesheets.reports.create": "Bericht erstellen",
|
|
124
|
+
"staff.audit.timesheets.reports.delete": "Bericht löschen",
|
|
125
|
+
"staff.audit.timesheets.reports.unlock": "Berichtseinträge entsperren",
|
|
126
|
+
"staff.audit.timesheets.reports.update": "Bericht aktualisieren",
|
|
127
|
+
"staff.audit.timesheets.tags.assign_entry": "Zeiteintrags-Tags zuweisen",
|
|
128
|
+
"staff.audit.timesheets.tags.assign_task": "Aufgaben-Tags zuweisen",
|
|
129
|
+
"staff.audit.timesheets.tags.create": "Tag erstellen",
|
|
130
|
+
"staff.audit.timesheets.tags.delete": "Tag löschen",
|
|
131
|
+
"staff.audit.timesheets.tags.unassign_entry": "Zeiteintrags-Tags entfernen",
|
|
132
|
+
"staff.audit.timesheets.tags.unassign_task": "Aufgaben-Tags entfernen",
|
|
133
|
+
"staff.audit.timesheets.tags.update": "Tag aktualisieren",
|
|
134
|
+
"staff.audit.timesheets.task_comments.create": "Aufgabenkommentar erstellen",
|
|
135
|
+
"staff.audit.timesheets.task_comments.delete": "Aufgabenkommentar löschen",
|
|
136
|
+
"staff.audit.timesheets.task_comments.update": "Aufgabenkommentar aktualisieren",
|
|
137
|
+
"staff.audit.timesheets.task_statuses.create": "Aufgabenstatus erstellen",
|
|
138
|
+
"staff.audit.timesheets.task_statuses.delete": "Aufgabenstatus löschen",
|
|
139
|
+
"staff.audit.timesheets.task_statuses.reorder": "Aufgabenstatus neu sortieren",
|
|
140
|
+
"staff.audit.timesheets.task_statuses.update": "Aufgabenstatus aktualisieren",
|
|
141
|
+
"staff.audit.timesheets.tasks.create": "Aufgabe erstellen",
|
|
142
|
+
"staff.audit.timesheets.tasks.delete": "Aufgabe löschen",
|
|
143
|
+
"staff.audit.timesheets.tasks.statusChange": "Aufgabe verschieben",
|
|
144
|
+
"staff.audit.timesheets.tasks.update": "Aufgabe aktualisieren",
|
|
122
145
|
"staff.audit.timesheets.time_entries.create": "Zeiteintrag erstellen",
|
|
123
146
|
"staff.audit.timesheets.time_entries.delete": "Zeiteintrag löschen",
|
|
124
147
|
"staff.audit.timesheets.time_entries.startTimer": "Timer starten",
|
|
125
148
|
"staff.audit.timesheets.time_entries.update": "Zeiteintrag aktualisieren",
|
|
126
149
|
"staff.audit.timesheets.time_project_members.assign": "Zeitprojektmitglied zuweisen",
|
|
127
150
|
"staff.audit.timesheets.time_project_members.unassign": "Zeitprojektmitglied entfernen",
|
|
151
|
+
"staff.audit.timesheets.time_project_members.update": "Zeitprojektmitglied aktualisieren",
|
|
152
|
+
"staff.audit.timesheets.time_projects.change_currency": "Währung des Zeitprojekts ändern",
|
|
128
153
|
"staff.audit.timesheets.time_projects.create": "Zeitprojekt erstellen",
|
|
129
154
|
"staff.audit.timesheets.time_projects.delete": "Zeitprojekt löschen",
|
|
130
155
|
"staff.audit.timesheets.time_projects.update": "Zeitprojekt aktualisieren",
|
|
@@ -212,7 +237,13 @@
|
|
|
212
237
|
"staff.availabilityRuleSets.tabs.availability": "Verfügbarkeit",
|
|
213
238
|
"staff.availabilityRuleSets.tabs.details": "Details",
|
|
214
239
|
"staff.availabilityRuleSets.tabs.label": "Zeitplanbereiche",
|
|
240
|
+
"staff.errors.customerAccountNotLinked": "Dieses Portalkonto ist keinem Kunden zugeordnet.",
|
|
241
|
+
"staff.errors.forbidden": "Zugriff verweigert",
|
|
242
|
+
"staff.errors.internal": "Interner Serverfehler",
|
|
243
|
+
"staff.errors.invalidInput": "Ungültige Anfrage",
|
|
244
|
+
"staff.errors.invalid_request": "Ungültige Anfrage",
|
|
215
245
|
"staff.errors.missingScope": "Mandanten- oder Organisationskontext fehlt.",
|
|
246
|
+
"staff.errors.notFound": "Nicht gefunden",
|
|
216
247
|
"staff.errors.unauthorized": "Nicht autorisiert",
|
|
217
248
|
"staff.leaveRequests.actions.accept": "Genehmigen",
|
|
218
249
|
"staff.leaveRequests.actions.add": "Neuer Antrag",
|
|
@@ -309,6 +340,45 @@
|
|
|
309
340
|
"staff.notifications.leaveRequest.pending.title": "Urlaubsantrag ausstehend",
|
|
310
341
|
"staff.notifications.leaveRequest.rejected.body": "Ihr Urlaubsantrag vom {startDate} bis {endDate} wurde abgelehnt{reason, select, other { - {reason}}}",
|
|
311
342
|
"staff.notifications.leaveRequest.rejected.title": "Urlaubsantrag abgelehnt",
|
|
343
|
+
"staff.notifications.timeEntryTimer.runningLong.body": "Ein Timer läuft seit langer Zeit. Stoppen Sie ihn, wenn die Arbeit beendet ist.",
|
|
344
|
+
"staff.notifications.timeEntryTimer.runningLong.title": "Timer läuft noch",
|
|
345
|
+
"staff.notifications.timeProjectAccess.actions.openTeam": "Projektteam öffnen",
|
|
346
|
+
"staff.notifications.timeProjectAccess.renderer.generalRequest": "Kein Projekt ausgewählt",
|
|
347
|
+
"staff.notifications.timeProjectAccess.renderer.project": "Projekt",
|
|
348
|
+
"staff.notifications.timeProjectAccess.requested.body": "{requesterName} bittet um Zugriff auf die Zeiterfassungsprojekte.",
|
|
349
|
+
"staff.notifications.timeProjectAccess.requested.title": "Projektzugriff angefragt",
|
|
350
|
+
"staff.notifications.timeProjectBudget.actions.openProject": "Projekt öffnen",
|
|
351
|
+
"staff.notifications.timeProjectBudget.thresholdReached.body": "{projectName} hat {percent}% des Budgets erreicht (Warnung bei {thresholdPercent}%).",
|
|
352
|
+
"staff.notifications.timeProjectBudget.thresholdReached.title": "Budgetschwelle des Projekts erreicht",
|
|
353
|
+
"staff.notifications.timeReport.actions.openReport": "Bericht öffnen",
|
|
354
|
+
"staff.notifications.timeReport.actions.reviewReport": "Bericht prüfen",
|
|
355
|
+
"staff.notifications.timeReport.approved.body": "Bericht {reference} ({title}) wurde abgeschlossen.",
|
|
356
|
+
"staff.notifications.timeReport.approved.title": "Zeitbericht abgeschlossen",
|
|
357
|
+
"staff.notifications.timeReport.readyForApproval.body": "Bericht {reference} wartet auf Ihre Freigabe.",
|
|
358
|
+
"staff.notifications.timeReport.readyForApproval.title": "Zeitbericht zur Freigabe bereit",
|
|
359
|
+
"staff.notifications.timesheet.actions.openTimesheet": "Zeiterfassung öffnen",
|
|
360
|
+
"staff.notifications.timesheet.periodIncomplete.body": "An einigen Arbeitstagen zwischen {periodFrom} und {periodTo} wurde keine Zeit erfasst.",
|
|
361
|
+
"staff.notifications.timesheet.periodIncomplete.title": "Zeiterfassungszeitraum unvollständig",
|
|
362
|
+
"staff.portal.timeReports.backToList": "Alle Zeitberichte",
|
|
363
|
+
"staff.portal.timeReports.billableHours": "Abrechenbare Stunden",
|
|
364
|
+
"staff.portal.timeReports.detailTitle": "Zeitbericht",
|
|
365
|
+
"staff.portal.timeReports.emptyDescription": "Ein Bericht erscheint hier, sobald der zugehörige Zeitraum abgeschlossen ist.",
|
|
366
|
+
"staff.portal.timeReports.emptyTitle": "Noch keine Zeitberichte",
|
|
367
|
+
"staff.portal.timeReports.listDescription": "Geleistete Stunden in Ihren Projekten, wie zum Abschluss jedes Zeitraums berichtet.",
|
|
368
|
+
"staff.portal.timeReports.listTitle": "Zeitberichte",
|
|
369
|
+
"staff.portal.timeReports.loadFailed": "Ihre Zeitberichte konnten nicht geladen werden.",
|
|
370
|
+
"staff.portal.timeReports.nav": "Zeitberichte",
|
|
371
|
+
"staff.portal.timeReports.next": "Weiter",
|
|
372
|
+
"staff.portal.timeReports.nonBillableHours": "Nicht abrechenbare Stunden",
|
|
373
|
+
"staff.portal.timeReports.notFoundDescription": "Dieser Bericht existiert nicht oder gehört nicht zu Ihrem Konto.",
|
|
374
|
+
"staff.portal.timeReports.notFoundTitle": "Bericht nicht verfügbar",
|
|
375
|
+
"staff.portal.timeReports.pageLabel": "Seite",
|
|
376
|
+
"staff.portal.timeReports.previous": "Zurück",
|
|
377
|
+
"staff.portal.timeReports.projectColumn": "Projekt",
|
|
378
|
+
"staff.portal.timeReports.projectUnassigned": "Nicht zugeordnet",
|
|
379
|
+
"staff.portal.timeReports.projectsEmpty": "Für diesen Zeitraum liegt keine Projektaufschlüsselung vor.",
|
|
380
|
+
"staff.portal.timeReports.projectsTitle": "Nach Projekt",
|
|
381
|
+
"staff.portal.timeReports.totalsTitle": "Summen",
|
|
312
382
|
"staff.resourceTypes.actions.add": "Ressourcentyp hinzufügen",
|
|
313
383
|
"staff.resourceTypes.actions.delete": "Löschen",
|
|
314
384
|
"staff.resourceTypes.actions.deleteConfirm": "Ressourcentyp \"{{name}}\" löschen?",
|
|
@@ -426,7 +496,11 @@
|
|
|
426
496
|
"staff.search.badge.team": "Team",
|
|
427
497
|
"staff.search.badge.teamMember": "Teammitglied",
|
|
428
498
|
"staff.search.badge.teamRole": "Teamrolle",
|
|
499
|
+
"staff.search.badge.timeEntry": "Zeiteintrag",
|
|
429
500
|
"staff.search.badge.timeProject": "Projekt",
|
|
501
|
+
"staff.search.badge.timeReport": "Bericht",
|
|
502
|
+
"staff.search.badge.timeTag": "Tag",
|
|
503
|
+
"staff.search.badge.timeTask": "Aufgabe",
|
|
430
504
|
"staff.search.service.maxAttendees": "Max. {{count}}",
|
|
431
505
|
"staff.search.status.active": "Aktiv",
|
|
432
506
|
"staff.search.status.inactive": "Inaktiv",
|
|
@@ -936,10 +1010,784 @@
|
|
|
936
1010
|
"staff.teams.tabs.details": "Details",
|
|
937
1011
|
"staff.teams.tabs.label": "Teamabschnitte",
|
|
938
1012
|
"staff.teams.tabs.members": "Teammitglieder",
|
|
1013
|
+
"staff.time_tracking.access.denied.back": "Zurück zu „Meine Arbeit“",
|
|
1014
|
+
"staff.time_tracking.access.denied.description": "Projektzugriff wird von einer Teamleitung einzeln vergeben. Falls Sie zuvor Zugriff hatten, wurde er möglicherweise entzogen — Ihre bisherigen Zeiteinträge bleiben gespeichert.",
|
|
1015
|
+
"staff.time_tracking.access.denied.request": "Zugriff anfragen",
|
|
1016
|
+
"staff.time_tracking.access.denied.title": "Sie haben keinen Zugriff auf dieses Projekt",
|
|
1017
|
+
"staff.time_tracking.access.empty.description": "Projektzugriff vergibt die Teamleitung. Sobald Sie einem Projekt hinzugefügt werden, erscheint es hier sofort — ohne erneute Anmeldung.",
|
|
1018
|
+
"staff.time_tracking.access.empty.request": "Teamleitung um Zugriff bitten",
|
|
1019
|
+
"staff.time_tracking.access.empty.title": "Ihnen sind noch keine Projekte zugewiesen",
|
|
1020
|
+
"staff.time_tracking.access.request.error": "Die Zugriffsanfrage konnte nicht gesendet werden.",
|
|
1021
|
+
"staff.time_tracking.access.request.sent": "Anfrage gesendet",
|
|
1022
|
+
"staff.time_tracking.access.request.success": "Ihre Anfrage wurde an die Teamleitungen gesendet.",
|
|
1023
|
+
"staff.time_tracking.board.addStatus.cta": "Status hinzufügen",
|
|
1024
|
+
"staff.time_tracking.board.addStatus.error": "Die Spalte konnte nicht hinzugefügt werden.",
|
|
1025
|
+
"staff.time_tracking.board.addStatus.placeholder": "Spaltenname",
|
|
1026
|
+
"staff.time_tracking.board.backToProject": "Zurück zum Projekt",
|
|
1027
|
+
"staff.time_tracking.board.card.addTime": "Zeit erfassen",
|
|
1028
|
+
"staff.time_tracking.board.card.addTimeAria": "Zeit erfassen für {title}",
|
|
1029
|
+
"staff.time_tracking.board.card.aria": "Aufgabe: {title}",
|
|
1030
|
+
"staff.time_tracking.board.card.assignee": "Zugewiesen an {name}",
|
|
1031
|
+
"staff.time_tracking.board.card.moveTo.aria": "Verschieben von {title} in eine andere Spalte",
|
|
1032
|
+
"staff.time_tracking.board.card.moveTo.cta": "Verschieben",
|
|
1033
|
+
"staff.time_tracking.board.card.moveTo.menu": "{title} verschieben nach",
|
|
1034
|
+
"staff.time_tracking.board.card.startTimer": "Start",
|
|
1035
|
+
"staff.time_tracking.board.card.startTimerAria": "Start des Timers für {title}",
|
|
1036
|
+
"staff.time_tracking.board.card.stopTimer": "Stopp",
|
|
1037
|
+
"staff.time_tracking.board.card.stopTimerAria": "Stopp des Timers für {title}",
|
|
1038
|
+
"staff.time_tracking.board.card.subtasks": "{done}/{total} Teilaufgaben",
|
|
1039
|
+
"staff.time_tracking.board.card.timerRunning": "Timer",
|
|
1040
|
+
"staff.time_tracking.board.card.unassigned": "Nicht zugewiesen",
|
|
1041
|
+
"staff.time_tracking.board.dnd.dragCancel": "Das Verschieben der Aufgabe {task} wurde abgebrochen.",
|
|
1042
|
+
"staff.time_tracking.board.dnd.dragEnd": "Die Aufgabe {task} wurde in der Spalte {column} abgelegt.",
|
|
1043
|
+
"staff.time_tracking.board.dnd.dragEndOutside": "Die Aufgabe {task} wurde außerhalb der Spalten abgelegt.",
|
|
1044
|
+
"staff.time_tracking.board.dnd.dragOver": "Die Aufgabe {task} befindet sich über der Spalte {column}.",
|
|
1045
|
+
"staff.time_tracking.board.dnd.dragOverNothing": "Die Aufgabe {task} befindet sich über keiner Spalte.",
|
|
1046
|
+
"staff.time_tracking.board.dnd.dragStart": "Die Aufgabe {task} wurde aufgenommen.",
|
|
1047
|
+
"staff.time_tracking.board.dnd.instructions": "Ziehen Sie eine Karte mit dem Zeiger, um sie zwischen Spalten zu verschieben. Mit der Tastatur öffnen Sie eine Karte mit der Eingabetaste oder wählen über die Schaltfläche „Verschieben“ in den Kartenaktionen eine Zielspalte.",
|
|
1048
|
+
"staff.time_tracking.board.empty.description": "Ein Team Leader konfiguriert die Spalten der Tafel pro Projekt.",
|
|
1049
|
+
"staff.time_tracking.board.empty.title": "Dieses Projekt hat noch keine Spalten",
|
|
1050
|
+
"staff.time_tracking.board.filters.add": "Filter hinzufügen",
|
|
1051
|
+
"staff.time_tracking.board.filters.assignedToMe": "Mir zugewiesen",
|
|
1052
|
+
"staff.time_tracking.board.filters.assignee": "Zuständig",
|
|
1053
|
+
"staff.time_tracking.board.filters.clear": "Filter zurücksetzen",
|
|
1054
|
+
"staff.time_tracking.board.filters.cta": "Filter",
|
|
1055
|
+
"staff.time_tracking.board.filters.noOptions": "Es gibt noch nichts zu filtern.",
|
|
1056
|
+
"staff.time_tracking.board.filters.remove": "Filter entfernen: {label}",
|
|
1057
|
+
"staff.time_tracking.board.filters.status": "Status",
|
|
1058
|
+
"staff.time_tracking.board.filters.tag": "Tag",
|
|
1059
|
+
"staff.time_tracking.board.list.caption": "Aufgaben",
|
|
1060
|
+
"staff.time_tracking.board.list.columns.assignee": "Zuständig",
|
|
1061
|
+
"staff.time_tracking.board.list.columns.hours": "Erfasst",
|
|
1062
|
+
"staff.time_tracking.board.list.columns.reference": "Nr.",
|
|
1063
|
+
"staff.time_tracking.board.list.columns.status": "Status",
|
|
1064
|
+
"staff.time_tracking.board.list.columns.tags": "Tags",
|
|
1065
|
+
"staff.time_tracking.board.list.columns.title": "Aufgabe",
|
|
1066
|
+
"staff.time_tracking.board.list.empty.description": "Entfernen Sie einen Filter, um mehr zu sehen.",
|
|
1067
|
+
"staff.time_tracking.board.list.empty.title": "Keine Aufgabe passt zu diesen Filtern",
|
|
1068
|
+
"staff.time_tracking.board.loadError": "Die Tafel konnte nicht geladen werden.",
|
|
1069
|
+
"staff.time_tracking.board.loadMore": "Mehr anzeigen ({remaining})",
|
|
1070
|
+
"staff.time_tracking.board.loading": "Tafel wird geladen…",
|
|
1071
|
+
"staff.time_tracking.board.move.error": "Die Aufgabe konnte nicht verschoben werden.",
|
|
1072
|
+
"staff.time_tracking.board.move.retry": "Erneut versuchen",
|
|
1073
|
+
"staff.time_tracking.board.move.rolledBack": "Die Aufgabe wurde zurückgesetzt — die Änderung wurde nicht gespeichert.",
|
|
1074
|
+
"staff.time_tracking.board.newTask.cancel": "Abbrechen",
|
|
1075
|
+
"staff.time_tracking.board.newTask.cta": "Neue Aufgabe",
|
|
1076
|
+
"staff.time_tracking.board.newTask.error": "Die Aufgabe konnte nicht erstellt werden.",
|
|
1077
|
+
"staff.time_tracking.board.newTask.status": "Status",
|
|
1078
|
+
"staff.time_tracking.board.newTask.submit": "Aufgabe erstellen",
|
|
1079
|
+
"staff.time_tracking.board.newTask.title": "Neue Aufgabe",
|
|
1080
|
+
"staff.time_tracking.board.newTask.titleLabel": "Aufgabentitel",
|
|
1081
|
+
"staff.time_tracking.board.noProject.description": "Die Tafel braucht ein Projekt. Bitte einen Team Leader um Zugriff.",
|
|
1082
|
+
"staff.time_tracking.board.noProject.title": "Kein Projekt vorhanden",
|
|
1083
|
+
"staff.time_tracking.board.projectPicker": "Projekt",
|
|
1084
|
+
"staff.time_tracking.board.projectsLoadError": "Ihre Projekte konnten nicht geladen werden.",
|
|
1085
|
+
"staff.time_tracking.board.quickAdd.cta": "Aufgabe schnell hinzufügen",
|
|
1086
|
+
"staff.time_tracking.board.quickAdd.error": "Die Aufgabe konnte nicht erstellt werden.",
|
|
1087
|
+
"staff.time_tracking.board.quickAdd.label": "Aufgabe schnell hinzufügen",
|
|
1088
|
+
"staff.time_tracking.board.quickAdd.placeholder": "Aufgabentitel",
|
|
1089
|
+
"staff.time_tracking.board.reload": "Erneut versuchen",
|
|
1090
|
+
"staff.time_tracking.board.summary.logged": "{hours} erfasst",
|
|
1091
|
+
"staff.time_tracking.board.summary.tasks": "{count} Aufgaben",
|
|
1092
|
+
"staff.time_tracking.board.timer.linkWarning": "Der Timer läuft, ist aber noch nicht mit dieser Aufgabe verknüpft.",
|
|
1093
|
+
"staff.time_tracking.board.timer.startError": "Der Timer konnte nicht gestartet werden.",
|
|
1094
|
+
"staff.time_tracking.board.timer.stopError": "Der Timer konnte nicht gestoppt werden.",
|
|
1095
|
+
"staff.time_tracking.board.view.board": "Board",
|
|
1096
|
+
"staff.time_tracking.board.view.label": "Ansicht",
|
|
1097
|
+
"staff.time_tracking.board.view.list": "Liste",
|
|
1098
|
+
"staff.time_tracking.duration.hint": "Versteht 1h 40m, 1.5h, 90m, 1:40.",
|
|
1099
|
+
"staff.time_tracking.duration.invalid": "Dieses Format verstehe ich nicht. Versuche 1h 40m, 1.5h, 90m oder 1:40.",
|
|
1100
|
+
"staff.time_tracking.duration.placeholder": "1h 30m",
|
|
1101
|
+
"staff.time_tracking.entries.actions.add": "Eintrag hinzufügen",
|
|
1102
|
+
"staff.time_tracking.entries.actions.copyDay": "Gestrigen Tag kopieren",
|
|
1103
|
+
"staff.time_tracking.entries.actions.delete": "Löschen",
|
|
1104
|
+
"staff.time_tracking.entries.actions.duplicate": "Duplizieren",
|
|
1105
|
+
"staff.time_tracking.entries.actions.refresh": "Aktualisieren",
|
|
1106
|
+
"staff.time_tracking.entries.actions.showReport": "Bericht anzeigen",
|
|
1107
|
+
"staff.time_tracking.entries.badges.locked": "gesperrt",
|
|
1108
|
+
"staff.time_tracking.entries.badges.nonBillable": "nicht abrechenbar",
|
|
1109
|
+
"staff.time_tracking.entries.badges.rateOverride": "{amount}/Std.",
|
|
1110
|
+
"staff.time_tracking.entries.columns.clock": "Uhrzeit",
|
|
1111
|
+
"staff.time_tracking.entries.columns.cost": "Kosten",
|
|
1112
|
+
"staff.time_tracking.entries.columns.date": "Datum",
|
|
1113
|
+
"staff.time_tracking.entries.columns.duration": "Zeit",
|
|
1114
|
+
"staff.time_tracking.entries.columns.project": "Projekt",
|
|
1115
|
+
"staff.time_tracking.entries.columns.task": "Aufgabe / Beschreibung",
|
|
1116
|
+
"staff.time_tracking.entries.copyDay.confirmDuplicates": "Kopien trotzdem hinzufügen",
|
|
1117
|
+
"staff.time_tracking.entries.copyDay.conflict": "Heute gibt es bereits {count} Einträge. Die Kopien von gestern trotzdem hinzufügen?",
|
|
1118
|
+
"staff.time_tracking.entries.copyDay.nothing": "Gestern gibt es keine Einträge zum Kopieren.",
|
|
1119
|
+
"staff.time_tracking.entries.copyDay.skipped": "{count} Einträge wurden übersprungen, weil sie gesperrt sind.",
|
|
1120
|
+
"staff.time_tracking.entries.copyDay.success": "{count} Einträge als Entwürfe kopiert — bitte prüfen.",
|
|
1121
|
+
"staff.time_tracking.entries.empty": "Keine Zeiteinträge in diesem Zeitraum.",
|
|
1122
|
+
"staff.time_tracking.entries.errors.copyDay": "Der Tag konnte nicht kopiert werden.",
|
|
1123
|
+
"staff.time_tracking.entries.errors.delete": "Der Zeiteintrag konnte nicht gelöscht werden.",
|
|
1124
|
+
"staff.time_tracking.entries.errors.duplicate": "Der Zeiteintrag konnte nicht dupliziert werden.",
|
|
1125
|
+
"staff.time_tracking.entries.errors.entriesLocked": "Einige dieser Zeiteinträge sind in einem abgeschlossenen Bericht gesperrt und können nicht geändert werden. Heben Sie zuerst die Sperre des Berichts auf.",
|
|
1126
|
+
"staff.time_tracking.entries.errors.entryLocked": "Dieser Zeiteintrag ist in einem abgeschlossenen Bericht gesperrt und kann nicht geändert werden. Heben Sie zuerst die Sperre des Berichts auf.",
|
|
1127
|
+
"staff.time_tracking.entries.errors.load": "Die Zeiteinträge konnten nicht geladen werden.",
|
|
1128
|
+
"staff.time_tracking.entries.errors.save": "Der Zeiteintrag konnte nicht gespeichert werden.",
|
|
1129
|
+
"staff.time_tracking.entries.filters.billable": "Abrechenbar",
|
|
1130
|
+
"staff.time_tracking.entries.filters.billableNo": "Nur nicht abrechenbar",
|
|
1131
|
+
"staff.time_tracking.entries.filters.billableYes": "Nur abrechenbar",
|
|
1132
|
+
"staff.time_tracking.entries.filters.clearAll": "Alle löschen",
|
|
1133
|
+
"staff.time_tracking.entries.filters.customer": "Kunde",
|
|
1134
|
+
"staff.time_tracking.entries.filters.entry": "Eintrag",
|
|
1135
|
+
"staff.time_tracking.entries.filters.entrySelection": "Einträge: {count}",
|
|
1136
|
+
"staff.time_tracking.entries.filters.locked": "Berichtsstatus",
|
|
1137
|
+
"staff.time_tracking.entries.filters.lockedNo": "Noch nicht berichtet",
|
|
1138
|
+
"staff.time_tracking.entries.filters.lockedYes": "In einem Bericht gesperrt",
|
|
1139
|
+
"staff.time_tracking.entries.filters.period": "Zeitraum",
|
|
1140
|
+
"staff.time_tracking.entries.filters.person": "Person",
|
|
1141
|
+
"staff.time_tracking.entries.filters.project": "Projekt",
|
|
1142
|
+
"staff.time_tracking.entries.filters.remove": "Filter {name} entfernen",
|
|
1143
|
+
"staff.time_tracking.entries.filters.tag": "Tag",
|
|
1144
|
+
"staff.time_tracking.entries.filters.task": "Aufgabe",
|
|
1145
|
+
"staff.time_tracking.entries.filters.text": "Beschreibung enthält",
|
|
1146
|
+
"staff.time_tracking.entries.messages.deleted": "„{name}“ ({duration}) gelöscht. Mit „Rückgängig“ wiederherstellen.",
|
|
1147
|
+
"staff.time_tracking.entries.messages.duplicated": "Eintrag dupliziert.",
|
|
1148
|
+
"staff.time_tracking.entries.presets.mineWeek": "Meine, diese Woche",
|
|
1149
|
+
"staff.time_tracking.entries.presets.nonBillable": "Nicht abrechenbar",
|
|
1150
|
+
"staff.time_tracking.entries.presets.thisMonth": "Dieser Monat",
|
|
1151
|
+
"staff.time_tracking.entries.presets.unbilled": "Nicht abgerechnet",
|
|
1152
|
+
"staff.time_tracking.entries.readOnlyNotice": "Sie können diese Einträge ansehen, aber nicht ändern.",
|
|
1153
|
+
"staff.time_tracking.entries.source.kiosk": "Kiosk",
|
|
1154
|
+
"staff.time_tracking.entries.source.manual": "Manuell",
|
|
1155
|
+
"staff.time_tracking.entries.source.mobile": "Mobil",
|
|
1156
|
+
"staff.time_tracking.entries.source.timer": "Timer",
|
|
1157
|
+
"staff.time_tracking.entries.summary.count": "Gesamt ({visible} von {total} Einträgen)",
|
|
1158
|
+
"staff.time_tracking.entries.summary.multiCurrencyHint": "Diese Einträge werden in mehreren Währungen abgerechnet und werden daher getrennt statt summiert angezeigt.",
|
|
1159
|
+
"staff.time_tracking.entries.table.durationAria": "Dauer des Eintrags",
|
|
1160
|
+
"staff.time_tracking.entries.table.noTask": "Keine Aufgabe",
|
|
1161
|
+
"staff.time_tracking.entries.table.selectAll": "Alle Einträge auswählen",
|
|
1162
|
+
"staff.time_tracking.entries.table.selectRow": "Eintrag auswählen",
|
|
1163
|
+
"staff.time_tracking.entries.title": "Zeiteinträge",
|
|
1164
|
+
"staff.time_tracking.entryDialog.addTag": "Tag hinzufügen",
|
|
1165
|
+
"staff.time_tracking.entryDialog.billable": "Abrechenbar",
|
|
1166
|
+
"staff.time_tracking.entryDialog.billableHint": "Für dieses Projekt standardmäßig aktiv.",
|
|
1167
|
+
"staff.time_tracking.entryDialog.cancel": "Abbrechen",
|
|
1168
|
+
"staff.time_tracking.entryDialog.close": "Schließen",
|
|
1169
|
+
"staff.time_tracking.entryDialog.computed": "berechnet",
|
|
1170
|
+
"staff.time_tracking.entryDialog.cost": "Kosten",
|
|
1171
|
+
"staff.time_tracking.entryDialog.costHint": "{raw} gerundet auf {rounded} × {rate}",
|
|
1172
|
+
"staff.time_tracking.entryDialog.createTag": "„{name}“ erstellen",
|
|
1173
|
+
"staff.time_tracking.entryDialog.creator": "Autor des Eintrags: {name} — automatisch zugewiesen und nicht änderbar.",
|
|
1174
|
+
"staff.time_tracking.entryDialog.creatorUnknown": "Der Autor des Eintrags wird automatisch zugewiesen und ist nicht änderbar.",
|
|
1175
|
+
"staff.time_tracking.entryDialog.date": "Datum",
|
|
1176
|
+
"staff.time_tracking.entryDialog.description": "Beschreibung",
|
|
1177
|
+
"staff.time_tracking.entryDialog.discard.cancel": "Weiter bearbeiten",
|
|
1178
|
+
"staff.time_tracking.entryDialog.discard.confirm": "Verwerfen",
|
|
1179
|
+
"staff.time_tracking.entryDialog.discard.text": "Er wurde noch nicht gespeichert. Wenn Sie jetzt schließen, gehen Ihre Eingaben verloren.",
|
|
1180
|
+
"staff.time_tracking.entryDialog.discard.title": "Diesen Zeiteintrag verwerfen?",
|
|
1181
|
+
"staff.time_tracking.entryDialog.duration": "Dauer",
|
|
1182
|
+
"staff.time_tracking.entryDialog.end": "Ende",
|
|
1183
|
+
"staff.time_tracking.entryDialog.endHint": "Ändere dieses Feld und die Dauer wird neu berechnet.",
|
|
1184
|
+
"staff.time_tracking.entryDialog.errors.createTag": "Der Tag konnte nicht erstellt werden.",
|
|
1185
|
+
"staff.time_tracking.entryDialog.errors.durationRequired": "Gib an, wie lange die Arbeit gedauert hat.",
|
|
1186
|
+
"staff.time_tracking.entryDialog.errors.load": "Der Zeiteintrag konnte nicht geladen werden.",
|
|
1187
|
+
"staff.time_tracking.entryDialog.errors.noStaffMember": "Dein Konto ist mit keinem Mitarbeiter verknüpft, daher kann keine Zeit erfasst werden.",
|
|
1188
|
+
"staff.time_tracking.entryDialog.errors.notFound": "Zeiteintrag nicht gefunden oder nicht zugänglich.",
|
|
1189
|
+
"staff.time_tracking.entryDialog.errors.save": "Der Zeiteintrag konnte nicht gespeichert werden.",
|
|
1190
|
+
"staff.time_tracking.entryDialog.errors.taskRequired": "Wähle die Aufgabe, zu der diese Zeit gehört.",
|
|
1191
|
+
"staff.time_tracking.entryDialog.loading": "Zeiteintrag wird geladen…",
|
|
1192
|
+
"staff.time_tracking.entryDialog.locked.badge": "Gesperrt",
|
|
1193
|
+
"staff.time_tracking.entryDialog.locked.notice": "Dieser Eintrag ist in einem Bericht abgeschlossen und kann nicht mehr bearbeitet werden.",
|
|
1194
|
+
"staff.time_tracking.entryDialog.locked.showReport": "Bericht anzeigen",
|
|
1195
|
+
"staff.time_tracking.entryDialog.midnight": "Dieser Eintrag endet am nächsten Tag, {date}.",
|
|
1196
|
+
"staff.time_tracking.entryDialog.moneyHidden": "Sätze und Kosten sind ausgeblendet — deine Berechtigungen umfassen keine Beträge bei Zeiteinträgen.",
|
|
1197
|
+
"staff.time_tracking.entryDialog.noTags": "Kein passender Tag",
|
|
1198
|
+
"staff.time_tracking.entryDialog.overlap.body": "{start} – {end} · „{task}” · {project} ({duration}). Überschneidungen sind erlaubt — wenn es Absicht ist, speichere einfach.",
|
|
1199
|
+
"staff.time_tracking.entryDialog.overlap.noProject": "ohne Projekt",
|
|
1200
|
+
"staff.time_tracking.entryDialog.overlap.noTask": "ohne Aufgabe",
|
|
1201
|
+
"staff.time_tracking.entryDialog.overlap.show": "Diesen Eintrag anzeigen",
|
|
1202
|
+
"staff.time_tracking.entryDialog.overlap.snap": "Beginn auf {time} setzen",
|
|
1203
|
+
"staff.time_tracking.entryDialog.overlap.title": "Diese Zeit überschneidet sich mit einem anderen Eintrag",
|
|
1204
|
+
"staff.time_tracking.entryDialog.rate": "Satz",
|
|
1205
|
+
"staff.time_tracking.entryDialog.rateHint": "Standard {amount} (Projektsatz).",
|
|
1206
|
+
"staff.time_tracking.entryDialog.rateOverride": "Eigener Satz für diesen Eintrag",
|
|
1207
|
+
"staff.time_tracking.entryDialog.rateOverrideHint": "Überschreibt den Projektsatz nur hier.",
|
|
1208
|
+
"staff.time_tracking.entryDialog.ratePerHour": "{amount}/Std.",
|
|
1209
|
+
"staff.time_tracking.entryDialog.removeTag": "Tag {label} entfernen",
|
|
1210
|
+
"staff.time_tracking.entryDialog.save": "Speichern",
|
|
1211
|
+
"staff.time_tracking.entryDialog.saveAndNew": "Speichern und weiteren hinzufügen",
|
|
1212
|
+
"staff.time_tracking.entryDialog.saved": "Zeiteintrag gespeichert.",
|
|
1213
|
+
"staff.time_tracking.entryDialog.shortcutCancel": "abbrechen",
|
|
1214
|
+
"staff.time_tracking.entryDialog.shortcutSave": "speichern",
|
|
1215
|
+
"staff.time_tracking.entryDialog.shortcutSaveAgain": "speichern und weiteren hinzufügen",
|
|
1216
|
+
"staff.time_tracking.entryDialog.start": "Beginn",
|
|
1217
|
+
"staff.time_tracking.entryDialog.tags": "Tags",
|
|
1218
|
+
"staff.time_tracking.entryDialog.task": "Aufgabe",
|
|
1219
|
+
"staff.time_tracking.entryDialog.taskHint": "Projekt und Kunde ergeben sich aus der Aufgabe — sie werden nicht separat gewählt.",
|
|
1220
|
+
"staff.time_tracking.entryDialog.taskPlaceholder": "Aufgabe wählen",
|
|
1221
|
+
"staff.time_tracking.entryDialog.titleCreate": "Neuer Zeiteintrag",
|
|
1222
|
+
"staff.time_tracking.entryDialog.titleEdit": "Zeiteintrag",
|
|
1223
|
+
"staff.time_tracking.myWork.copyDay.done": "{count} Einträge von gestern kopiert.",
|
|
1224
|
+
"staff.time_tracking.myWork.errors.load": "Ihre Arbeitsübersicht konnte nicht geladen werden.",
|
|
1225
|
+
"staff.time_tracking.myWork.errors.retry": "Erneut versuchen",
|
|
1226
|
+
"staff.time_tracking.myWork.kpi.month": "Dieser Monat",
|
|
1227
|
+
"staff.time_tracking.myWork.kpi.nonBillable": "Nicht abrechenbar",
|
|
1228
|
+
"staff.time_tracking.myWork.kpi.ofTarget": "von {target}",
|
|
1229
|
+
"staff.time_tracking.myWork.kpi.shareOfMonth": "{percent}% des Monats",
|
|
1230
|
+
"staff.time_tracking.myWork.kpi.targetGap": "Ziel {target} — noch {gap}",
|
|
1231
|
+
"staff.time_tracking.myWork.kpi.today": "Heute",
|
|
1232
|
+
"staff.time_tracking.myWork.kpi.week": "Diese Woche",
|
|
1233
|
+
"staff.time_tracking.myWork.kpi.workingDays": "{days} Arbeitstage",
|
|
1234
|
+
"staff.time_tracking.myWork.projects.budget": "{percent}% des Budgets ({value})",
|
|
1235
|
+
"staff.time_tracking.myWork.projects.budgetHours": "{hours} Std.",
|
|
1236
|
+
"staff.time_tracking.myWork.projects.empty": "Noch keine Projekte zugewiesen.",
|
|
1237
|
+
"staff.time_tracking.myWork.projects.rate": "{rate}/Std.",
|
|
1238
|
+
"staff.time_tracking.myWork.projects.title": "Meine Projekte",
|
|
1239
|
+
"staff.time_tracking.myWork.quickEntry.duration": "Dauer",
|
|
1240
|
+
"staff.time_tracking.myWork.quickEntry.save": "Speichern",
|
|
1241
|
+
"staff.time_tracking.myWork.quickEntry.target": "Projekt oder Aufgabe",
|
|
1242
|
+
"staff.time_tracking.myWork.recentTasks.empty": "Noch keine Zeit auf Aufgaben erfasst.",
|
|
1243
|
+
"staff.time_tracking.myWork.recentTasks.title": "Letzte Aufgaben",
|
|
1244
|
+
"staff.time_tracking.myWork.today.allEntries": "Alle Einträge",
|
|
1245
|
+
"staff.time_tracking.myWork.today.copyYesterday": "Gestern kopieren",
|
|
1246
|
+
"staff.time_tracking.myWork.today.empty": "Heute wurde noch nichts erfasst.",
|
|
1247
|
+
"staff.time_tracking.myWork.today.title": "Heutige Einträge",
|
|
1248
|
+
"staff.time_tracking.myWork.today.total": "Heute gesamt",
|
|
1249
|
+
"staff.time_tracking.nav.entries": "Zeiteinträge",
|
|
1250
|
+
"staff.time_tracking.nav.group": "Zeiterfassung",
|
|
1251
|
+
"staff.time_tracking.nav.my_work": "Meine Arbeit",
|
|
1252
|
+
"staff.time_tracking.nav.projects": "Projekte",
|
|
1253
|
+
"staff.time_tracking.nav.reports": "Berichte",
|
|
1254
|
+
"staff.time_tracking.nav.settings": "Einstellungen",
|
|
1255
|
+
"staff.time_tracking.nav.tasks": "Aufgaben",
|
|
1256
|
+
"staff.time_tracking.nav.timesheet": "Stundenzettel",
|
|
1257
|
+
"staff.time_tracking.placeholder.description": "Dieser Bildschirm gehört zur Einführung der Zeiterfassung und ist noch nicht verfügbar.",
|
|
1258
|
+
"staff.time_tracking.placeholder.title": "Kommt in einer späteren Phase",
|
|
1259
|
+
"staff.time_tracking.projects.actions.assignCustomer": "Kunden zuweisen",
|
|
1260
|
+
"staff.time_tracking.projects.assignMembers.confirm": "Zuweisen",
|
|
1261
|
+
"staff.time_tracking.projects.assignMembers.description": "Ausgewählte Projekte: {count}.",
|
|
1262
|
+
"staff.time_tracking.projects.assignMembers.error": "Mitglieder konnten nicht zugewiesen werden.",
|
|
1263
|
+
"staff.time_tracking.projects.assignMembers.loadError": "Teammitglieder konnten nicht geladen werden. Prüfen Sie Ihre Verbindung und versuchen Sie es erneut.",
|
|
1264
|
+
"staff.time_tracking.projects.assignMembers.progressName": "Mitglieder Projekten zuweisen",
|
|
1265
|
+
"staff.time_tracking.projects.assignMembers.success": "Mitglieder {count} Projekten zugewiesen.",
|
|
1266
|
+
"staff.time_tracking.projects.assignMembers.title": "Mitglieder zuweisen",
|
|
1267
|
+
"staff.time_tracking.projects.budget.amountUnit": "Betrag",
|
|
1268
|
+
"staff.time_tracking.projects.budget.ariaLabel": "Budgetauslastung",
|
|
1269
|
+
"staff.time_tracking.projects.budget.enable": "Limit überwachen",
|
|
1270
|
+
"staff.time_tracking.projects.budget.enableHint": "Warnt bei {{percent}} % und 100 % des Limits.",
|
|
1271
|
+
"staff.time_tracking.projects.budget.hoursUnit": "Std.",
|
|
1272
|
+
"staff.time_tracking.projects.budget.hoursValue": "{value} Std.",
|
|
1273
|
+
"staff.time_tracking.projects.budget.kind": "Limitart",
|
|
1274
|
+
"staff.time_tracking.projects.budget.kindAmount": "Betrag",
|
|
1275
|
+
"staff.time_tracking.projects.budget.kindHours": "Stunden",
|
|
1276
|
+
"staff.time_tracking.projects.budget.none": "ohne Budget",
|
|
1277
|
+
"staff.time_tracking.projects.budget.usage": "{percent}% von {value}",
|
|
1278
|
+
"staff.time_tracking.projects.budget.value": "Limit",
|
|
1279
|
+
"staff.time_tracking.projects.budget.warnAt": "Warnen bei",
|
|
1280
|
+
"staff.time_tracking.projects.bulk.assignMembers": "Mitglieder zuweisen",
|
|
1281
|
+
"staff.time_tracking.projects.bulk.clear": "Zurücksetzen",
|
|
1282
|
+
"staff.time_tracking.projects.bulk.report": "Bericht aus Auswahl",
|
|
1283
|
+
"staff.time_tracking.projects.bulk.reportBlocked.missingCustomer": "Diese Projekte haben noch keinen Kunden: {projects}.",
|
|
1284
|
+
"staff.time_tracking.projects.bulk.reportBlocked.multipleCurrencies": "Ein Bericht umfasst immer genau eine Währung. Ausgewählt: {currencies}.",
|
|
1285
|
+
"staff.time_tracking.projects.bulk.reportBlocked.multipleCustomers": "Ein Bericht umfasst immer genau einen Kunden. Ausgewählt: {customers}.",
|
|
1286
|
+
"staff.time_tracking.projects.bulk.selectedCount": "{count} ausgewählt",
|
|
1287
|
+
"staff.time_tracking.projects.code.autoHint": "Wird aus dem Projektnamen abgeleitet und steht vor jeder Aufgabennummer.",
|
|
1288
|
+
"staff.time_tracking.projects.code.done": "Fertig",
|
|
1289
|
+
"staff.time_tracking.projects.code.duplicate": "Dieser Code wird bereits von einem anderen Projekt verwendet.",
|
|
1290
|
+
"staff.time_tracking.projects.code.edit": "Code bearbeiten",
|
|
1291
|
+
"staff.time_tracking.projects.code.empty": "—",
|
|
1292
|
+
"staff.time_tracking.projects.code.manualHint": "Manuell gesetzt — folgt dem Namen nicht mehr.",
|
|
1293
|
+
"staff.time_tracking.projects.code.reset": "Abgeleiteten Code verwenden",
|
|
1294
|
+
"staff.time_tracking.projects.columns.budget": "Budget",
|
|
1295
|
+
"staff.time_tracking.projects.columns.cost": "Kosten",
|
|
1296
|
+
"staff.time_tracking.projects.columns.customer": "Kunde",
|
|
1297
|
+
"staff.time_tracking.projects.columns.hours": "Stunden",
|
|
1298
|
+
"staff.time_tracking.projects.columns.rate": "Satz",
|
|
1299
|
+
"staff.time_tracking.projects.currency.acknowledge": "Mir ist klar, dass historische Beträge nicht umgerechnet werden.",
|
|
1300
|
+
"staff.time_tracking.projects.currency.change": "Währung ändern",
|
|
1301
|
+
"staff.time_tracking.projects.currency.changeError": "Die Projektwährung konnte nicht geändert werden.",
|
|
1302
|
+
"staff.time_tracking.projects.currency.changeTitle": "Währung ändern",
|
|
1303
|
+
"staff.time_tracking.projects.currency.changed": "Projektwährung geändert.",
|
|
1304
|
+
"staff.time_tracking.projects.currency.confirm": "Währung ändern",
|
|
1305
|
+
"staff.time_tracking.projects.currency.emptyBody": "Für dieses Projekt ist noch keine Zeit erfasst, die Änderung setzt also nur die Währung — kein Betrag wird umbenannt.",
|
|
1306
|
+
"staff.time_tracking.projects.currency.emptyTitle": "Noch nichts umzubenennen",
|
|
1307
|
+
"staff.time_tracking.projects.currency.hint": "Die Währung ist für das Projekt fest und steuert die gesamte Kostenauswertung.",
|
|
1308
|
+
"staff.time_tracking.projects.currency.label": "Währung",
|
|
1309
|
+
"staff.time_tracking.projects.currency.lockedBody": "{{count}} Einträge sind in geschlossenen Berichten eingefroren: {{reports}}. Heben Sie die Sperre zuerst auf.",
|
|
1310
|
+
"staff.time_tracking.projects.currency.lockedHint": "Die Währung ist für das Projekt fest und steuert die gesamte Kostenauswertung. Sie ist schreibgeschützt, weil bereits {{count}} Einträge erfasst wurden.",
|
|
1311
|
+
"staff.time_tracking.projects.currency.lockedTitle": "Gesperrte Stunden blockieren diese Änderung",
|
|
1312
|
+
"staff.time_tracking.projects.currency.placeholder": "Währung wählen",
|
|
1313
|
+
"staff.time_tracking.projects.currency.postCreateHint": "Die Währung ist für das Projekt fest und steuert die gesamte Kostenauswertung. Nach dem Anlegen ändert sie sich nur über diese Aktion, sodass jede Änderung protokolliert wird.",
|
|
1314
|
+
"staff.time_tracking.projects.currency.unset": "Nicht gesetzt",
|
|
1315
|
+
"staff.time_tracking.projects.currency.warnBody": "Die bereits erfassten {{count}} Einträge behalten ihren Zahlenwert und werden einfach in der neuen Währung gelesen.",
|
|
1316
|
+
"staff.time_tracking.projects.currency.warnTitle": "Beträge werden umbenannt, nicht umgerechnet",
|
|
1317
|
+
"staff.time_tracking.projects.customer.kind.company": "Firma",
|
|
1318
|
+
"staff.time_tracking.projects.customer.kind.person": "Einzelunternehmer",
|
|
1319
|
+
"staff.time_tracking.projects.customer.new.company": "Firma",
|
|
1320
|
+
"staff.time_tracking.projects.customer.new.email": "E-Mail",
|
|
1321
|
+
"staff.time_tracking.projects.customer.new.error": "Kunde konnte nicht angelegt werden.",
|
|
1322
|
+
"staff.time_tracking.projects.customer.new.firstName": "Vorname",
|
|
1323
|
+
"staff.time_tracking.projects.customer.new.kind": "Kundentyp",
|
|
1324
|
+
"staff.time_tracking.projects.customer.new.lastName": "Nachname",
|
|
1325
|
+
"staff.time_tracking.projects.customer.new.name": "Name",
|
|
1326
|
+
"staff.time_tracking.projects.customer.new.nameRequired": "Ein Name ist erforderlich.",
|
|
1327
|
+
"staff.time_tracking.projects.customer.new.person": "Einzelunternehmer",
|
|
1328
|
+
"staff.time_tracking.projects.customer.new.submit": "Kunde anlegen",
|
|
1329
|
+
"staff.time_tracking.projects.customer.new.title": "Neuer Kunde",
|
|
1330
|
+
"staff.time_tracking.projects.customer.new.trigger": "Neuer Kunde",
|
|
1331
|
+
"staff.time_tracking.projects.customer.placeholder": "Kunden suchen…",
|
|
1332
|
+
"staff.time_tracking.projects.errors.required": "Bitte die Pflichtfelder ausfüllen.",
|
|
1333
|
+
"staff.time_tracking.projects.form.actions.cancel": "Abbrechen",
|
|
1334
|
+
"staff.time_tracking.projects.form.billableByDefault": "Standardmäßig abrechenbar",
|
|
1335
|
+
"staff.time_tracking.projects.form.billableByDefaultHint": "Neue Einträge in diesem Projekt starten als abrechenbar.",
|
|
1336
|
+
"staff.time_tracking.projects.form.code": "Projektcode",
|
|
1337
|
+
"staff.time_tracking.projects.form.createTitle": "Neues Projekt",
|
|
1338
|
+
"staff.time_tracking.projects.form.currency": "Währung",
|
|
1339
|
+
"staff.time_tracking.projects.form.customer": "Kunde",
|
|
1340
|
+
"staff.time_tracking.projects.form.customerHint": "Zeit wird pro Kunde organisiert — ohne Kunde lässt sich ein Projekt nicht speichern.",
|
|
1341
|
+
"staff.time_tracking.projects.form.description": "Beschreibung",
|
|
1342
|
+
"staff.time_tracking.projects.form.descriptionPlaceholder": "Leistungsumfang, Absprachen mit dem Kunden…",
|
|
1343
|
+
"staff.time_tracking.projects.form.editTitle": "Projekt bearbeiten",
|
|
1344
|
+
"staff.time_tracking.projects.form.groupBasics": "Grunddaten",
|
|
1345
|
+
"staff.time_tracking.projects.form.groupBilling": "Abrechnung",
|
|
1346
|
+
"staff.time_tracking.projects.form.groupBillingHint": "Sie können dies leer lassen und vor dem ersten Bericht ausfüllen.",
|
|
1347
|
+
"staff.time_tracking.projects.form.groupBudget": "Budget",
|
|
1348
|
+
"staff.time_tracking.projects.form.groupStatus": "Status",
|
|
1349
|
+
"staff.time_tracking.projects.form.groupTeam": "Team",
|
|
1350
|
+
"staff.time_tracking.projects.form.hourlyRate": "Stundensatz",
|
|
1351
|
+
"staff.time_tracking.projects.form.name": "Projektname",
|
|
1352
|
+
"staff.time_tracking.projects.form.namePlaceholder": "z. B. Nordvik — Serviceportal",
|
|
1353
|
+
"staff.time_tracking.projects.form.perHour": "/ Std.",
|
|
1354
|
+
"staff.time_tracking.projects.form.status": "Status",
|
|
1355
|
+
"staff.time_tracking.projects.rounding.body": "Aktuell: {{summary}}. Die Änderung gilt für alle Projekte — einstellbar in den Moduleinstellungen.",
|
|
1356
|
+
"staff.time_tracking.projects.rounding.bodyUnknown": "Die Änderung gilt für alle Projekte — einstellbar in den Moduleinstellungen.",
|
|
1357
|
+
"staff.time_tracking.projects.rounding.nearest": "auf die nächsten {{unit}} Min.",
|
|
1358
|
+
"staff.time_tracking.projects.rounding.none": "keine Rundung",
|
|
1359
|
+
"staff.time_tracking.projects.rounding.title": "Die Rundung gilt global",
|
|
1360
|
+
"staff.time_tracking.projects.rounding.up": "auf {{unit}} Min. aufgerundet",
|
|
1361
|
+
"staff.time_tracking.projects.selection.selectAll": "Alle Projekte auf dieser Seite auswählen",
|
|
1362
|
+
"staff.time_tracking.projects.selection.selectRow": "Projekt auswählen",
|
|
1363
|
+
"staff.time_tracking.projects.team.afterCreate": "Personen können nach dem Speichern des Projekts zugewiesen werden.",
|
|
1364
|
+
"staff.time_tracking.projects.team.drawer.assigned": "Zugewiesen ({count})",
|
|
1365
|
+
"staff.time_tracking.projects.team.drawer.badges.adding": "wird hinzugefügt",
|
|
1366
|
+
"staff.time_tracking.projects.team.drawer.badges.always": "immer",
|
|
1367
|
+
"staff.time_tracking.projects.team.drawer.badges.expired": "abgelaufen {date}",
|
|
1368
|
+
"staff.time_tracking.projects.team.drawer.badges.removing": "wird entfernt",
|
|
1369
|
+
"staff.time_tracking.projects.team.drawer.badges.scheduled": "ab {date}",
|
|
1370
|
+
"staff.time_tracking.projects.team.drawer.cancel": "Abbrechen",
|
|
1371
|
+
"staff.time_tracking.projects.team.drawer.close": "Schließen",
|
|
1372
|
+
"staff.time_tracking.projects.team.drawer.directoryTruncated": "Es werden die ersten {count} Personen angezeigt — nutze die Suche für die übrigen.",
|
|
1373
|
+
"staff.time_tracking.projects.team.drawer.discard.cancel": "Weiter bearbeiten",
|
|
1374
|
+
"staff.time_tracking.projects.team.drawer.discard.confirm": "Verwerfen",
|
|
1375
|
+
"staff.time_tracking.projects.team.drawer.discard.text": "Es wurde noch nichts gespeichert. Wenn Sie jetzt schließen, gehen alle Änderungen in diesem Bereich verloren.",
|
|
1376
|
+
"staff.time_tracking.projects.team.drawer.discard.title": "Änderungen am Team verwerfen?",
|
|
1377
|
+
"staff.time_tracking.projects.team.drawer.footer.changes.few": "{count} Änderungen zu speichern",
|
|
1378
|
+
"staff.time_tracking.projects.team.drawer.footer.changes.many": "{count} Änderungen zu speichern",
|
|
1379
|
+
"staff.time_tracking.projects.team.drawer.footer.changes.one": "1 Änderung zu speichern",
|
|
1380
|
+
"staff.time_tracking.projects.team.drawer.footer.noChanges": "Keine Änderungen",
|
|
1381
|
+
"staff.time_tracking.projects.team.drawer.hintFromRole": "{role} · Zugriff über die Rolle",
|
|
1382
|
+
"staff.time_tracking.projects.team.drawer.hintInProject": "{role} · {hours} in diesem Projekt",
|
|
1383
|
+
"staff.time_tracking.projects.team.drawer.hintPerson": "{role} · {hours}",
|
|
1384
|
+
"staff.time_tracking.projects.team.drawer.hoursAtLeast": "mindestens {hours}",
|
|
1385
|
+
"staff.time_tracking.projects.team.drawer.info.immediate": "Der Zugriff gilt sofort nach dem Speichern — ohne erneute Anmeldung.",
|
|
1386
|
+
"staff.time_tracking.projects.team.drawer.info.keepsTime": "Der Entzug des Zugriffs löscht keine erfassten Zeiten — die Einträge bleiben im Projekt und in den Berichten.",
|
|
1387
|
+
"staff.time_tracking.projects.team.drawer.loadError": "Das Projektteam konnte nicht geladen werden.",
|
|
1388
|
+
"staff.time_tracking.projects.team.drawer.loading": "Team wird geladen…",
|
|
1389
|
+
"staff.time_tracking.projects.team.drawer.lockedHint": "Der Zugriff der Teamleitung ergibt sich aus der Projektberechtigung und nicht aus einer Zuweisung — er kann hier nicht geändert werden.",
|
|
1390
|
+
"staff.time_tracking.projects.team.drawer.others": "Alle anderen in der Organisation",
|
|
1391
|
+
"staff.time_tracking.projects.team.drawer.othersEmpty": "Keine weiteren Personen gefunden.",
|
|
1392
|
+
"staff.time_tracking.projects.team.drawer.partialSaveError": "{reason} Das Speichern wurde mittendrin abgebrochen, daher wurde das unten gezeigte Team neu vom Server geladen — prüfen Sie es und wenden Sie die übrigen Änderungen erneut an.",
|
|
1393
|
+
"staff.time_tracking.projects.team.drawer.removeConfirm.text": "{name} hat {hours} in diesem Projekt — Zugriff entziehen?",
|
|
1394
|
+
"staff.time_tracking.projects.team.drawer.removeConfirm.textUnknown": "{name} hat möglicherweise Zeiten in diesem Projekt erfasst — Zugriff entziehen?",
|
|
1395
|
+
"staff.time_tracking.projects.team.drawer.removeConfirm.title": "Zugriff entziehen?",
|
|
1396
|
+
"staff.time_tracking.projects.team.drawer.roleLeader": "Teamleitung",
|
|
1397
|
+
"staff.time_tracking.projects.team.drawer.roleMember": "Teammitglied",
|
|
1398
|
+
"staff.time_tracking.projects.team.drawer.save": "Speichern",
|
|
1399
|
+
"staff.time_tracking.projects.team.drawer.saveError": "Das Projektteam konnte nicht gespeichert werden.",
|
|
1400
|
+
"staff.time_tracking.projects.team.drawer.saved": "Projektteam aktualisiert.",
|
|
1401
|
+
"staff.time_tracking.projects.team.drawer.saving": "Wird gespeichert…",
|
|
1402
|
+
"staff.time_tracking.projects.team.drawer.search": "Person suchen…",
|
|
1403
|
+
"staff.time_tracking.projects.team.drawer.selectPerson": "{name} zuweisen",
|
|
1404
|
+
"staff.time_tracking.projects.team.drawer.title": "Projektteam",
|
|
1405
|
+
"staff.time_tracking.projects.team.drawer.window.clear": "Löschen",
|
|
1406
|
+
"staff.time_tracking.projects.team.drawer.window.expiredHint": "Die Zuweisung ist abgelaufen — diese Person hat keinen Zugriff mehr auf das Projekt.",
|
|
1407
|
+
"staff.time_tracking.projects.team.drawer.window.label": "Ende der Zuweisung",
|
|
1408
|
+
"staff.time_tracking.projects.team.drawer.window.range": "von {start} · bis {end}",
|
|
1409
|
+
"staff.time_tracking.projects.team.drawer.window.startOnly": "ab {start}",
|
|
1410
|
+
"staff.time_tracking.projects.team.empty": "Noch niemand zugewiesen.",
|
|
1411
|
+
"staff.time_tracking.projects.team.hint": "Ohne Zuweisung sieht nur der Team Leader das Projekt.",
|
|
1412
|
+
"staff.time_tracking.projects.team.manage": "Team verwalten",
|
|
1413
|
+
"staff.time_tracking.projects.validation.budgetFormat": "Das Limit als Zahl eingeben.",
|
|
1414
|
+
"staff.time_tracking.projects.validation.codeFormat": "Nur Buchstaben, Ziffern und Bindestriche verwenden.",
|
|
1415
|
+
"staff.time_tracking.projects.validation.codeRequired": "Ein Projektcode ist erforderlich.",
|
|
1416
|
+
"staff.time_tracking.projects.validation.color": "Eine Farbe aus der Palette wählen.",
|
|
1417
|
+
"staff.time_tracking.projects.validation.customerRequired": "Ein Kunde ist erforderlich.",
|
|
1418
|
+
"staff.time_tracking.projects.validation.nameRequired": "Ein Projektname ist erforderlich.",
|
|
1419
|
+
"staff.time_tracking.projects.validation.rateFormat": "Den Satz als Zahl eingeben.",
|
|
1420
|
+
"staff.time_tracking.recalculate.jobName": "Zeiterfassung neu berechnen",
|
|
1421
|
+
"staff.time_tracking.reports.alreadyReported.body": "Sie sind aus diesem Bericht ausgeschlossen, damit dieselbe Stunde nicht zweimal abgerechnet wird. Mit ihnen kommen {hours} zu den beim Abschluss eingefrorenen Werten hinzu.",
|
|
1422
|
+
"staff.time_tracking.reports.alreadyReported.optIn": "Trotzdem mit den eingefrorenen Werten einbeziehen",
|
|
1423
|
+
"staff.time_tracking.reports.alreadyReported.title": "{count} Einträge sind bereits in einem anderen Bericht",
|
|
1424
|
+
"staff.time_tracking.reports.close.action": "Schließen und sperren",
|
|
1425
|
+
"staff.time_tracking.reports.close.confirmBody": "Die {count} enthaltenen Einträge werden mit ihren aktuellen Werten schreibgeschützt. Neue Zeit auf denselben Aufgaben kann weiterhin erfasst werden und fließt in den nächsten Bericht.",
|
|
1426
|
+
"staff.time_tracking.reports.close.confirmTitle": "Diesen Bericht schließen und sperren?",
|
|
1427
|
+
"staff.time_tracking.reports.close.done": "Bericht geschlossen. Seine Einträge sind gesperrt.",
|
|
1428
|
+
"staff.time_tracking.reports.create.cancel": "Abbrechen",
|
|
1429
|
+
"staff.time_tracking.reports.create.created": "Bericht erstellt.",
|
|
1430
|
+
"staff.time_tracking.reports.create.customer": "Kunde",
|
|
1431
|
+
"staff.time_tracking.reports.create.customerHint": "Berichtswährung: {currency} — sie ergibt sich aus den Projekten dieses Kunden.",
|
|
1432
|
+
"staff.time_tracking.reports.create.entriesInPeriod": "{count} Einträge im Zeitraum",
|
|
1433
|
+
"staff.time_tracking.reports.create.from": "Von",
|
|
1434
|
+
"staff.time_tracking.reports.create.grouping": "Gruppierung",
|
|
1435
|
+
"staff.time_tracking.reports.create.invalidPeriod": "Das Enddatum darf nicht vor dem Startdatum liegen.",
|
|
1436
|
+
"staff.time_tracking.reports.create.loadingProjects": "Projekte werden geladen…",
|
|
1437
|
+
"staff.time_tracking.reports.create.noProjects": "Für diesen Kunden gibt es noch keine Zeitprojekte.",
|
|
1438
|
+
"staff.time_tracking.reports.create.nonbillable": "Nicht abrechenbare Zeit",
|
|
1439
|
+
"staff.time_tracking.reports.create.period": "Zeitraum",
|
|
1440
|
+
"staff.time_tracking.reports.create.pickCustomer": "Wählen Sie einen Kunden, um dessen Projekte zu sehen.",
|
|
1441
|
+
"staff.time_tracking.reports.create.presentation": "Darstellung",
|
|
1442
|
+
"staff.time_tracking.reports.create.preset.month": "Monat",
|
|
1443
|
+
"staff.time_tracking.reports.create.preset.week": "Woche",
|
|
1444
|
+
"staff.time_tracking.reports.create.preset.year": "Jahr",
|
|
1445
|
+
"staff.time_tracking.reports.create.projects": "Kundenprojekte",
|
|
1446
|
+
"staff.time_tracking.reports.create.projectsHint": "Wählen Sie die Projekte aus, die in den Bericht einfließen sollen.",
|
|
1447
|
+
"staff.time_tracking.reports.create.reportTitle": "Berichtstitel",
|
|
1448
|
+
"staff.time_tracking.reports.create.roundingNearest": "auf den nächsten Wert",
|
|
1449
|
+
"staff.time_tracking.reports.create.roundingNotice": "Rundung: {rule} (global). Alle Beträge oben werden je Eintrag gerundet und dann summiert, sodass die gedruckten Zeilen die Summe ergeben.",
|
|
1450
|
+
"staff.time_tracking.reports.create.roundingOff": "aus",
|
|
1451
|
+
"staff.time_tracking.reports.create.roundingRule": "{minutes} Min., {direction}",
|
|
1452
|
+
"staff.time_tracking.reports.create.roundingUp": "immer aufrunden",
|
|
1453
|
+
"staff.time_tracking.reports.create.showRates": "Stundensätze anzeigen",
|
|
1454
|
+
"staff.time_tracking.reports.create.showRatesHint": "Deaktivieren Sie dies, wenn der Kunde nur Beträge sehen soll.",
|
|
1455
|
+
"staff.time_tracking.reports.create.spansMonths": "Dieser Zeitraum umfasst mehr als einen Monat — passen Sie die Daten an, wenn Sie nur einen möchten.",
|
|
1456
|
+
"staff.time_tracking.reports.create.submit": "Vorschau erzeugen",
|
|
1457
|
+
"staff.time_tracking.reports.create.subtitle": "Ein Bericht umfasst immer genau einen Kunden.",
|
|
1458
|
+
"staff.time_tracking.reports.create.summary": "Zusammenfassung des Zeitraums",
|
|
1459
|
+
"staff.time_tracking.reports.create.summaryBillable": "Abrechenbare Zeit",
|
|
1460
|
+
"staff.time_tracking.reports.create.summaryEntries": "Einträge",
|
|
1461
|
+
"staff.time_tracking.reports.create.summaryNonbillable": "Nicht abrechenbar",
|
|
1462
|
+
"staff.time_tracking.reports.create.summaryProjects": "Projekte",
|
|
1463
|
+
"staff.time_tracking.reports.create.summaryTotal": "Zu fakturieren",
|
|
1464
|
+
"staff.time_tracking.reports.create.title": "Neuer Bericht",
|
|
1465
|
+
"staff.time_tracking.reports.create.to": "Bis",
|
|
1466
|
+
"staff.time_tracking.reports.create.unknownCustomer": "Kunde",
|
|
1467
|
+
"staff.time_tracking.reports.detail.excludedHint": "{count} Einträge aus diesem Zeitraum sind bereits in einem anderen Bericht eingefroren und hier ausgeschlossen ({hours}).",
|
|
1468
|
+
"staff.time_tracking.reports.detail.loading": "Bericht wird geladen…",
|
|
1469
|
+
"staff.time_tracking.reports.detail.title": "Bericht",
|
|
1470
|
+
"staff.time_tracking.reports.errors.closeFailed": "Dieser Bericht konnte nicht geschlossen werden.",
|
|
1471
|
+
"staff.time_tracking.reports.errors.closed": "Dieser Bericht ist geschlossen. Entsperren Sie ihn, bevor Sie etwas ändern.",
|
|
1472
|
+
"staff.time_tracking.reports.errors.createFailed": "Der Bericht konnte nicht erstellt werden.",
|
|
1473
|
+
"staff.time_tracking.reports.errors.currencyConflict": "Ein Bericht umfasst immer eine Währung. Die gewählten Projekte verwenden {currencies}.",
|
|
1474
|
+
"staff.time_tracking.reports.errors.currencyConflictTitle": "Gemischte Währungen in dieser Auswahl",
|
|
1475
|
+
"staff.time_tracking.reports.errors.customerMismatch": "Ein Bericht umfasst immer einen Kunden. Diese Projekte gehören zu einem anderen: {projects}.",
|
|
1476
|
+
"staff.time_tracking.reports.errors.empty": "Dieser Bericht enthält keine Zeiteinträge, es gibt nichts einzufrieren. Passen Sie zuerst den Zeitraum oder die Projektauswahl an.",
|
|
1477
|
+
"staff.time_tracking.reports.errors.exportFailed": "Dieser Bericht konnte nicht exportiert werden.",
|
|
1478
|
+
"staff.time_tracking.reports.errors.idRequired": "Die Berichts-ID ist erforderlich.",
|
|
1479
|
+
"staff.time_tracking.reports.errors.loadFailed": "Dieser Bericht konnte nicht geladen werden.",
|
|
1480
|
+
"staff.time_tracking.reports.errors.notClosed": "Dieser Bericht ist nicht geschlossen, es gibt nichts zu entsperren.",
|
|
1481
|
+
"staff.time_tracking.reports.errors.notFound": "Bericht nicht gefunden oder nicht zugänglich.",
|
|
1482
|
+
"staff.time_tracking.reports.errors.previewFailed": "Die Berichtssummen konnten nicht berechnet werden.",
|
|
1483
|
+
"staff.time_tracking.reports.errors.projectNotFound": "Einige der ausgewählten Projekte sind nicht verfügbar.",
|
|
1484
|
+
"staff.time_tracking.reports.errors.projectsRequired": "Wählen Sie mindestens ein Projekt für diesen Bericht.",
|
|
1485
|
+
"staff.time_tracking.reports.errors.reasonRequired": "Ein Grund für die Entsperrung ist erforderlich.",
|
|
1486
|
+
"staff.time_tracking.reports.errors.referenceConflict": "Es konnte gerade keine Berichtsnummer vergeben werden. Bitte erneut versuchen.",
|
|
1487
|
+
"staff.time_tracking.reports.errors.unlockFailed": "Dieser Bericht konnte nicht entsperrt werden.",
|
|
1488
|
+
"staff.time_tracking.reports.errors.unsupportedFormat": "Unterstützte Exportformate sind pdf, csv und xlsx.",
|
|
1489
|
+
"staff.time_tracking.reports.export.billable": "Abrechenbar",
|
|
1490
|
+
"staff.time_tracking.reports.export.date": "Datum",
|
|
1491
|
+
"staff.time_tracking.reports.export.description": "Beschreibung",
|
|
1492
|
+
"staff.time_tracking.reports.export.format.csv": "CSV",
|
|
1493
|
+
"staff.time_tracking.reports.export.format.pdf": "PDF",
|
|
1494
|
+
"staff.time_tracking.reports.export.format.xlsx": "Excel (XLSX)",
|
|
1495
|
+
"staff.time_tracking.reports.export.no": "Nein",
|
|
1496
|
+
"staff.time_tracking.reports.export.person": "Person",
|
|
1497
|
+
"staff.time_tracking.reports.export.project": "Projekt",
|
|
1498
|
+
"staff.time_tracking.reports.export.rawMinutes": "Rohminuten",
|
|
1499
|
+
"staff.time_tracking.reports.export.roundedMinutes": "Gerundete Minuten",
|
|
1500
|
+
"staff.time_tracking.reports.export.task": "Aufgabe",
|
|
1501
|
+
"staff.time_tracking.reports.export.yes": "Ja",
|
|
1502
|
+
"staff.time_tracking.reports.grouping.project_day": "Projekt → Tag",
|
|
1503
|
+
"staff.time_tracking.reports.grouping.project_person": "Projekt → Person",
|
|
1504
|
+
"staff.time_tracking.reports.grouping.project_task": "Projekt → Aufgabe",
|
|
1505
|
+
"staff.time_tracking.reports.history.closed": "Hat den Bericht geschlossen und seine Einträge gesperrt.",
|
|
1506
|
+
"staff.time_tracking.reports.history.exported": "Hat den Bericht exportiert.",
|
|
1507
|
+
"staff.time_tracking.reports.history.title": "Historie",
|
|
1508
|
+
"staff.time_tracking.reports.history.unlocked": "Hat die Berichtseinträge entsperrt.",
|
|
1509
|
+
"staff.time_tracking.reports.list.amount": "Gesamt",
|
|
1510
|
+
"staff.time_tracking.reports.list.create": "Neuer Bericht",
|
|
1511
|
+
"staff.time_tracking.reports.list.empty": "Noch keine Berichte. Erstellen Sie einen für einen Kunden, um zu sehen, was abrechenbar ist.",
|
|
1512
|
+
"staff.time_tracking.reports.list.hours": "Abrechenbar",
|
|
1513
|
+
"staff.time_tracking.reports.list.period": "Zeitraum",
|
|
1514
|
+
"staff.time_tracking.reports.list.readOnly": "Sie können Berichte ansehen, aber nicht erstellen.",
|
|
1515
|
+
"staff.time_tracking.reports.list.reference": "Nummer",
|
|
1516
|
+
"staff.time_tracking.reports.list.status": "Status",
|
|
1517
|
+
"staff.time_tracking.reports.list.title": "Bericht",
|
|
1518
|
+
"staff.time_tracking.reports.locked.body": "Zeit, Satz und Abrechenbarkeit lassen sich ohne Entsperren nicht ändern. Neue Zeit auf denselben Aufgaben ist weiterhin möglich und fließt in den nächsten Bericht.",
|
|
1519
|
+
"staff.time_tracking.reports.locked.tableCount": "{count} Einträge · {hours}",
|
|
1520
|
+
"staff.time_tracking.reports.locked.tableTitle": "Gesperrte Einträge",
|
|
1521
|
+
"staff.time_tracking.reports.locked.title": "Die Einträge dieses Berichts sind schreibgeschützt",
|
|
1522
|
+
"staff.time_tracking.reports.locked.truncated": "Es werden die ersten {shown} von {total} Einträgen angezeigt — die vollständige Liste steht im Export.",
|
|
1523
|
+
"staff.time_tracking.reports.nonbillable.exclude": "Vollständig weglassen",
|
|
1524
|
+
"staff.time_tracking.reports.nonbillable.separate": "Separat und ohne Kosten anzeigen",
|
|
1525
|
+
"staff.time_tracking.reports.rounding.nearest": "auf den nächsten Wert",
|
|
1526
|
+
"staff.time_tracking.reports.rounding.off": "keine Rundung",
|
|
1527
|
+
"staff.time_tracking.reports.rounding.rule": "Rundung {minutes} Min., {direction}",
|
|
1528
|
+
"staff.time_tracking.reports.rounding.up": "immer aufrunden",
|
|
1529
|
+
"staff.time_tracking.reports.sheet.amount": "Betrag",
|
|
1530
|
+
"staff.time_tracking.reports.sheet.collapse": "Teilaufgaben ausblenden",
|
|
1531
|
+
"staff.time_tracking.reports.sheet.empty": "Für die gewählten Projekte wurde in diesem Zeitraum keine Zeit erfasst.",
|
|
1532
|
+
"staff.time_tracking.reports.sheet.expand": "Teilaufgaben anzeigen",
|
|
1533
|
+
"staff.time_tracking.reports.sheet.issuedBy": "Ausgestellt von",
|
|
1534
|
+
"staff.time_tracking.reports.sheet.lineLabel": "Position",
|
|
1535
|
+
"staff.time_tracking.reports.sheet.noPerson": "Nicht zugewiesen",
|
|
1536
|
+
"staff.time_tracking.reports.sheet.noSubtasks": "Keine Teilaufgaben",
|
|
1537
|
+
"staff.time_tracking.reports.sheet.noTask": "Ohne Aufgabe",
|
|
1538
|
+
"staff.time_tracking.reports.sheet.nonbillable": "Nicht abrechenbare Zeit",
|
|
1539
|
+
"staff.time_tracking.reports.sheet.nonbillableHint": "Nur zur Information, außerhalb der Abrechnung",
|
|
1540
|
+
"staff.time_tracking.reports.sheet.overline": "Zeit- und Kostenaufstellung",
|
|
1541
|
+
"staff.time_tracking.reports.sheet.overrideBadge": "vereinbarter Satz",
|
|
1542
|
+
"staff.time_tracking.reports.sheet.period": "Zeitraum",
|
|
1543
|
+
"staff.time_tracking.reports.sheet.rate": "Satz",
|
|
1544
|
+
"staff.time_tracking.reports.sheet.reference": "Referenz",
|
|
1545
|
+
"staff.time_tracking.reports.sheet.time": "Zeit",
|
|
1546
|
+
"staff.time_tracking.reports.sheet.total": "Gesamt zu fakturieren",
|
|
1547
|
+
"staff.time_tracking.reports.sheet.totalHint": "{billable} abrechenbar · {nonbillable} nicht abrechenbar · {rounding}",
|
|
1548
|
+
"staff.time_tracking.reports.status.closed": "Geschlossen",
|
|
1549
|
+
"staff.time_tracking.reports.status.draft": "Entwurf",
|
|
1550
|
+
"staff.time_tracking.reports.unlock.action": "Einträge entsperren",
|
|
1551
|
+
"staff.time_tracking.reports.unlock.cancel": "Abbrechen",
|
|
1552
|
+
"staff.time_tracking.reports.unlock.dialogTitle": "{count} Einträge entsperren?",
|
|
1553
|
+
"staff.time_tracking.reports.unlock.done": "Bericht entsperrt. Seine Einträge sind wieder bearbeitbar.",
|
|
1554
|
+
"staff.time_tracking.reports.unlock.reason": "Grund für die Entsperrung",
|
|
1555
|
+
"staff.time_tracking.reports.unlock.reasonHint": "Der Grund wird mit Ihrem Namen und dem Datum in der Berichtshistorie festgehalten.",
|
|
1556
|
+
"staff.time_tracking.reports.unlock.reasonPlaceholder": "z. B. Der Kunde hat 4 Std. beim Refactoring beanstandet — Korrektur am 21. vereinbart.",
|
|
1557
|
+
"staff.time_tracking.reports.unlock.sentBody": "Am {date} wurde eine Datei heruntergeladen. Änderungen an entsperrten Einträgen weichen von der Kopie des Kunden ab.",
|
|
1558
|
+
"staff.time_tracking.reports.unlock.sentTitle": "Dieser Bericht wurde bereits exportiert",
|
|
1559
|
+
"staff.time_tracking.rounding.strategy.unit": "Rundung auf Einheit",
|
|
1560
|
+
"staff.time_tracking.settings.access.daysUnit": "Tage",
|
|
1561
|
+
"staff.time_tracking.settings.access.graceDays": "Karenzzeit für den Zugriff nach Ende der Zuweisung",
|
|
1562
|
+
"staff.time_tracking.settings.access.graceDaysError": "Geben Sie eine ganze Zahl von Tagen zwischen 0 und 365 ein.",
|
|
1563
|
+
"staff.time_tracking.settings.access.graceDaysHint": "Ein Mitglied behält den Zugriff auf ein Projekt so viele Tage über das Zuweisungsende hinaus, dass die letzte Arbeitswoche noch erfasst und korrigiert werden kann. 0 beendet den Zugriff am Enddatum selbst.",
|
|
1564
|
+
"staff.time_tracking.settings.access.title": "Projektzugriff",
|
|
1565
|
+
"staff.time_tracking.settings.actions.cancel": "Abbrechen",
|
|
1566
|
+
"staff.time_tracking.settings.actions.save": "Speichern",
|
|
1567
|
+
"staff.time_tracking.settings.defaults.billable": "Neue Einträge sind abrechenbar",
|
|
1568
|
+
"staff.time_tracking.settings.defaults.billableHint": "Ein Projekt kann das überschreiben.",
|
|
1569
|
+
"staff.time_tracking.settings.defaults.chainStart": "Start = Ende des vorherigen Eintrags",
|
|
1570
|
+
"staff.time_tracking.settings.defaults.chainStartHint": "Ein Vorschlag beim Hinzufügen eines weiteren Eintrags am selben Tag.",
|
|
1571
|
+
"staff.time_tracking.settings.defaults.title": "Standardwerte für Einträge",
|
|
1572
|
+
"staff.time_tracking.settings.impact.body": "Bei den aktuellen {count} Einträgen der letzten {days} Tage ergibt {rule} {rounded} ({delta} gegenüber der Rohzeit). Abgeschlossene Berichte bleiben unverändert.",
|
|
1573
|
+
"staff.time_tracking.settings.impact.empty": "In den letzten {days} Tagen gibt es keine entsperrten Einträge, auf die sich eine Hochrechnung stützen könnte.",
|
|
1574
|
+
"staff.time_tracking.settings.impact.error": "Die Vorschau der Auswirkung ist nicht verfügbar.",
|
|
1575
|
+
"staff.time_tracking.settings.impact.loading": "Auswirkung wird berechnet…",
|
|
1576
|
+
"staff.time_tracking.settings.impact.locked": "{count} Einträge in diesem Zeitraum sind in abgeschlossenen Berichten gesperrt und bleiben ausgenommen.",
|
|
1577
|
+
"staff.time_tracking.settings.impact.rule.nearest": "{unit} Min. kaufmännisch",
|
|
1578
|
+
"staff.time_tracking.settings.impact.rule.none": "keine Rundung",
|
|
1579
|
+
"staff.time_tracking.settings.impact.rule.up": "{unit} Min. aufrunden",
|
|
1580
|
+
"staff.time_tracking.settings.impact.title": "Eine geänderte Rundung verändert die Beträge",
|
|
1581
|
+
"staff.time_tracking.settings.loadError": "Die Einstellungen konnten nicht geladen werden.",
|
|
1582
|
+
"staff.time_tracking.settings.loading": "Einstellungen werden geladen…",
|
|
1583
|
+
"staff.time_tracking.settings.retro.confirmText": "Die gerundete Zeit bestehender Einträge wird nach der gespeicherten Regel neu berechnet. Einträge, die in abgeschlossenen Berichten gesperrt sind, bleiben unverändert.",
|
|
1584
|
+
"staff.time_tracking.settings.retro.confirmTitle": "Rundung auf bestehende Einträge anwenden?",
|
|
1585
|
+
"staff.time_tracking.settings.retro.cta": "Auf bestehende Einträge anwenden",
|
|
1586
|
+
"staff.time_tracking.settings.retro.error": "Die Neuberechnung konnte nicht gestartet werden.",
|
|
1587
|
+
"staff.time_tracking.settings.retro.hint": "Das Speichern wirkt nur auf neue Einträge. Bestehende neu zu berechnen ist eine eigene, ausdrückliche Aktion — und sie ändert nie Einträge, die in abgeschlossenen Berichten gesperrt sind.",
|
|
1588
|
+
"staff.time_tracking.settings.retro.jobDescription": "Die gerundete Zeit bestehender Einträge wird neu berechnet. Gesperrte Einträge bleiben unverändert.",
|
|
1589
|
+
"staff.time_tracking.settings.retro.jobName": "Rundung auf bestehende Einträge anwenden",
|
|
1590
|
+
"staff.time_tracking.settings.retro.nothing": "Es gibt nichts neu zu berechnen.",
|
|
1591
|
+
"staff.time_tracking.settings.retro.queued": "Die gerundete Zeit von {count} Einträgen wird neu berechnet. Den Fortschritt sehen Sie in der oberen Leiste.",
|
|
1592
|
+
"staff.time_tracking.settings.retro.saveFirst": "Speichern Sie die Regel zuerst — die Neuberechnung verwendet die gespeicherte Regel, nicht die auf dem Bildschirm.",
|
|
1593
|
+
"staff.time_tracking.settings.retro.title": "Rückwirkend auf bestehende Einträge anwenden",
|
|
1594
|
+
"staff.time_tracking.settings.retry": "Erneut versuchen",
|
|
1595
|
+
"staff.time_tracking.settings.rounding.description": "Gilt für alle Projekte. Die gerundete Zeit ist die Grundlage der Kostenberechnung.",
|
|
1596
|
+
"staff.time_tracking.settings.rounding.direction": "Richtung",
|
|
1597
|
+
"staff.time_tracking.settings.rounding.direction.nearest": "Kaufmännisch",
|
|
1598
|
+
"staff.time_tracking.settings.rounding.direction.up": "Aufrunden",
|
|
1599
|
+
"staff.time_tracking.settings.rounding.examples.title": "Beispiele für die aktuelle Einstellung",
|
|
1600
|
+
"staff.time_tracking.settings.rounding.title": "Zeitrundung",
|
|
1601
|
+
"staff.time_tracking.settings.rounding.unit": "Einheit",
|
|
1602
|
+
"staff.time_tracking.settings.rounding.unit.minutes": "{count} Min.",
|
|
1603
|
+
"staff.time_tracking.settings.rounding.unit.none": "Keine",
|
|
1604
|
+
"staff.time_tracking.settings.saveError": "Die Einstellungen konnten nicht gespeichert werden.",
|
|
1605
|
+
"staff.time_tracking.settings.saved": "Einstellungen gespeichert.",
|
|
1606
|
+
"staff.time_tracking.settings.scope.body": "Diese Regeln sind global — sie lassen sich nicht je Kunde oder je Projekt festlegen.",
|
|
1607
|
+
"staff.time_tracking.settings.scope.hint": "Satz und Währung bleiben auf Projektebene, eine abweichende Stundensatz-Angabe auf Eintragsebene.",
|
|
1608
|
+
"staff.time_tracking.settings.scope.title": "Geltungsbereich der Einstellungen",
|
|
1609
|
+
"staff.time_tracking.settings.subtitle": "Regeln, die für alle Kunden und Projekte gelten",
|
|
1610
|
+
"staff.time_tracking.settings.targets.dailyHours": "Tagesziel in Stunden",
|
|
1611
|
+
"staff.time_tracking.settings.targets.dailyHoursError": "Geben Sie eine Stundenzahl zwischen 0 und 24 ein oder lassen Sie das Feld leer.",
|
|
1612
|
+
"staff.time_tracking.settings.targets.dailyHoursHint": "Skaliert die Auslastungsbalken im Timesheet. Leer lassen, um Ziele auszuschalten.",
|
|
1613
|
+
"staff.time_tracking.settings.targets.hoursUnit": "Std.",
|
|
1614
|
+
"staff.time_tracking.settings.title": "Moduleinstellungen",
|
|
1615
|
+
"staff.time_tracking.settings.warnings.overlap": "Vor überlappenden Einträgen warnen",
|
|
1616
|
+
"staff.time_tracking.settings.warnings.overlapHint": "Eine Warnung, keine Sperre.",
|
|
1617
|
+
"staff.time_tracking.settings.warnings.runningTimer": "An einen laufenden Timer erinnern",
|
|
1618
|
+
"staff.time_tracking.settings.warnings.runningTimerHint": "Eine dezente Erinnerung beim Verlassen des Moduls und nach 8 Stunden Dauerlauf.",
|
|
1619
|
+
"staff.time_tracking.settings.warnings.title": "Warnungen",
|
|
1620
|
+
"staff.time_tracking.tags.add": "Tag hinzufügen",
|
|
1621
|
+
"staff.time_tracking.tags.deleted": "Tag gelöscht und von {count} Stellen entfernt.",
|
|
1622
|
+
"staff.time_tracking.tags.empty": "Noch keine Tags",
|
|
1623
|
+
"staff.time_tracking.tags.errors.entryLocked": "Dieser Zeiteintrag ist in einem abgeschlossenen Bericht gesperrt; seine Tags können nicht geändert werden.",
|
|
1624
|
+
"staff.time_tracking.tags.errors.entryNotFound": "Zeiteintrag nicht gefunden oder nicht zugänglich.",
|
|
1625
|
+
"staff.time_tracking.tags.errors.idRequired": "Tag-ID ist erforderlich.",
|
|
1626
|
+
"staff.time_tracking.tags.errors.notFound": "Tag nicht gefunden oder nicht zugänglich.",
|
|
1627
|
+
"staff.time_tracking.tags.errors.slugDuplicate": "Ein Tag mit dieser Kennung existiert bereits.",
|
|
1628
|
+
"staff.time_tracking.tags.errors.taskNotFound": "Aufgabe nicht gefunden oder nicht zugänglich.",
|
|
1629
|
+
"staff.time_tracking.tags.errors.unknownIds": "Einige Tags existieren in dieser Organisation nicht.",
|
|
1630
|
+
"staff.time_tracking.tags.fields.color": "Farbe",
|
|
1631
|
+
"staff.time_tracking.tags.fields.label": "Name",
|
|
1632
|
+
"staff.time_tracking.tags.fields.slug": "Kennung",
|
|
1633
|
+
"staff.time_tracking.tags.placeholder": "Tags suchen",
|
|
1634
|
+
"staff.time_tracking.tags.remove": "Tag entfernen",
|
|
1635
|
+
"staff.time_tracking.tags.title": "Tags",
|
|
1636
|
+
"staff.time_tracking.taskComments.empty": "Noch keine Kommentare.",
|
|
1637
|
+
"staff.time_tracking.taskComments.errors.idRequired": "Kommentar-ID ist erforderlich.",
|
|
1638
|
+
"staff.time_tracking.taskComments.errors.notAuthor": "Sie können nur Ihre eigenen Kommentare bearbeiten oder löschen.",
|
|
1639
|
+
"staff.time_tracking.taskComments.errors.notFound": "Kommentar nicht gefunden oder nicht zugänglich.",
|
|
1640
|
+
"staff.time_tracking.taskComments.errors.taskIdRequired": "Aufgaben-ID ist erforderlich.",
|
|
1641
|
+
"staff.time_tracking.taskComments.placeholder": "Kommentar schreiben…",
|
|
1642
|
+
"staff.time_tracking.taskComments.submit": "Kommentieren",
|
|
1643
|
+
"staff.time_tracking.taskComments.submitHint": "⌘↵ sendet",
|
|
1644
|
+
"staff.time_tracking.taskComments.title": "Kommentare",
|
|
1645
|
+
"staff.time_tracking.taskDrawer.autoSave": "Änderungen werden automatisch gespeichert",
|
|
1646
|
+
"staff.time_tracking.taskDrawer.close": "Schließen",
|
|
1647
|
+
"staff.time_tracking.taskDrawer.comments.empty": "Noch keine Kommentare.",
|
|
1648
|
+
"staff.time_tracking.taskDrawer.comments.error": "Der Kommentar konnte nicht gespeichert werden.",
|
|
1649
|
+
"staff.time_tracking.taskDrawer.comments.hint": "sendet",
|
|
1650
|
+
"staff.time_tracking.taskDrawer.comments.loadError": "Die Kommentare konnten nicht geladen werden.",
|
|
1651
|
+
"staff.time_tracking.taskDrawer.comments.loading": "Kommentare werden geladen…",
|
|
1652
|
+
"staff.time_tracking.taskDrawer.comments.placeholder": "Kommentar schreiben…",
|
|
1653
|
+
"staff.time_tracking.taskDrawer.comments.submit": "Kommentieren",
|
|
1654
|
+
"staff.time_tracking.taskDrawer.comments.title": "Kommentare ({count})",
|
|
1655
|
+
"staff.time_tracking.taskDrawer.comments.unknownAuthor": "Unbekannter Autor",
|
|
1656
|
+
"staff.time_tracking.taskDrawer.created": "erstellt am {date}",
|
|
1657
|
+
"staff.time_tracking.taskDrawer.entries.empty": "Noch keine Zeiteinträge.",
|
|
1658
|
+
"staff.time_tracking.taskDrawer.entries.noDescription": "Ohne Beschreibung",
|
|
1659
|
+
"staff.time_tracking.taskDrawer.entries.showAll": "Alle anzeigen",
|
|
1660
|
+
"staff.time_tracking.taskDrawer.entries.title": "Zeiteinträge ({count})",
|
|
1661
|
+
"staff.time_tracking.taskDrawer.loadError": "Die Aufgabe konnte nicht geladen werden.",
|
|
1662
|
+
"staff.time_tracking.taskDrawer.loading": "Aufgabe wird geladen…",
|
|
1663
|
+
"staff.time_tracking.taskDrawer.logged.billable": "abrechenbar {hours}",
|
|
1664
|
+
"staff.time_tracking.taskDrawer.logged.cost": "Kosten {amount}",
|
|
1665
|
+
"staff.time_tracking.taskDrawer.logged.nonBillable": "nicht abrechenbar {hours}",
|
|
1666
|
+
"staff.time_tracking.taskDrawer.logged.partialHint": "Die Aufteilung wird aus den neuesten Einträgen dieses Projekts berechnet.",
|
|
1667
|
+
"staff.time_tracking.taskDrawer.logged.split": "eigene {own} · Teilaufgaben {children}",
|
|
1668
|
+
"staff.time_tracking.taskDrawer.logged.title": "Erfasste Zeit",
|
|
1669
|
+
"staff.time_tracking.taskDrawer.properties.addTag": "Tag hinzufügen",
|
|
1670
|
+
"staff.time_tracking.taskDrawer.properties.assignee": "Zugewiesen",
|
|
1671
|
+
"staff.time_tracking.taskDrawer.properties.removeTag": "Tag {label} entfernen",
|
|
1672
|
+
"staff.time_tracking.taskDrawer.properties.saveError": "Die Änderung konnte nicht gespeichert werden.",
|
|
1673
|
+
"staff.time_tracking.taskDrawer.properties.status": "Status",
|
|
1674
|
+
"staff.time_tracking.taskDrawer.properties.tagError": "Die Tags konnten nicht gespeichert werden.",
|
|
1675
|
+
"staff.time_tracking.taskDrawer.properties.tags": "Tags",
|
|
1676
|
+
"staff.time_tracking.taskDrawer.properties.tagsPending": "Bereits gespeicherte Tags dieser Aufgabe erscheinen hier, sobald die Aufgabenliste sie zurückgibt.",
|
|
1677
|
+
"staff.time_tracking.taskDrawer.properties.title": "Eigenschaften",
|
|
1678
|
+
"staff.time_tracking.taskDrawer.properties.unassigned": "Nicht zugewiesen",
|
|
1679
|
+
"staff.time_tracking.taskDrawer.quickLog.cta": "Erfassen",
|
|
1680
|
+
"staff.time_tracking.taskDrawer.quickLog.descriptionPlaceholder": "Wofür wurde die Zeit aufgewendet?",
|
|
1681
|
+
"staff.time_tracking.taskDrawer.quickLog.details": "Details",
|
|
1682
|
+
"staff.time_tracking.taskDrawer.quickLog.error": "Der Zeiteintrag konnte nicht gespeichert werden.",
|
|
1683
|
+
"staff.time_tracking.taskDrawer.quickLog.label": "Zu erfassende Zeit",
|
|
1684
|
+
"staff.time_tracking.taskDrawer.quickLog.placeholder": "1h 40m",
|
|
1685
|
+
"staff.time_tracking.taskDrawer.quickLog.saved": "Zeit erfasst.",
|
|
1686
|
+
"staff.time_tracking.taskDrawer.subtasks.add": "Teilaufgabe hinzufügen",
|
|
1687
|
+
"staff.time_tracking.taskDrawer.subtasks.addError": "Die Teilaufgabe konnte nicht hinzugefügt werden.",
|
|
1688
|
+
"staff.time_tracking.taskDrawer.subtasks.count": "{done}/{total}",
|
|
1689
|
+
"staff.time_tracking.taskDrawer.subtasks.empty": "Noch keine Teilaufgaben.",
|
|
1690
|
+
"staff.time_tracking.taskDrawer.subtasks.noDoneColumn": "Dieses Projekt hat keine Erledigt-Spalte, daher kann eine Teilaufgabe nicht abgeschlossen werden.",
|
|
1691
|
+
"staff.time_tracking.taskDrawer.subtasks.placeholder": "Titel der Teilaufgabe",
|
|
1692
|
+
"staff.time_tracking.taskDrawer.subtasks.title": "Teilaufgaben",
|
|
1693
|
+
"staff.time_tracking.taskDrawer.subtasks.toggle": "{title} als erledigt markieren",
|
|
1694
|
+
"staff.time_tracking.taskDrawer.subtasks.toggleError": "Der Status der Teilaufgabe konnte nicht geändert werden.",
|
|
1695
|
+
"staff.time_tracking.taskDrawer.timer.start": "Start",
|
|
1696
|
+
"staff.time_tracking.taskDrawer.timer.stop": "Stoppen {elapsed}",
|
|
1697
|
+
"staff.time_tracking.taskDrawer.timer.switchText": "Es kann immer nur ein Timer laufen. Den anderen stoppen und hier starten?",
|
|
1698
|
+
"staff.time_tracking.taskDrawer.timer.switchTitle": "Auf einer anderen Aufgabe läuft ein Timer",
|
|
1699
|
+
"staff.time_tracking.taskPicker.change": "Ändern",
|
|
1700
|
+
"staff.time_tracking.taskPicker.count": "{shown} von {total}",
|
|
1701
|
+
"staff.time_tracking.taskPicker.empty": "Keine Treffer für {term}",
|
|
1702
|
+
"staff.time_tracking.taskPicker.keyClose": "schließen",
|
|
1703
|
+
"staff.time_tracking.taskPicker.keyMove": "bewegen",
|
|
1704
|
+
"staff.time_tracking.taskPicker.keyPick": "wählen",
|
|
1705
|
+
"staff.time_tracking.taskPicker.loading": "Aufgaben werden geladen…",
|
|
1706
|
+
"staff.time_tracking.taskPicker.noProject": "Ohne Projekt",
|
|
1707
|
+
"staff.time_tracking.taskPicker.placeholder": "Aufgabe wählen",
|
|
1708
|
+
"staff.time_tracking.taskPicker.recent": "Zuletzt",
|
|
1709
|
+
"staff.time_tracking.taskPicker.search": "Aufgaben suchen",
|
|
1710
|
+
"staff.time_tracking.taskPicker.searchScoped": "Aufgaben in {project} suchen",
|
|
1711
|
+
"staff.time_tracking.taskStatuses.defaults.backlog": "Backlog",
|
|
1712
|
+
"staff.time_tracking.taskStatuses.defaults.done": "Erledigt",
|
|
1713
|
+
"staff.time_tracking.taskStatuses.defaults.inProgress": "In Arbeit",
|
|
1714
|
+
"staff.time_tracking.taskStatuses.defaults.inReview": "In Prüfung",
|
|
1715
|
+
"staff.time_tracking.taskStatuses.errors.defaultRequired": "Ein Projekt benötigt eine Standardspalte. Markieren Sie stattdessen eine andere Spalte als Standard.",
|
|
1716
|
+
"staff.time_tracking.taskStatuses.errors.doneRequired": "Ein Projekt benötigt mindestens eine Abschlussspalte. Markieren Sie zuerst eine andere Spalte als erledigt.",
|
|
1717
|
+
"staff.time_tracking.taskStatuses.errors.hasTasks": "Diese Spalte enthält noch Aufgaben. Verschieben Sie sie in eine andere Spalte, bevor Sie sie löschen.",
|
|
1718
|
+
"staff.time_tracking.taskStatuses.errors.idRequired": "Die ID des Aufgabenstatus ist erforderlich.",
|
|
1719
|
+
"staff.time_tracking.taskStatuses.errors.lastColumn": "Ein Projekt benötigt mindestens eine Spalte. Fügen Sie eine weitere Spalte hinzu, bevor Sie diese löschen.",
|
|
1720
|
+
"staff.time_tracking.taskStatuses.errors.notFound": "Aufgabenstatus nicht gefunden oder nicht zugänglich.",
|
|
1721
|
+
"staff.time_tracking.taskStatuses.errors.slugDuplicate": "Eine Spalte mit diesem Slug existiert in diesem Projekt bereits.",
|
|
1722
|
+
"staff.time_tracking.taskStatuses.errors.unknownIds": "Einige Spalten gehören nicht zu diesem Projekt.",
|
|
1723
|
+
"staff.time_tracking.tasks.errors.idRequired": "Aufgaben-ID ist erforderlich.",
|
|
1724
|
+
"staff.time_tracking.tasks.errors.notFound": "Aufgabe nicht gefunden oder nicht zugänglich.",
|
|
1725
|
+
"staff.time_tracking.tasks.errors.parentNotFound": "Übergeordnete Aufgabe nicht gefunden oder nicht zugänglich.",
|
|
1726
|
+
"staff.time_tracking.tasks.errors.parentProjectMismatch": "Eine Teilaufgabe muss im selben Projekt wie ihre übergeordnete Aufgabe bleiben.",
|
|
1727
|
+
"staff.time_tracking.tasks.errors.parentSelf": "Eine Aufgabe kann keine Teilaufgabe von sich selbst sein.",
|
|
1728
|
+
"staff.time_tracking.tasks.errors.projectMoveUnsupported": "Eine Aufgabe kann nicht in ein anderes Projekt verschoben werden. Erstellen Sie sie stattdessen im Zielprojekt.",
|
|
1729
|
+
"staff.time_tracking.tasks.errors.referenceConflict": "Es konnte gerade keine Aufgabennummer vergeben werden. Bitte erneut versuchen.",
|
|
1730
|
+
"staff.time_tracking.tasks.errors.statusMissing": "Dieses Projekt hat noch keine Spalten, daher kann keine Aufgabe auf seinem Board abgelegt werden.",
|
|
1731
|
+
"staff.time_tracking.tasks.errors.statusNotFound": "Diese Spalte gehört nicht zu diesem Projekt.",
|
|
1732
|
+
"staff.time_tracking.tasks.errors.subtaskDepthExceeded": "Teilaufgaben sind nur eine Ebene tief. Eine Teilaufgabe kann keine eigenen Teilaufgaben haben.",
|
|
1733
|
+
"staff.time_tracking.timesheet.calendar.add": "+ hinzufügen",
|
|
1734
|
+
"staff.time_tracking.timesheet.calendar.nonBillable": "Nicht abrechenbar",
|
|
1735
|
+
"staff.time_tracking.timesheet.filters.allProjects": "Alle Projekte",
|
|
1736
|
+
"staff.time_tracking.timesheet.filters.me": "Ich",
|
|
1737
|
+
"staff.time_tracking.timesheet.filters.person": "Person",
|
|
1738
|
+
"staff.time_tracking.timesheet.footer.billable": "Abrechenbar:",
|
|
1739
|
+
"staff.time_tracking.timesheet.footer.overTarget": "+{duration} über Ziel",
|
|
1740
|
+
"staff.time_tracking.timesheet.footer.period": "Zeitraum:",
|
|
1741
|
+
"staff.time_tracking.timesheet.footer.target": "Ziel",
|
|
1742
|
+
"staff.time_tracking.timesheet.footer.targetWithDays": "Ziel ({days} T × {hours} Std.)",
|
|
1743
|
+
"staff.time_tracking.timesheet.footer.underTarget": "−{duration} bis Ziel",
|
|
1744
|
+
"staff.time_tracking.timesheet.grid.addTaskRow": "Aufgabenzeile hinzufügen",
|
|
1745
|
+
"staff.time_tracking.timesheet.grid.caption": "Zeiterfassungsraster: eine Zeile pro Projekt oder Aufgabe, eine Spalte pro Tag des Zeitraums.",
|
|
1746
|
+
"staff.time_tracking.timesheet.grid.empty.title": "Dieses Raster enthält noch keine Zeilen",
|
|
1747
|
+
"staff.time_tracking.timesheet.grid.errors.locked": "Einige dieser Zellen gehören zu einem abgeschlossenen Bericht und können nicht geändert werden. Sie sind jetzt als gesperrt markiert.",
|
|
1748
|
+
"staff.time_tracking.timesheet.grid.invalid": "Korrigieren Sie die markierte Zelle vor dem Speichern.",
|
|
1749
|
+
"staff.time_tracking.timesheet.grid.loading": "Zeiterfassungsraster wird geladen …",
|
|
1750
|
+
"staff.time_tracking.timesheet.grid.lockedCell": "Durch einen abgeschlossenen Bericht gesperrt",
|
|
1751
|
+
"staff.time_tracking.timesheet.grid.noRows": "Fügen Sie eine Projektzeile hinzu, um das Raster zu füllen.",
|
|
1752
|
+
"staff.time_tracking.timesheet.grid.rowMode.label": "Rasterzeilen",
|
|
1753
|
+
"staff.time_tracking.timesheet.grid.rowMode.projects": "Projekte",
|
|
1754
|
+
"staff.time_tracking.timesheet.grid.rowMode.tasks": "Projekte + Aufgaben",
|
|
1755
|
+
"staff.time_tracking.timesheet.grid.weekend": "Wochenendtag",
|
|
1756
|
+
"staff.time_tracking.timesheet.list.aboveTarget": "{duration} über Ziel",
|
|
1757
|
+
"staff.time_tracking.timesheet.list.belowTarget": "{duration} unter Ziel",
|
|
1758
|
+
"staff.time_tracking.timesheet.list.duplicate": "Duplizieren",
|
|
1759
|
+
"staff.time_tracking.timesheet.list.edit": "Bearbeiten",
|
|
1760
|
+
"staff.time_tracking.timesheet.list.empty": "Keine Tage in diesem Zeitraum.",
|
|
1761
|
+
"staff.time_tracking.timesheet.list.locked": "gesperrt",
|
|
1762
|
+
"staff.time_tracking.timesheet.list.noEntries": "An diesem Tag wurde noch nichts erfasst.",
|
|
1763
|
+
"staff.time_tracking.timesheet.list.noTask": "Keine Aufgabe",
|
|
1764
|
+
"staff.time_tracking.timesheet.list.nonBillable": "nicht abrechenbar",
|
|
1765
|
+
"staff.time_tracking.timesheet.list.quickAdd.duration": "Dauer",
|
|
1766
|
+
"staff.time_tracking.timesheet.list.quickAdd.start": "Startzeit",
|
|
1767
|
+
"staff.time_tracking.timesheet.list.quickAdd.startPlaceholder": "13:30",
|
|
1768
|
+
"staff.time_tracking.timesheet.list.quickAdd.submit": "Hinzufügen",
|
|
1769
|
+
"staff.time_tracking.timesheet.list.quickAdd.target": "Projekt oder Aufgabe",
|
|
1770
|
+
"staff.time_tracking.timesheet.period.label": "Zeitraum",
|
|
1771
|
+
"staff.time_tracking.timesheet.period.month": "Monat",
|
|
1772
|
+
"staff.time_tracking.timesheet.period.next": "Nächster Zeitraum",
|
|
1773
|
+
"staff.time_tracking.timesheet.period.previous": "Vorheriger Zeitraum",
|
|
1774
|
+
"staff.time_tracking.timesheet.period.quarter": "Quartal",
|
|
1775
|
+
"staff.time_tracking.timesheet.period.today": "Heute",
|
|
1776
|
+
"staff.time_tracking.timesheet.period.week": "Woche",
|
|
1777
|
+
"staff.time_tracking.timesheet.period.year": "Jahr",
|
|
1778
|
+
"staff.time_tracking.timesheet.truncated": "Es werden die ersten {count} Einträge dieses Zeitraums angezeigt — grenzen Sie den Zeitraum oder die Filter ein, um den Rest zu sehen.",
|
|
1779
|
+
"staff.time_tracking.timesheet.view.calendar": "Kalender",
|
|
1780
|
+
"staff.time_tracking.timesheet.view.grid": "Raster",
|
|
1781
|
+
"staff.time_tracking.timesheet.view.label": "Timesheet-Ansicht",
|
|
1782
|
+
"staff.time_tracking.timesheet.view.list": "Liste",
|
|
939
1783
|
"staff.timesheets.errors.bulkSave": "Zeiteinträge konnten nicht im Stapel gespeichert werden.",
|
|
1784
|
+
"staff.timesheets.errors.bulkTagsUnsupported": "Tags können nicht im Stundenzettel-Raster geändert werden. Öffnen Sie den Zeiteintrag, um seine Tags zu bearbeiten.",
|
|
1785
|
+
"staff.timesheets.errors.copyDaySameDate": "Quell- und Zieltag müssen unterschiedlich sein.",
|
|
1786
|
+
"staff.timesheets.errors.copyDayTargetNotEmpty": "Der Zieltag enthält bereits Zeiteinträge. Prüfen Sie diese zuerst oder bestätigen Sie, um die Kopien trotzdem hinzuzufügen.",
|
|
940
1787
|
"staff.timesheets.errors.entryNotFound": "Zeiteintrag nicht gefunden, gelöscht oder Ihnen nicht zugeordnet.",
|
|
941
1788
|
"staff.timesheets.errors.invalidBody": "Ungültiger Anfragetext.",
|
|
942
1789
|
"staff.timesheets.errors.invalidProjectId": "Ungültige Projekt-ID.",
|
|
1790
|
+
"staff.timesheets.errors.memberNotFound": "Zeitprojektmitglied nicht gefunden oder nicht zugänglich.",
|
|
943
1791
|
"staff.timesheets.errors.memberRequired": "Die ID des Zeitprojektmitglieds ist erforderlich.",
|
|
944
1792
|
"staff.timesheets.errors.missingEntryId": "Eintrags-ID fehlt.",
|
|
945
1793
|
"staff.timesheets.errors.myProjects": "Ihre Projekte konnten nicht geladen werden.",
|
|
@@ -948,10 +1796,13 @@
|
|
|
948
1796
|
"staff.timesheets.errors.notAssigned": "Sie sind diesem Projekt nicht zugewiesen.",
|
|
949
1797
|
"staff.timesheets.errors.notOwner": "Sie können nur Ihre eigenen Zeiteinträge verwalten.",
|
|
950
1798
|
"staff.timesheets.errors.projectCodeDuplicate": "Ein Projekt mit diesem Code existiert bereits.",
|
|
1799
|
+
"staff.timesheets.errors.projectCurrencyLocked": "Dieses Projekt hat Zeiteinträge, die in einem abgeschlossenen Bericht eingefroren sind. Entsperren Sie diese Berichte, bevor Sie die Währung ändern.",
|
|
951
1800
|
"staff.timesheets.errors.projectNotFound": "Zeitprojekt nicht gefunden oder nicht zugänglich.",
|
|
1801
|
+
"staff.timesheets.errors.projectRequired": "Die ID des Zeitprojekts ist erforderlich.",
|
|
952
1802
|
"staff.timesheets.errors.projectsKpis": "Failed to load project KPIs.",
|
|
953
1803
|
"staff.timesheets.errors.segmentCreate": "Zeiteintragssegment konnte nicht erstellt werden.",
|
|
954
1804
|
"staff.timesheets.errors.staffMemberNotFound": "Mitarbeiter nicht gefunden oder nicht zugänglich.",
|
|
1805
|
+
"staff.timesheets.errors.taskNotFound": "Aufgabe nicht gefunden oder nicht zugänglich.",
|
|
955
1806
|
"staff.timesheets.errors.timerAlreadyRunning": "Es läuft bereits ein anderer Timer. Stoppen Sie ihn, bevor Sie einen neuen starten.",
|
|
956
1807
|
"staff.timesheets.errors.timerAlreadyStarted": "Der Timer ist für diesen Eintrag bereits gestartet.",
|
|
957
1808
|
"staff.timesheets.errors.timerStart": "Timer konnte nicht gestartet werden.",
|
|
@@ -1038,13 +1889,56 @@
|
|
|
1038
1889
|
"staff.timesheets.projects.actions.viewDetails": "View Details",
|
|
1039
1890
|
"staff.timesheets.projects.active_employees": "Active Employees",
|
|
1040
1891
|
"staff.timesheets.projects.add_employee": "Add Employee",
|
|
1892
|
+
"staff.timesheets.projects.detail.administration": "Verwaltung",
|
|
1893
|
+
"staff.timesheets.projects.detail.autoColor": "Automatisch",
|
|
1894
|
+
"staff.timesheets.projects.detail.billableHours": "Abrechenbare Stunden",
|
|
1895
|
+
"staff.timesheets.projects.detail.budgetAmount": "{percent}% von {value}",
|
|
1896
|
+
"staff.timesheets.projects.detail.budgetBadge": "Budget {percent}%",
|
|
1897
|
+
"staff.timesheets.projects.detail.budgetHint": "Festlegen, um die Auslastung zu verfolgen",
|
|
1898
|
+
"staff.timesheets.projects.detail.budgetHours": "{percent}% von {value} Std.",
|
|
1899
|
+
"staff.timesheets.projects.detail.budgetUsage": "Budgetauslastung",
|
|
1900
|
+
"staff.timesheets.projects.detail.colDate": "Datum",
|
|
1901
|
+
"staff.timesheets.projects.detail.colDescription": "Beschreibung",
|
|
1902
|
+
"staff.timesheets.projects.detail.colHours": "Stunden",
|
|
1903
|
+
"staff.timesheets.projects.detail.colWho": "Person",
|
|
1904
|
+
"staff.timesheets.projects.detail.commercials": "Abrechnung",
|
|
1905
|
+
"staff.timesheets.projects.detail.cost": "Kosten bis heute",
|
|
1906
|
+
"staff.timesheets.projects.detail.costBasis": "{hours} × {rate}",
|
|
1907
|
+
"staff.timesheets.projects.detail.createdAt": "Erstellt",
|
|
1908
|
+
"staff.timesheets.projects.detail.currencyLockedHint": "Gesperrt, weil für dieses Projekt bereits Stunden erfasst wurden.",
|
|
1909
|
+
"staff.timesheets.projects.detail.delivery": "Leistung",
|
|
1910
|
+
"staff.timesheets.projects.detail.details": "Details",
|
|
1911
|
+
"staff.timesheets.projects.detail.entryCount": "Zeiteinträge",
|
|
1912
|
+
"staff.timesheets.projects.detail.entryCountOne": "1 Eintrag",
|
|
1913
|
+
"staff.timesheets.projects.detail.entryCountShort": "{count} Einträge",
|
|
1914
|
+
"staff.timesheets.projects.detail.loadingTasks": "Aufgaben werden geladen…",
|
|
1915
|
+
"staff.timesheets.projects.detail.loadingTime": "Zeiteinträge werden geladen…",
|
|
1916
|
+
"staff.timesheets.projects.detail.locked": "gesperrt",
|
|
1917
|
+
"staff.timesheets.projects.detail.lockedEntries": "In Berichten gesperrt",
|
|
1918
|
+
"staff.timesheets.projects.detail.loggedHours": "Erfasste Stunden",
|
|
1919
|
+
"staff.timesheets.projects.detail.no": "Nein",
|
|
1920
|
+
"staff.timesheets.projects.detail.noBudget": "Kein Budget",
|
|
1921
|
+
"staff.timesheets.projects.detail.noTasks": "Noch keine Aufgaben",
|
|
1922
|
+
"staff.timesheets.projects.detail.noTime": "Noch keine Zeit erfasst",
|
|
1923
|
+
"staff.timesheets.projects.detail.noTimeHint": "Für dieses Projekt erfasste Stunden erscheinen hier.",
|
|
1924
|
+
"staff.timesheets.projects.detail.nonBillable": "{hours} nicht abrechenbar",
|
|
1925
|
+
"staff.timesheets.projects.detail.nonBillableTag": "nicht abrechenbar",
|
|
1926
|
+
"staff.timesheets.projects.detail.startedOn": "Start {date}",
|
|
1041
1927
|
"staff.timesheets.projects.detail.subtitle": "Project Settings",
|
|
1928
|
+
"staff.timesheets.projects.detail.tabTasks": "Aufgaben",
|
|
1929
|
+
"staff.timesheets.projects.detail.tabTeam": "Team",
|
|
1930
|
+
"staff.timesheets.projects.detail.tabTime": "Zeit",
|
|
1931
|
+
"staff.timesheets.projects.detail.tabs": "Projektbereiche",
|
|
1932
|
+
"staff.timesheets.projects.detail.trendAria": "Stunden pro Woche, letzte 7 Wochen",
|
|
1933
|
+
"staff.timesheets.projects.detail.updatedAt": "Zuletzt geändert",
|
|
1934
|
+
"staff.timesheets.projects.detail.yes": "Ja",
|
|
1042
1935
|
"staff.timesheets.projects.employees.addError": "Failed to add employee.",
|
|
1043
1936
|
"staff.timesheets.projects.employees.added": "Employee added.",
|
|
1044
1937
|
"staff.timesheets.projects.employees.assignmentStartDate": "Assignment Start Date",
|
|
1045
1938
|
"staff.timesheets.projects.employees.department": "Department",
|
|
1046
1939
|
"staff.timesheets.projects.employees.empty": "No employees assigned yet.",
|
|
1047
1940
|
"staff.timesheets.projects.employees.endDate": "Assignment end",
|
|
1941
|
+
"staff.timesheets.projects.employees.loadError": "Teammitglieder konnten nicht geladen werden. Prüfen Sie Ihre Verbindung und versuchen Sie es erneut.",
|
|
1048
1942
|
"staff.timesheets.projects.employees.loading": "Loading employees...",
|
|
1049
1943
|
"staff.timesheets.projects.employees.noResults": "No team members found",
|
|
1050
1944
|
"staff.timesheets.projects.employees.remove": "Remove",
|
|
@@ -1069,6 +1963,8 @@
|
|
|
1069
1963
|
"staff.timesheets.projects.form.actions.create": "Create",
|
|
1070
1964
|
"staff.timesheets.projects.form.actions.edit": "Edit Project",
|
|
1071
1965
|
"staff.timesheets.projects.form.actions.save": "Save",
|
|
1966
|
+
"staff.timesheets.projects.form.billableByDefault": "Standardmäßig abrechenbar",
|
|
1967
|
+
"staff.timesheets.projects.form.budget": "Budget",
|
|
1072
1968
|
"staff.timesheets.projects.form.code": "Code",
|
|
1073
1969
|
"staff.timesheets.projects.form.codePlaceholder": "PROJECT-001",
|
|
1074
1970
|
"staff.timesheets.projects.form.color": "Projektfarbe",
|
|
@@ -1076,11 +1972,14 @@
|
|
|
1076
1972
|
"staff.timesheets.projects.form.costCenter": "Cost center",
|
|
1077
1973
|
"staff.timesheets.projects.form.costCenterPlaceholder": "Cost center code",
|
|
1078
1974
|
"staff.timesheets.projects.form.createTitle": "Create project",
|
|
1975
|
+
"staff.timesheets.projects.form.currency": "Währung",
|
|
1976
|
+
"staff.timesheets.projects.form.customer": "Kunde",
|
|
1079
1977
|
"staff.timesheets.projects.form.description": "Description",
|
|
1080
1978
|
"staff.timesheets.projects.form.descriptionPlaceholder": "Project description",
|
|
1081
1979
|
"staff.timesheets.projects.form.editTitle": "Edit project",
|
|
1082
1980
|
"staff.timesheets.projects.form.groupDetails": "Additional Information",
|
|
1083
1981
|
"staff.timesheets.projects.form.groupMain": "Project Details",
|
|
1982
|
+
"staff.timesheets.projects.form.hourlyRate": "Stundensatz",
|
|
1084
1983
|
"staff.timesheets.projects.form.name": "Name",
|
|
1085
1984
|
"staff.timesheets.projects.form.namePlaceholder": "Project name",
|
|
1086
1985
|
"staff.timesheets.projects.form.projectType": "Project type",
|