PlanTempusApp/PlanTempus.Application/Features/Localization/Translations/en.json
Janus C. H. Knudsen 7643a6ab82 Enhances service details with employees and addon sections
Adds new components for service employees and addons
Introduces detailed views with selectable employees and add-ons
Updates localization translations for new sections
Implements time range slider functionality for availability
2026-01-17 15:36:15 +01:00

566 lines
18 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"menu": {
"home": "Dashboard",
"calendar": "Calendar",
"pos": "Point of Sale",
"products": "Products & Inventory",
"suppliers": "Suppliers",
"customers": "Customers",
"employees": "Employees",
"services": "Services",
"reports": "Statistics & Reports",
"settings": "Settings",
"account": "Subscription & Account"
},
"groups": {
"overview": "Overview",
"data": "Data",
"analytics": "Analytics",
"system": "System"
},
"common": {
"save": "Save",
"cancel": "Cancel",
"search": "Search",
"close": "Close",
"delete": "Delete",
"edit": "Edit",
"add": "Add",
"from": "From",
"to": "To",
"all": "All",
"reset": "Reset",
"status": "Status",
"yes": "Yes",
"no": "No"
},
"sidebar": {
"lockScreen": "Lock screen",
"appName": "Salon OS"
},
"dashboard": {
"title": "Dashboard",
"subtitle": "Overview of today's activity",
"stats": {
"bookingsToday": "Bookings today",
"bookingsTrend": "4 completed, 2 in progress",
"expectedRevenue": "Expected revenue",
"revenueTrend": "+12% vs. average",
"occupancyRate": "Occupancy rate",
"occupancyTrend": "Good capacity",
"needsAttention": "Needs attention"
},
"ai": {
"header": "AI Analysis"
},
"bookings": {
"title": "Today's bookings",
"viewAll": "View all",
"currentTime": "Now:",
"status": {
"confirmed": "Confirmed",
"pending": "Pending",
"inProgress": "In progress",
"completed": "Completed"
}
},
"notifications": {
"title": "Notifications",
"viewAll": "View all",
"markAllRead": "Mark all as read"
},
"attentions": {
"title": "Needs attention",
"viewAll": "View all"
},
"quickStats": {
"title": "This week",
"bookings": "Bookings",
"revenue": "Revenue",
"newCustomers": "New customers",
"cancellations": "Cancellations",
"avgOccupancy": "Avg. occupancy"
},
"quickActions": {
"title": "Quick actions",
"newBooking": "New booking",
"newCustomer": "New customer"
},
"waitlist": {
"title": "Waitlist",
"count": "{count} waiting"
}
},
"cash": {
"title": "Cash Register",
"tabs": {
"overview": "Overview",
"reconciliation": "Reconciliation"
},
"stats": {
"reconciliationsInPeriod": "Reconciliations in period",
"totalRevenue": "Total revenue",
"cashSales": "Cash sales",
"totalDifference": "Total difference",
"transactionsToday": "Transactions today",
"revenueToday": "Revenue today",
"lastReconciliation": "Last reconciliation",
"openedRegister": "Opened register"
},
"filter": {
"register": "Register",
"approved": "Approved",
"draft": "Draft"
},
"table": {
"date": "Date",
"id": "ID",
"period": "Period",
"register": "Register",
"closedBy": "Closed by",
"revenue": "Revenue",
"difference": "Difference",
"selected": "{count} selected",
"noneSelected": "0 selected",
"showingCount": "Showing {count} reconciliations",
"exportSaft": "Export SAF-T",
"downloadCsv": "Download CSV",
"downloadPdf": "Download PDF",
"viewTransactions": "View transactions"
},
"revenue": {
"title": "Period revenue",
"subtitle": "System vs. control",
"cardPayments": "Card payments",
"mobilePay": "MobilePay / Online",
"cashSales": "Cash sales",
"hint": "Card and MobilePay are reconciled against bank/acquirer. Cash is counted below."
},
"balance": {
"title": "Cash in register",
"startBalance": "Starting balance",
"startHint": "Carried over from last reconciliation",
"payouts": "Payouts / Receipts",
"payoutsHint": "Total receipts paid in cash",
"toBank": "Withdrawn to bank",
"toBankHint": "Cash set aside",
"expected": "Expected cash balance",
"counted": "Counted cash balance",
"countedHint": "What is actually in the register?"
},
"difference": {
"title": "Cash difference",
"match": "Register balanced",
"over": "Overage",
"under": "Shortage"
},
"period": {
"title": "Period information",
"dateRange": "Period",
"register": "Register",
"employee": "Employee"
},
"note": {
"title": "Reconciliation note",
"placeholder": "Describe reason for difference..."
},
"approval": {
"title": "Close the day",
"approvedBy": "Approved by (optional)",
"selectPlaceholder": "Select...",
"confirmation": "I confirm that the register has been counted and the figures have been entered to the best of my ability.",
"saveDraft": "Save as draft",
"approve": "Approve & lock"
},
"status": {
"draft": "Draft",
"approved": "Approved"
},
"systemNote": "The system records when and by whom approval was made simple audit trail."
},
"profile": {
"title": "Profile",
"myProfile": "My profile",
"settings": "Settings",
"darkMode": "Dark mode",
"logout": "Log out"
},
"account": {
"title": "Subscription & Account",
"subtitle": "Manage your subscription and payment info",
"subscription": {
"title": "Your subscription",
"currentPlan": "Current plan",
"switchTo": "Switch to {plan}",
"contactSales": "Contact sales",
"contactUs": "Contact us",
"pricePerMonth": "/mo"
},
"billing": {
"title": "Payment & Invoices"
},
"payment": {
"frequency": "Payment frequency",
"monthly": "Monthly",
"yearly": "Yearly",
"nextPayment": "Next payment",
"amount": "Amount",
"cardExpiry": "Card expiry",
"change": "Change",
"switchToYearly": "Switch to yearly billing (save 15%)"
},
"invoices": {
"title": "Invoice history",
"date": "Date",
"invoiceNumber": "Invoice no.",
"amount": "Amount",
"download": "PDF",
"paid": "Paid",
"pending": "Pending",
"overdue": "Overdue"
}
},
"services": {
"title": "Services",
"subtitle": "Manage services and pricing",
"tabs": {
"services": "Services",
"categories": "Categories"
},
"stats": {
"totalServices": "Total services",
"activeCategories": "Active categories",
"averagePrice": "Avg. price"
},
"searchPlaceholder": "Search for service...",
"createService": "Create service",
"createCategory": "Create category",
"table": {
"service": "Service",
"category": "Category",
"duration": "Duration",
"price": "Price",
"serviceCount": "Service count"
},
"detail": {
"back": "Back to services",
"save": "Save changes",
"tabs": {
"general": "General",
"prices": "Prices",
"duration": "Duration",
"employees": "Employees",
"addons": "Add-ons",
"rules": "Rules"
},
"general": {
"basic": "Basic",
"serviceName": "Service name",
"category": "Category",
"calendarColor": "Calendar color",
"isActive": "Service active",
"internalNotes": "Internal notes",
"bookingType": "Booking type",
"canBookAsMain": "Can be booked as main service",
"canBookAsMainDesc": "Shown in service list and can be booked independently",
"canBookAsAddon": "Can be booked as add-on",
"canBookAsAddonDesc": "Can be added as extra service to other services",
"onlineBooking": "Online booking",
"showInOnlineBooking": "Show in online booking",
"showInOnlineBookingDesc": "Visible to customers in online booking",
"isFeatured": "Featured service",
"isFeaturedDesc": "Shown at top with featured styling",
"description": "Description",
"image": "Image",
"uploadImage": "+ Upload image"
},
"prices": {
"priceStructure": "Price structure",
"simplePrice": "Simple price",
"matrixPrice": "Matrix price",
"price": "Price",
"level": "Level",
"shortHair": "Short hair",
"mediumHair": "Medium hair",
"longHair": "Long hair",
"extraLongHair": "Extra long",
"addLevel": "Add level or hair length",
"economy": "Economy",
"vatRate": "VAT rate",
"productCost": "Product cost",
"commission": "Commission",
"discounts": "Discounts & Loyalty",
"memberDiscount": "Member discount (10%)",
"giftCardPayment": "Can be paid with gift card",
"loyaltyPoints": "Earn loyalty points"
},
"duration": {
"durationVariants": "Duration variants",
"addVariant": "Add variant",
"bufferTimes": "Buffer times",
"bufferBefore": "Buffer before appointment",
"bufferAfter": "Buffer after appointment",
"cleanupTime": "Cleanup time",
"minutes": "min"
},
"rules": {
"bookingRules": "Booking rules",
"minNotice": "Minimum notice",
"maxAdvanceBooking": "Max. advance booking",
"cancellationDeadline": "Cancellation deadline",
"noShowFee": "No-show fee",
"requirements": "Requirements & Preparation",
"requiresConsultation": "Consultation required",
"requiresConsultationDesc": "Customer must have consultation before first booking",
"requiresPatchTest": "Patch test required",
"requiresPatchTestDesc": "Allergy test 48 hours before color treatment (new customers)",
"ageRestriction": "Age restriction",
"ageRestrictionDesc": "Minimum age for booking this service",
"onlineBookingSettings": "Online booking settings",
"showInOnlineBooking": "Show in online booking",
"allowEmployeeSelection": "Allow employee selection",
"showPrice": "Show price",
"showDuration": "Show duration"
},
"employees": {
"employeesForService": "Employees performing this service",
"selectAll": "Select all / Deselect all",
"availability": "Availability",
"duration": "Duration"
},
"addons": {
"addonsForService": "Add-ons for this service",
"addExistingAddon": "Add existing add-on"
},
"header": {
"duration": "min duration",
"fromPrice": "from price",
"employees": "employees",
"bookingsThisYear": "bookings this year",
"active": "Active",
"inactive": "Inactive"
},
"categoryDrawer": {
"title": "Create category",
"name": "Category name",
"description": "Description",
"visibilitySection": "Visibility",
"showInBooking": "Category should be shown in online booking",
"showInBookingDescription": "Category will still be visible here in the system",
"timePeriod": "Should only be visible in the following time period",
"timePeriodHint": "Leave fields blank for no time restriction",
"save": "Save category"
}
}
},
"employees": {
"title": "Employees",
"subtitle": "Manage users, roles and permissions",
"stats": {
"activeEmployees": "Active employees",
"pendingInvitations": "Pending invitations",
"rolesDefined": "Roles defined"
},
"tabs": {
"users": "Users",
"roles": "Roles"
},
"users": {
"count": "users",
"inviteUser": "Invite user",
"columns": {
"user": "User",
"role": "Role",
"status": "Status",
"lastActive": "Last active"
}
},
"roles": {
"owner": "Owner",
"admin": "Admin",
"leader": "Manager",
"employee": "Employee"
},
"status": {
"active": "Active",
"invited": "Invitation sent"
},
"permissions": {
"title": "Permission",
"calendar": "Calendar",
"employees": "Employees",
"customers": "Customers",
"reports": "Reports & Finance"
},
"actions": {
"edit": "Edit",
"remove": "Remove user",
"resend": "Resend invitation",
"cancel": "Cancel invitation"
},
"detail": {
"title": "Employee details",
"back": "Back to employees",
"save": "Save changes",
"tabs": {
"general": "General",
"hours": "Working hours",
"schedule": "Schedule",
"services": "Services",
"salary": "Salary",
"hr": "HR",
"stats": "Statistics"
},
"schedule": {
"week": "Week",
"hours": "hours",
"editShift": "Edit shift",
"status": "Status",
"work": "Work",
"off": "Off",
"vacation": "Vacation",
"sick": "Sick",
"timeRange": "Time range",
"note": "Note",
"type": "Type",
"single": "Single",
"repeat": "Repeat",
"repeatInterval": "Repeat",
"repeatEnd": "End date",
"weekday": "Weekday",
"buttonEdit": "Edit",
"buttonDone": "Done"
},
"contact": "Contact information",
"personal": "Personal information",
"employment": "Employment",
"fullname": "Full name",
"email": "Email",
"phone": "Phone",
"address": "Address",
"postalcity": "Postal code & City",
"birthdate": "Date of birth",
"emergencycontact": "Emergency contact",
"emergencyphone": "Emergency phone",
"employmentdate": "Employment date",
"position": "Position",
"employmenttype": "Employment type",
"hoursperweek": "Hours/week",
"bookings": "bookings this year",
"revenue": "revenue this year",
"rating": "rating",
"employedsince": "employed since",
"hours": {
"label": "hours",
"weekly": "Weekly working hours",
"monday": "Monday",
"tuesday": "Tuesday",
"wednesday": "Wednesday",
"thursday": "Thursday",
"friday": "Friday",
"saturday": "Saturday",
"sunday": "Sunday"
},
"services": {
"assigned": "Assigned services"
},
"salary": {
"rates": "Rates",
"normalrate": "Normal (hourly)",
"overtimerate": "Overtime (100%)",
"vacationrate": "Vacation pay",
"provision": "Commission",
"minimumperhour": "Minimum per hour",
"servicecommission": "On services",
"productcommission": "On product sales",
"supplements": "Supplements",
"weekdaysupplement": "8-21 Weekdays",
"saturdaysupplement": "8-21 Saturdays",
"sundaysupplement": "Sunday",
"history": "Salary specifications",
"period": "Period",
"grosssalary": "Gross salary",
"view": "View",
"ratesdrawertitle": "Salary rates",
"baserates": "Base rates",
"courserate": "Course/training",
"timeoffrate": "Time off in lieu",
"paidleaverate": "Paid leave",
"officerate": "Office work",
"childsickrate": "Child's first sick day",
"childhospitalrate": "Child hospitalization",
"maternityrate": "Maternity leave",
"weekdaysupplementfull": "8-21 Weekdays (outside working hours)",
"saturdaysupplementfull": "8-21 Saturdays (outside working hours)",
"commission": "Commission calculation",
"productcommissionfull": "Commission on product sales",
"servicecommissionfull": "Commission on service sales"
},
"hr": {
"contractdocuments": "Contract & Documents",
"contracttype": "Contract type",
"terminationnotice": "Termination notice",
"contractexpiry": "Contract expiry",
"uploaddocument": "Upload document",
"certifications": "Certifications",
"addcertification": "Add certification",
"courses": "Courses",
"completedcourses": "Completed courses",
"plannedcourses": "Planned courses",
"addcourse": "Add course",
"vacationbalance": "Vacation balance",
"vacationearned": "Earned vacation days",
"vacationused": "Used vacation days",
"vacationremaining": "Remaining",
"absencesickness": "Absence & Sickness",
"sickdays2025": "Sick days 2025",
"sickdays2024": "Sick days 2024",
"childsickdays2025": "Child sick days 2025",
"maternityleave": "Maternity leave",
"plannedabsence": "Planned absence",
"addabsence": "Add absence"
},
"stats": {
"performance": "Performance",
"bookingsyear": "Bookings this year",
"revenueyear": "Revenue this year",
"avgrating": "Avg. rating",
"occupancy": "Occupancy rate",
"completedbookings": "Completed bookings",
"date": "Date",
"time": "Time",
"customer": "Customer",
"services": "Services",
"duration": "Duration",
"amount": "Amount",
"status": "Status",
"paid": "Paid",
"pending": "Pending"
},
"settings": {
"label": "Settings",
"showinbooking": {
"label": "Show in online booking",
"desc": "Customers can select this employee"
},
"smsreminders": {
"label": "Get notified via the App about new bookings",
"desc": ""
},
"editcalendar": {
"label": "Can edit own calendar",
"desc": "Allow changes to own bookings"
}
},
"notifications": {
"label": "Notifications",
"intro": "Choose which notifications to send.",
"onlinebooking": "Email on online booking",
"manualbooking": "Email on manual booking",
"cancellation": "Email on cancellation",
"waitlist": "Email on waitlist signup",
"dailysummary": "Email with daily summary"
}
}
}
}