Generated by Spark: Add translations to remaining specialized components (RateTemplateManager, NotificationRulesManager, ShiftPatternManager, HolidayPayManager, ContractValidator)

This commit is contained in:
2026-02-05 17:42:52 +00:00
committed by GitHub
parent 1644cdbdc2
commit d88027c4c9

View File

@@ -1148,13 +1148,102 @@
}
},
"shiftPatterns": {
"title": "Shift Patterns",
"title": "Shift Pattern Templates",
"subtitle": "Create reusable templates for recurring shift schedules",
"createTemplate": "Create Template",
"createPattern": "Create Pattern",
"editTemplate": "Edit Template",
"editPattern": "Edit Pattern",
"deletePattern": "Delete Pattern",
"duplicatePattern": "Duplicate Pattern",
"totalTemplates": "Total Templates",
"mostUsed": "Most Used",
"timesApplied": "Times applied",
"nightShifts": "Night Shifts",
"nightShiftTemplates": "Night shift templates",
"activeShiftPatterns": "Active shift patterns",
"patternName": "Pattern Name",
"patternNameLabel": "Template Name *",
"patternNamePlaceholder": "e.g. Night Shift - Mon-Fri",
"description": "Description",
"descriptionLabel": "Description",
"descriptionPlaceholder": "Optional description of the shift pattern",
"shiftType": "Shift Type",
"shiftTypeLabel": "Shift Type *",
"startTime": "Start Time",
"startTimeLabel": "Start Time *",
"endTime": "End Time",
"endTimeLabel": "End Time *",
"breakMinutes": "Break (mins)",
"breakMinutesLabel": "Break (mins)",
"rateMultiplier": "Rate Multiplier",
"rateMultiplierLabel": "Rate Multiplier",
"rateMultiplierHelper": "Standard rate × {{multiplier}} = £{{rate}} per hour (example at £25/hr)",
"daysOfWeek": "Days of Week",
"daysOfWeekLabel": "Days of Week *",
"isRecurring": "Recurring",
"dayShift": "Day Shift",
"nightShift": "Night Shift",
"weekendShift": "Weekend Shift",
"rotatingPattern": "Rotating Pattern"
"weekendShift": "Weekend",
"eveningShift": "Evening",
"earlyMorningShift": "Early Morning",
"standardShift": "Standard",
"overtimeShift": "Overtime",
"holidayShift": "Holiday",
"splitShift": "Split Shift",
"rotatingPattern": "Rotating Pattern",
"shiftTypes": {
"night": "Night Shift",
"weekend": "Weekend",
"evening": "Evening",
"earlyMorning": "Early Morning",
"standard": "Standard",
"overtime": "Overtime",
"holiday": "Holiday",
"splitShift": "Split Shift"
},
"daysOfWeekShort": {
"monday": "Mon",
"tuesday": "Tue",
"wednesday": "Wed",
"thursday": "Thu",
"friday": "Fri",
"saturday": "Sat",
"sunday": "Sun"
},
"daysOfWeekFull": {
"monday": "Monday",
"tuesday": "Tuesday",
"wednesday": "Wednesday",
"thursday": "Thursday",
"friday": "Friday",
"saturday": "Saturday",
"sunday": "Sunday"
},
"createDialog": {
"title": "Create Shift Pattern Template",
"editTitle": "Edit Shift Pattern Template",
"description": "Define a reusable template for recurring shift schedules"
},
"patternSummary": "Pattern Summary",
"hoursPerShift": "Hours per shift",
"daysPerWeek": "Days per week",
"totalWeeklyHours": "Total weekly hours",
"weeklyHours": "Weekly hours",
"breakTime": "Break time",
"timesUsed": "Times used",
"patternCreated": "Shift pattern template created",
"patternUpdated": "Shift pattern template updated",
"patternDeleted": "Shift pattern template deleted",
"patternDuplicated": "Shift pattern template duplicated",
"fillAllFields": "Please fill in all required fields",
"noPatterns": "No shift patterns yet",
"noPatternsDescription": "Create your first template to streamline recurring shift scheduling",
"edit": "Edit",
"duplicate": "Duplicate",
"delete": "Delete",
"hoursLabel": "{{hours}}h",
"rateLabel": "{{rate}}× rate"
},
"metrics": {
"totalRevenue": "Total Revenue",
@@ -1448,31 +1537,46 @@
},
"notificationRules": {
"title": "Notification Rules",
"subtitle": "Configure automated notification triggers and conditions",
"subtitle": "Configure automated notification triggers and workflows",
"createRule": "Create Rule",
"editRule": "Edit Rule",
"deleteRule": "Delete Rule",
"activeRules": "Active Rules",
"inactiveRules": "Inactive Rules",
"totalRules": "Total Rules",
"ruleName": "Rule Name",
"ruleNamePlaceholder": "Enter rule name",
"ruleNameLabel": "Rule Name *",
"ruleNamePlaceholder": "Timesheet Approval Notification",
"description": "Description",
"descriptionPlaceholder": "Brief description of this rule",
"descriptionLabel": "Description",
"descriptionPlaceholder": "Notify managers when a new timesheet is submitted",
"enabled": "Enabled",
"enableThisRule": "Enable this rule",
"triggerEvent": "Trigger Event",
"triggerEventLabel": "Trigger Event *",
"notificationType": "Notification Type",
"priority": "Priority",
"priorityLabel": "Priority *",
"channel": "Channel",
"channelLabel": "Channel *",
"recipients": "Recipients",
"recipientsPlaceholder": "email1@example.com, email2@example.com",
"messageTemplate": "Message Template",
"messageTemplatePlaceholder": "Message with {{variables}}",
"delayMinutes": "Delay (Minutes)",
"messageTemplateLabel": "Message Template *",
"messageTemplatePlaceholder": "New timesheet submitted by {workerName} for {clientName}",
"messageTemplateHelper": "Use placeholders like {workerName}, {clientName}, {amount}, etc.",
"delayMinutes": "Delay (minutes)",
"delayLabel": "Delay (minutes)",
"delayPlaceholder": "0",
"conditions": "Conditions",
"addCondition": "Add Condition",
"field": "Field",
"operator": "Operator",
"value": "Value",
"trigger": "Trigger",
"delay": "Delay",
"allRecipients": "All",
"viewMessageTemplate": "View message template",
"events": {
"timesheetSubmitted": "Timesheet Submitted",
"timesheetApproved": "Timesheet Approved",
@@ -1485,9 +1589,18 @@
"payrollCompleted": "Payroll Completed"
},
"channels": {
"inApp": "In-App",
"email": "Email",
"both": "Both"
"inApp": "In-App Only",
"inAppOnly": "In-App Only",
"email": "Email Only",
"emailOnly": "Email Only",
"both": "In-App & Email",
"inAppAndEmail": "In-App & Email"
},
"priorities": {
"low": "Low",
"medium": "Medium",
"high": "High",
"urgent": "Urgent"
},
"operators": {
"equals": "Equals",
@@ -1495,47 +1608,90 @@
"lessThan": "Less Than",
"contains": "Contains"
},
"createDialog": {
"title": "Create Notification Rule",
"editTitle": "Edit Notification Rule",
"description": "Define when and how notifications should be sent"
},
"ruleCreated": "Notification rule created",
"ruleUpdated": "Notification rule updated",
"ruleDeleted": "Notification rule deleted",
"ruleEnabled": "Rule enabled",
"ruleDisabled": "Rule disabled",
"fillAllFields": "Please fill in all required fields",
"noRules": "No notification rules configured",
"noRulesDescription": "Create your first rule to automate notifications"
"fillAllFields": "Please fill in required fields",
"noRules": "No notification rules",
"noRulesDescription": "Create your first rule to automate notifications",
"recipientCount": "{{count}} recipients",
"minLabel": "{{value}} min"
},
"rateTemplates": {
"title": "Rate Templates",
"subtitle": "Manage rate cards and pricing templates",
"subtitle": "Pre-configured rates for roles and clients",
"createTemplate": "Create Template",
"editTemplate": "Edit Template",
"deleteTemplate": "Delete Template",
"duplicateTemplate": "Duplicate Template",
"templateName": "Template Name",
"templateNamePlaceholder": "e.g., Senior Developer - Client A",
"role": "Role",
"rolePlaceholder": "Job role or position",
"client": "Client (Optional)",
"clientPlaceholder": "Client name",
"standardRate": "Standard Rate",
"overtimeRate": "Overtime Rate",
"weekendRate": "Weekend Rate",
"nightShiftRate": "Night Shift Rate",
"holidayRate": "Holiday Rate",
"currency": "Currency",
"effectiveFrom": "Effective From",
"isActive": "Active",
"activate": "Activate",
"deactivate": "Deactivate",
"totalTemplates": "Total Templates",
"activeTemplates": "Active Templates",
"inactiveTemplates": "Inactive Templates",
"perHour": "per hour",
"templateName": "Template Name",
"templateNameLabel": "Template Name *",
"templateNamePlaceholder": "e.g., Senior Developer - Acme Corp",
"role": "Role",
"roleLabel": "Role *",
"rolePlaceholder": "e.g., Senior Developer",
"client": "Client",
"clientLabel": "Client (Optional)",
"clientPlaceholder": "e.g., Acme Corp",
"standardRate": "Standard Rate",
"standardRateLabel": "Standard Rate (£/hr) *",
"standardRatePlaceholder": "25.00",
"overtimeRate": "Overtime Rate",
"overtimeRateLabel": "Overtime Rate (£/hr)",
"overtimeRatePlaceholder": "Auto-calculated as 1.5x",
"overtimeRateHelper": "Default: 1.5x standard",
"weekendRate": "Weekend Rate",
"weekendRateLabel": "Weekend Rate (£/hr)",
"weekendRatePlaceholder": "Auto-calculated as 1.5x",
"weekendRateHelper": "Default: 1.5x standard",
"nightShiftRate": "Night Shift Rate",
"nightShiftRateLabel": "Night Shift Rate (£/hr)",
"nightShiftRatePlaceholder": "Auto-calculated as 1.25x",
"nightShiftRateHelper": "Default: 1.25x standard",
"holidayRate": "Holiday Rate",
"holidayRateLabel": "Holiday Rate (£/hr)",
"holidayRatePlaceholder": "Auto-calculated as 2x",
"holidayRateHelper": "Default: 2x standard",
"currency": "Currency",
"currencyLabel": "Currency",
"effectiveFrom": "Effective From",
"effectiveFromLabel": "Effective From",
"isActive": "Active",
"perHour": "/hr",
"perHourFull": "per hour",
"ratesConfiguration": "Rates Configuration",
"createDialog": {
"title": "Create Rate Template",
"editTitle": "Edit Rate Template",
"description": "Configure standard and premium rates for a role or client"
},
"templateCreated": "Rate template created",
"templateUpdated": "Rate template updated",
"templateDeleted": "Rate template deleted",
"templateDuplicated": "Template duplicated",
"fillAllFields": "Please fill in all required fields",
"noTemplates": "No rate templates found",
"noTemplatesDescription": "Create your first rate template"
"templateDuplicated": "Rate template duplicated",
"fillAllFields": "Please fill in required fields",
"noTemplates": "No rate templates",
"noTemplatesDescription": "Create your first rate template to get started",
"standard": "Standard",
"overtime": "Overtime",
"weekend": "Weekend",
"night": "Night",
"holiday": "Holiday",
"active": "Active",
"inactive": "Inactive",
"effectiveFromDate": "Effective from {{date}}"
},
"customReports": {
"title": "Custom Report Builder",
@@ -1576,20 +1732,36 @@
"selectReportType": "Select a report type to begin"
},
"holidayPay": {
"title": "Holiday Pay Manager",
"subtitle": "Track holiday accruals and manage time off requests",
"title": "Holiday Pay Management",
"subtitle": "Track accruals, requests, and balances",
"newHolidayRequest": "New Holiday Request",
"createRequest": "Create Request",
"submitRequest": "Submit Request",
"calculateAccrual": "Calculate Accrual",
"accruals": "Accruals",
"requests": "Requests",
"createRequest": "Create Request",
"calculateAccrual": "Calculate Accrual",
"totalAccrued": "Total Accrued",
"totalAccruedDays": "Total Accrued",
"pendingRequests": "Pending Requests",
"daysTakenYTD": "Days Taken (YTD)",
"totalTaken": "Total Taken",
"totalRemaining": "Total Remaining",
"workerName": "Worker Name",
"workerNameLabel": "Worker Name",
"workerNamePlaceholder": "Enter worker name",
"accruedDays": "Accrued Days",
"accrued": "Accrued",
"takenDays": "Taken Days",
"taken": "Taken",
"remainingDays": "Remaining Days",
"remaining": "Remaining",
"startDate": "Start Date",
"startDateLabel": "Start Date",
"endDate": "End Date",
"endDateLabel": "End Date",
"days": "Days",
"daysRequested": "Days Requested",
"daysRequestedLabel": "Days Requested",
"status": {
"pending": "Pending",
"approved": "Approved",
@@ -1599,36 +1771,81 @@
"approvedDate": "Approved Date",
"approveRequest": "Approve Request",
"rejectRequest": "Reject Request",
"requestCreated": "Holiday request created",
"requestApproved": "Request approved",
"requestRejected": "Request rejected",
"approve": "Approve",
"reject": "Reject",
"createDialog": {
"title": "Create Holiday Request",
"description": "Submit a new holiday request for approval"
},
"requestCreated": "Holiday request submitted",
"requestApproved": "Holiday request approved",
"requestRejected": "Holiday request rejected",
"accrualCalculated": "Holiday accrual calculated",
"insufficientDays": "Insufficient holiday days remaining",
"totalAccrued": "Total Accrued",
"totalTaken": "Total Taken",
"totalRemaining": "Total Remaining",
"daysLabel": "{{count}} days"
"insufficientDays": "Insufficient holiday balance",
"insufficientBalance": "Insufficient holiday balance",
"totalAccruedLabel": "Total Accrued",
"totalTakenLabel": "Total Taken",
"totalRemainingLabel": "Total Remaining",
"daysLabel": "{{count}} days",
"daysCount": "days",
"lastUpdated": "Last updated {{date}}",
"requestedOn": "Requested on {{date}}",
"noAccruals": "No holiday accruals",
"noAccrualsDescription": "Accruals are calculated automatically from timesheets",
"noRequests": "No holiday requests",
"noRequestsDescription": "Create a new holiday request to get started",
"accrualCalculation": "Accrual Calculation",
"accrualCalculationDescription": "Holiday pay accrues at {{rate}}% of hours worked (5.6 weeks per year statutory minimum)",
"tabs": {
"accruals": "Accruals ({{count}})",
"requests": "Requests ({{count}} pending)"
},
"fillAllFields": "Please fill in all fields"
},
"contractValidator": {
"title": "Contract Validator",
"subtitle": "Validate timesheets against contract terms and rate cards",
"title": "Contract Validation",
"subtitle": "Validate timesheets against rate cards and compliance rules",
"validationResults": "Validation Results",
"validationErrors": "Validation Errors",
"validationErrorsBlocked": "Timesheets blocked from processing",
"warnings": "Warnings",
"warningsReview": "Review recommended",
"compliant": "Compliant",
"compliantReady": "Ready for processing",
"validTimesheets": "Valid Timesheets",
"timesheetsWithWarnings": "Timesheets with Warnings",
"timesheetsWithErrors": "Timesheets with Errors",
"validateAll": "Validate All",
"viewDetails": "View Details",
"errors": "Errors",
"warnings": "Warnings",
"fixIssues": "Fix Issues",
"review": "Review",
"approveAnyway": "Approve Anyway",
"errorsLabel": "Errors",
"warningsLabel": "Warnings",
"validationPassed": "Validation Passed",
"validationFailed": "Validation Failed",
"actionRequired": "Action Required",
"reviewRecommended": "Review Recommended",
"readyToProcess": "Ready to Process",
"errorDescription": "These timesheets have critical validation errors and cannot be processed",
"warningDescription": "These timesheets have potential issues but can be processed",
"compliantDescription": "These timesheets passed all validation checks",
"noRateCard": "No rate card assigned",
"rateBelowMinimum": "Rate below minimum allowed",
"rateExceedsMaximum": "Rate exceeds maximum threshold",
"rateTooLow": "Rate £{{rate}} is below minimum allowed (£{{minimum}})",
"rateTooHigh": "Rate £{{rate}} exceeds 3x standard rate",
"hoursExceedLimit": "Hours exceed daily limit",
"missingRequiredFields": "Missing required fields",
"validating": "Validating...",
"validationComplete": "Validation complete"
"validationComplete": "Validation complete",
"error": "Error",
"warning": "Warning",
"client": "Client",
"weekEnding": "Week Ending",
"hours": "Hours",
"amount": "Amount",
"moreCompliantTimesheets": "+ {{count}} more compliant timesheets"
},
"missingTimesheets": {
"title": "Missing Timesheets Report",