refactor: Projektstruktur in app/ und backend/ aufgeteilt

This commit is contained in:
2026-03-24 15:06:44 +01:00
parent 5f5d5995c5
commit 2673ef658d
449 changed files with 28551 additions and 167 deletions

View File

@@ -0,0 +1,950 @@
# Common Dialog
dialog.cancel=Cancel
dialog.confirm=Confirm
# Navigation and Main Layout
nav.jobs=Jobs
nav.job.create=Create Job
nav.customers=Customers
nav.appusers=App Users
nav.statistics=Statistics
nav.invoices=Invoices
nav.messages=Messages
nav.profile=My Profile
nav.myinvoices=Invoices
nav.imprint=Imprint
nav.management=Management
nav.users=Users
nav.showprofile=Show Profile
nav.settings=Settings
nav.logout=Log Out
# Profile View
profile.title=Edit Profile
profile.language=Language
profile.company=Company
profile.companyadd=Company Suffix
profile.firstname=First Name
profile.lastname=Last Name
profile.phone=Phone Number
profile.fax=Phone (Fax)
profile.mobile=Phone (Mobile)
profile.email=Email Address (Login)*
profile.street=Street
profile.housenr=House No.
profile.addressadd=Address Suffix
profile.zip=Postal Code
profile.city=City
profile.diffinvoice=Different Billing Address
profile.basicdata=Master Data
profile.map=Map
profile.invoicecreation=Invoice Creation
profile.settings=Settings
profile.settings.digitalprocess=Digital Processing
profile.settings.digitalprocess.info=Jobs are processed digitally via the app
profile.settings.locateappuser=Locate App Users
profile.settings.locateappuser.info=App user location is transmitted regularly
profile.account=Account
profile.security=Security
profile.security.twofactor=Two-Factor Authentication
profile.security.twofactor.info=An additional code is sent via email when logging in
profile.services=Service Catalog
profile.saved=Profile saved
profile.save.error=Error saving: {0}
profile.validation.required.fill=Please fill in all required fields correctly
# Profile Settings
settings.digitalprocessing=Digital Processing via App
settings.digitalprocessinginfo=Enables digital job processing via the mobile app
settings.locationtracking=Locate App Users
settings.locationtrackinginfo=Allows locating app users during job execution
settings.twofactor=2-Factor Authentication
settings.twofactorinfo=When enabled, a code is sent via email at each login
# Profile Billing
profile.billing.enabled=Invoicing via votianLT
profile.billing.prefix=Invoice Prefix
# Profile Validation
profile.validation.company=Company is a required field
profile.validation.firstname=First name is a required field
profile.validation.lastname=Last name is a required field
profile.validation.phone=Phone number is a required field
profile.validation.street=Street is a required field
profile.validation.housenr=House number is a required field
profile.validation.zip=Postal code is a required field
profile.validation.city=City is a required field
profile.validation.email.required=Email address is a required field
profile.validation.email.invalid=Please enter a valid email address
profile.validation.company.required=Company is required
profile.validation.street.required=Street is required
profile.validation.housenr.required=House number is required
profile.validation.zip.required=Postal code is required
profile.validation.city.required=City is required
profile.validation.firstname.required=First name is required
profile.validation.lastname.required=Last name is required
profile.validation.phone.required=Phone number is required
# Profile Invoice
profile.invoice.masterdata=My Master Data
profile.invoice.name=Name
profile.invoice.city=City
profile.invoice.email=Email
profile.invoice.phone=Phone
profile.invoice.placeholder.company=Your Company
profile.invoice.placeholder.name=Your Name
profile.invoice.placeholder.street=Your Street
profile.invoice.placeholder.city=Postal Code City
profile.invoice.placeholder.email=your@email.com
profile.invoice.placeholder.phone=Your Phone Number
profile.invoice.services.list=List Services
profile.invoice.net=Net Total
profile.invoice.vat=VAT
profile.invoice.gross=Gross Total
profile.invoice.customerdata=Customer Data
profile.invoice.customer.company=Customer Company
profile.invoice.customer.name=Customer Name
profile.invoice.customer.street=Customer Street
profile.invoice.customer.city=Customer City
profile.invoice.customer.email=Customer Email
profile.invoice.customer.phone=Customer Phone
profile.invoice.free.elements=Free Elements
profile.invoice.element.text=Text Field
profile.invoice.element.header=Header
profile.invoice.element.date=Date
profile.invoice.element.customer=Customer Info
profile.invoice.element.company=Company Info
profile.invoice.element.amount=Amount
profile.invoice.element.line=Line
profile.invoice.element.image=Image
profile.invoice.element.invoicenumber=Invoice Number
profile.invoice.properties=Properties
profile.invoice.properties.info=Click on an element in the canvas to edit its properties.
profile.invoice.type=Type
profile.invoice.variable=Variable
profile.invoice.xposition=X Position
profile.invoice.yposition=Y Position
profile.invoice.fontsize=Font Size
profile.invoice.color=Color
profile.invoice.element.delete=Delete Element
profile.invoice.image=Upload Image
profile.invoice.image.drop=Drag image here or click
profile.invoice.image.uploaded=Image uploaded successfully
profile.invoice.image.upload.error=Error uploading: {0}
profile.invoice.file.rejected=File rejected: {0}
profile.invoice.text.from.masterdata=Text comes from your master data
profile.invoice.canvas.cleared=Canvas has been cleared
profile.invoice.canvas.read.error=Error: Canvas data could not be read
profile.invoice.template.saved=Template saved successfully
profile.invoice.pdf.error=Error generating PDF: {0}
profile.invoice.pdf.preview=Preview
profile.invoice.pdf.preview.error=Error generating preview: {0}
# Profile Services
profile.services.label=Services
profile.services.description=Manage your services that you offer to your customers here.
profile.services.add=Add New Service
profile.services.load.error=Error loading services: {0}
profile.services.saved=Service saved successfully
profile.services.save.error=Error saving service: {0}
profile.services.deleted=Service deleted successfully
profile.services.delete.error=Error deleting service: {0}
profile.services.dialog.create=Create New Service
profile.services.dialog.edit=Edit Service
profile.services.basis=Calculation Basis
profile.services.basis.distance=Distance Driven
profile.services.basis.time=Time
profile.services.basis.flatrate=Flat Rate
profile.services.vatrate=VAT Rate (%)
profile.services.vatrate.percent=VAT Rate (%)
profile.services.price.flatrate=Flat Rate Price (\u20ac)
profile.services.price.distance=Price per Kilometer (\u20ac)
profile.services.price.time=Price per 15 Minutes (\u20ac)
profile.services.mandatory=Mandatory
profile.services.calculated=Calculated
profile.services.validation.name=Name is required
profile.services.validation.basis=Calculation basis is required
profile.services.validation.flatrate=Flat rate price is required
profile.services.validation.distance=Price per kilometer is required
profile.services.validation.time=Price per 15 minutes is required
profile.services.validation.vatrate=VAT rate is required
profile.services.savechanges=Save Service
# Buttons
button.save=Save Profile Changes
button.savechanges=Save
button.clear=Clear
button.preview=Preview
button.savetemplate=Save Template
button.changepassword=Change Password
button.deleteaccount=Delete Account
button.add=New
button.edit=Edit
button.delete=Delete
button.cancel=Cancel
button.close=Close
button.download=Download
button.back=Back
# Common
common.name=Name
common.yes=Yes
common.no=No
common.total=Total
common.price=Price
common.service=Service
common.customer=Customer
common.actions=Actions
common.loading=Loading...
common.error=Error
common.success=Success
common.required=Required
# Validation
validation.required=Field is required
validation.email=Invalid email address
validation.error=Validation error
# Notifications
notification.saved=Profile saved
notification.error=Error saving
notification.languagechanged=Language changed
# Login
login.title=Log In
login.username=Username
login.password=Password
login.login=Log In
login.forgotpassword=Forgot Password?
login.rememberme=Remember Me
login.register=Register
login.2fa.helper=6-digit code
login.2fa.sent=Code was sent via email
login.2fa.no.credentials=No credentials available
login.2fa.invalid.code=Invalid code
login.2fa.wrong.code=Wrong code
# Error Messages
error.loading=Error loading
error.saving=Error saving
error.validation=Validation error
# Page Titles
page.title.dashboard=VotianLT - Dashboard
page.title.appuser.create=Create New App User
page.title.messages=Messages
page.title.register=Register at VotianLT
page.title.customers=Customers
page.title.customer.edit=Edit Customer
page.title.verwaltung=Management
page.title.company.create=Create New Company
page.title.imprint=Imprint
page.title.profile.edit=Edit Profile
page.title.admin.dashboard=Admin Dashboard
page.title.invoice.create=Create Invoice
page.title.customer.create=Create New Customer
page.title.login=Log In to VotianLT
page.title.jobs=Jobs
page.title.appuser.edit=Edit App User
page.title.statistics=Statistics
page.title.password.forget=Reset Password
page.title.invoices=Invoices
page.title.appusers=App Users
page.title.job.history=Job History
page.title.message.history=Message History
page.title.myinvoices=Invoices
page.title.job.create=Create New Job
page.title.job.summary=Summary
page.title.pricetable=Price Table
page.title.invoice.generator=Invoice Generator
page.title.welcome=VotianLT - Welcome
page.title.password.reset=Reset Password \u2013 Enter Email
page.title.add.appuser=Create New App User
page.title.user.messages=Messages
page.title.edit.customer=Edit Customer
page.title.show.customers=Customers
page.title.add.company=Create New Company
page.title.create.invoice=Create Invoice
page.title.add.customer=Create New Customer
page.title.edit.appuser=Edit App User
page.title.forget.password=Reset Password
page.title.admin.pricetable=Price Table
page.title.add.job=Create New Job
# Dashboard
dashboard.welcome=Welcome, {0}!
dashboard.description=Here you can manage your jobs, organize customers, and use all important features of VotianLT.
dashboard.system.title=System Overview
dashboard.system.intro=Manage your business processes efficiently with the following features
dashboard.feature.setup.title=Setup
dashboard.feature.setup.desc=Configure your system settings and master data
dashboard.feature.customers.title=Customers
dashboard.feature.customers.desc=Manage your customer relationships and contacts
dashboard.feature.jobs.title=Jobs
dashboard.feature.jobs.desc=Create and manage jobs efficiently
# Add App User
addappuser.title=Create New App User
addappuser.designation=Designation
addappuser.phone=Phone (Mobile)
addappuser.password=Password
addappuser.password.confirm=Confirm Password
addappuser.button.submit=Create App User
addappuser.validation.designation=Designation is required
addappuser.validation.phone=Phone number is required
addappuser.validation.password.required=Password is required
addappuser.validation.password.min=Password must have at least 6 characters
addappuser.validation.password.confirm=Password confirmation is required
addappuser.validation.password.mismatch=Passwords do not match
addappuser.validation.email.required=Email is required
addappuser.validation.email.invalid=Invalid email address
addappuser.notification.validation=Please fill in all required fields
addappuser.notification.success=App user created successfully
addappuser.notification.check=Please check your input
addappuser.notification.email.duplicate=This email address is already in use
addappuser.notification.error=Error: {0}
addappuser.placeholder.designation=(HH H 000)
# Edit App User
editappuser.title=Edit App User
editappuser.password.change=New Password
editappuser.password.change.confirm=Confirm New Password
editappuser.password.placeholder=Leave empty to keep current password
editappuser.notification.invalid.id=Invalid app user ID
editappuser.notification.password.mismatch=Passwords do not match
editappuser.notification.saved=App user saved successfully
editappuser.notification.check=Please check your input
editappuser.notification.password.confirm=Please confirm the new password
editappuser.notification.password.enter=Please enter a new password
editappuser.notification.deleted=App user deleted successfully
editappuser.dialog.delete.text=Are you sure you want to delete this app user?
editappuser.dialog.delete.confirm=Delete
# Customers
customers.title=Customers
customers.button.add=Add New Customer
customers.hint.click=Click on a customer to see details
customers.column.company=Company
customers.column.name=Name
customers.column.email=Email
customers.column.phone=Phone
customers.column.street=Street
customers.column.city=City
# Edit Customer
editcustomer.title=Edit Customer
editcustomer.notification.notfound=Customer not found
editcustomer.notification.invalid.id=Invalid customer ID
editcustomer.notification.saved=Customer saved successfully
editcustomer.notification.check=Please check your input
editcustomer.notification.deleted=Customer deleted successfully
editcustomer.dialog.delete.text=Are you sure you want to delete this customer?
editcustomer.dialog.delete.confirm=Delete
# Add Customer
addcustomer.title=Create New Customer
addcustomer.button.submit=Create Customer
addcustomer.notification.validation=Please fill in all required fields
addcustomer.notification.success=Customer created successfully
addcustomer.notification.check=Please check your input
addcustomer.notification.error=Error: {0}
addcustomer.validation.required=This field is required
# Add Company
addcompany.title=Create New Company
addcompany.button.submit=Create Company
# Verwaltung
verwaltung.title=Management
verwaltung.description=Manage your companies, customers, and system settings here
# User Messages
usermessages.title.with=Messages with {0}
usermessages.general.title=General Conversations
usermessages.general.conversation=General Conversation
usermessages.job.title=Job-Related Messages
usermessages.job.conversation=Job {0}
usermessages.no.job.messages=No job-related messages
usermessages.preview.empty=No preview available
usermessages.message.count={0} Messages
usermessages.unknown=Unknown
usermessages.unknown.participant=Unknown Participant
# Admin Dashboard
admindashboard.title=Admin Dashboard
admindashboard.loading=Loading statistics...
admindashboard.error=Error loading: {0}
admindashboard.section.overview=Overview
admindashboard.section.jobs=Jobs
admindashboard.section.tasks=Tasks
admindashboard.section.users=User Activities
admindashboard.section.health=System Status
admindashboard.stat.totaljobs=Total Jobs
admindashboard.stat.users=Users
admindashboard.stat.appusers=App Users
admindashboard.stat.lastupdated=Last Updated
admindashboard.stat.openjobs=Open Jobs
admindashboard.stat.inprogress=In Progress
admindashboard.stat.completed=Completed
admindashboard.stat.cargo=Cargo Items
admindashboard.stat.status.info=Status
admindashboard.stat.status.unavailable=Unavailable
admindashboard.stat.totaltasks=Total Tasks
admindashboard.stat.completedtasks=Completed
admindashboard.stat.pendingtasks=Pending
admindashboard.stat.successrate=Success Rate
admindashboard.stat.photos=Photos
admindashboard.stat.barcodes=Barcodes
admindashboard.stat.signatures=Signatures
admindashboard.stat.comments=Comments
admindashboard.stat.database=Database
admindashboard.stat.database.connected=Connected
admindashboard.stat.database.error=Error
admindashboard.stat.websocket=WebSocket
admindashboard.stat.websocket.active=Active
admindashboard.stat.app=Application
admindashboard.stat.app.running=Running
admindashboard.stat.memory=Memory
# Messages
messages.title=Messages
messages.column.status=Status
messages.column.client=Customer
messages.column.email=Email
messages.column.total=Total
messages.column.unread=Unread
messages.column.lastmessage=Last Message
messages.column.preview=Preview
messages.notification.error=Error loading messages
messages.preview.image=Image
messages.preview.empty=No preview
messages.sender.unknown=Unknown Sender
# Add Job
addjob.title=Create New Job
addjob.customer.label=Customer
addjob.customer.placeholder=Select Customer
addjob.customer.unnamed=Unnamed Customer
addjob.button.clearfields=Clear Fields
addjob.button.submit=Create Job
addjob.address.salutation=Salutation
addjob.address.salutation.placeholder=Select Salutation
addjob.salutation.mr=Mr
addjob.salutation.ms=Ms
addjob.salutation.other=Other
addjob.address.company.placeholder=Enter company
addjob.address.street.placeholder=Enter street
addjob.address.housenumber=House Number
addjob.address.addition.placeholder=Address suffix
addjob.address.city=City
addjob.address.city.placeholder.pickup=City (Pickup)
addjob.address.city.placeholder.delivery=City (Delivery)
addjob.address.delivery.street.placeholder=Street (Delivery)
addjob.address.delivery.addition.placeholder=Address suffix (Delivery)
addjob.address.save=Save Address
addjob.section.pickup=Pickup
addjob.section.delivery=Delivery
addjob.stations.apply=Apply Stations
addjob.station.delivery=Delivery Station {0}
addjob.station.add=Add Delivery Station
addjob.station.remove.confirm=Really remove delivery station {0}?
addjob.station.max.reached=Maximum number of 25 delivery stations reached
addjob.station.unused=Not used
addjob.appointment.delivery.info=Delivery dates are set directly in the delivery stations.
addjob.tab.addresses=Client & Addresses
addjob.tab.appointments=Appointments & Processing
addjob.tab.cargo=Cargo
addjob.tab.tasks=Tasks
addjob.tab.price=Price & Completion
addjob.appointment.date=Date
addjob.appointment.time=Time
addjob.appointment.pickup=Pickup Date
addjob.appointment.delivery=Delivery Date
addjob.settings.digitalprocess=Digital Processing via App
addjob.appuser.label=App User
addjob.appuser.placeholder=Select App User
addjob.cargo.description=Description
addjob.cargo.description.placeholder=Enter description
addjob.cargo.quantity=Quantity
addjob.cargo.weight=Weight
addjob.cargo.length=Length
addjob.cargo.width=Width
addjob.cargo.height=Height
addjob.cargo.europalette=Euro Pallet
addjob.cargo.disposablepalette=Disposable Pallet
addjob.cargo.dusseldorfpalette=Dusseldorf Pallet
addjob.cargo.gridboxpalette=Grid Box Pallet
addjob.cargo.gridcart=Grid Cart
addjob.cargo.parcel=Parcel
addjob.cargo.add=Add Cargo
addjob.tasks.title=Tasks
addjob.tasks.template.placeholder=Select Template
addjob.tasks.template.save.tooltip=Save as Template
addjob.tasks.template.save.title=Save Template
addjob.tasks.template.name=Template Name
addjob.tasks.template.name.placeholder=Enter name
addjob.tasks.template.name.required=Name is required
addjob.tasks.template.saved=Template "{0}" saved
addjob.tasks.template.save.error=Error saving: {0}
addjob.tasks.template.dialog.error=Error opening dialog: {0}
addjob.tasks.template.no.tasks=No tasks to save
addjob.tasks.template.load.title=Load Template
addjob.tasks.template.load.text=Do you want to load the template "{0}"? This action will replace all current tasks.
addjob.tasks.template.load.confirm=Load
addjob.tasks.template.loaded=Template "{0}" loaded
addjob.tasks.template.load.error=Error loading: {0}
addjob.tasks.template.load.templates.error=Error loading templates: {0}
addjob.tasks.add=Add Task
addjob.tasks.tasktype=Task Type
addjob.tasks.tasktype.placeholder=Select Type
addjob.tasks.description=Description
addjob.tasks.description.placeholder=Enter description
addjob.tasks.buttontext=Button Text
addjob.tasks.buttontext.placeholder=Enter text
addjob.tasks.remark=Remark
addjob.tasks.remark.placeholder=Enter remark
addjob.tasks.photo.min=Min. Photos
addjob.tasks.photo.max=Max. Photos
addjob.tasks.barcode.min=Min. Barcodes
addjob.tasks.barcode.max=Max. Barcodes
addjob.tasks.signature.noconfig=No configuration required
addjob.tasks.todolist.title=To-Do List
addjob.tasks.todolist.item.placeholder=Enter to-do
addjob.tasks.todolist.add=Add To-Do
addjob.tasks.comment.label=Comment
addjob.tasks.comment.placeholder=Enter comment
addjob.tasks.comment.required=Comment required
addjob.tasks.optional=Task is optional
addjob.services.title=Services
addjob.services.add=Add Service
addjob.services.calculation=Calculation
addjob.services.basis.distance=Distance Driven
addjob.services.basis.time=Time
addjob.services.basis.flatrate=Flat Rate
addjob.services.vat=VAT
addjob.services.route.missing=Route missing
addjob.services.dialog.title=Select Service
addjob.services.dialog.placeholder=Select Service
addjob.services.dialog.station.placeholder=Select Delivery Station
addjob.services.dialog.add=Add
addjob.services.deliverystation=Delivery Station
addjob.summary.title=Summary
addjob.summary.net=Net
addjob.summary.vat=VAT
addjob.summary.gross=Gross
addjob.route.title=Route
addjob.route.distance=Distance
addjob.route.distance.km=Distance (km)
addjob.route.distance.placeholder=e.g. 150.5
addjob.route.duration=Duration
addjob.route.duration.min=Duration (min.)
addjob.route.duration.placeholder=e.g. 120
addjob.route.manual.title=Manual Route Entry
addjob.route.manual.hint=Enter distance and duration manually if no route was calculated
addjob.notification.success=Job {0} created successfully
addjob.notification.cleared=All fields have been cleared
addjob.notification.draft.restored=Draft restored
addjob.validation.required.fields=Please fill in all required fields
addjob.validation.appuser.required=Please select an app user
addjob.validation.cargo.required=Please specify at least one cargo item
addjob.validation.pickupdate.future=Pickup date must be today or in the future
addjob.validation.deliverydate.future=Delivery date must be today or in the future
addjob.validation.dialog.title=Address Validation
addjob.validation.dialog.loading=Validating addresses...
addjob.validation.dialog.back=Back
addjob.validation.dialog.continue=Continue
addjob.validation.dialog.continue.anyway=Continue Anyway
addjob.validation.pickup.address=Pickup Address
addjob.validation.delivery.address=Delivery Address
addjob.validation.route=Route
addjob.validation.address.not.found.title=Address Not Found
addjob.validation.address.not.found.message=The entered address could not be clearly found on Google. Do you want to save anyway?
addjob.validation.address.save.anyway=Save Anyway
addjob.validation.address.correct=Correct Address
# Job Summary
jobsummary.title=Summary
jobsummary.error.noid=No job ID specified
jobsummary.error.invalidid=Invalid job ID format: {0}
jobsummary.error.notfound=Job with ID {0} not found
jobsummary.button.sendmessage=Send Message
jobsummary.button.jobhistory=Job History
jobsummary.button.complete=Complete Job Manually
jobsummary.dialog.complete.title=Complete Job
jobsummary.dialog.complete.text=Do you want to manually complete job {0}?
jobsummary.dialog.complete.cancel=Cancel
jobsummary.dialog.complete.confirm=Complete
jobsummary.notification.completed=Job {0} has been completed
jobsummary.notification.complete.error=Error completing: {0}
jobsummary.notification.noappuser=No app user is assigned to this job
jobsummary.section.pickup=Pickup
jobsummary.section.delivery=Delivery
jobsummary.station.phone=Phone
jobsummary.section.tasks=Tasks to Confirm
jobsummary.section.cargo=Cargo to Transport
jobsummary.section.info=Additional Information
jobsummary.tasks.none=No tasks
jobsummary.cargo.none=No cargo details
jobsummary.info.netto=Net
jobsummary.info.ust=VAT
jobsummary.info.gesamt=Total
jobsummary.info.bemerkung=Remark
jobsummary.info.digital=Digital processing via app: enabled
jobsummary.info.appuser=App User
jobsummary.task.status.abgeschlossen=Completed
jobsummary.task.status.offen=Open
jobsummary.task.typ=Type
jobsummary.task.completedAt=Completed on
jobsummary.task.completedBy=Completed by
jobsummary.task.todo.items=To-Do Items
jobsummary.task.photo.info=Photos
jobsummary.task.photo.minmax=At least {0} photos required
jobsummary.task.photo.maxonly=Maximum {0} photos allowed
jobsummary.task.photo.taken=Photos taken ({0})
jobsummary.task.button.text=Button Text
jobsummary.button.schliessen=Close
# Jobs
jobs.title=Jobs
jobs.filter.search=Search
jobs.filter.search.placeholder=Search by job number...
jobs.filter.startdate=Start Date
jobs.filter.enddate=End Date
jobs.filter.status=Status
jobs.filter.apply=Apply Filter
jobs.status.all=All
jobs.status.open=Open
jobs.status.done=Done
jobs.notification.completed=Job {0} has been completed
jobs.column.status=Status
jobs.column.customer=Customer
jobs.column.jobnumber=Job Number
jobs.column.jobdate=Job Date
jobs.column.destination=Destination
jobs.historie.manuell=Manual
jobs.button.csvexport=CSV Export
jobs.tooltip.complete=Complete Job
jobs.tooltip.createinvoice=Create Invoice
jobs.tooltip.showinvoice=Show Invoice
jobs.tooltip.delete=Delete Job
jobs.dialog.complete.title=Complete Job
jobs.dialog.complete.text=Do you want to manually complete job {0}?
jobs.dialog.complete.confirm=Complete
jobs.dialog.delete.title=Delete Job
jobs.dialog.delete.text=Are you sure you want to delete job {0}?
jobs.notification.complete.error=Error completing: {0}
jobs.notification.deleted=Job {0} has been deleted
jobs.notification.delete.error=Error deleting: {0}
# Create Invoice
createinvoice.title=Create Invoice \u2013 Job {0}
createinvoice.error.invalidid=Invalid Job ID
createinvoice.error.notfound=Job not found
createinvoice.button.create=Create Invoice
createinvoice.section.job=Job Details
createinvoice.section.route=Route Info
createinvoice.section.services=Services
createinvoice.section.summary=Summary
createinvoice.field.jobnumber=Job Number
createinvoice.field.customer=Customer
createinvoice.field.status=Status
createinvoice.field.price=Price
createinvoice.route.distance=Distance
createinvoice.route.duration=Travel Time
createinvoice.column.service=Service
createinvoice.column.basis=Calculation Basis
createinvoice.summary.net=Net Total
createinvoice.summary.vat=VAT ({0}%)
createinvoice.summary.total=Grand Total
createinvoice.notification.noservices=Please select at least one service
createinvoice.notification.nouser=User not found
createinvoice.notification.notemplate=No invoice template found
createinvoice.notification.error=Error creating invoice: {0}
createinvoice.notification.saved=Invoice {0} has been saved
createinvoice.preview.title=Invoice Preview
createinvoice.preview.number=PREVIEW
createinvoice.button.save=Save
createinvoice.confirm.save.title=Save Invoice
createinvoice.confirm.save.message=This invoice will be permanently saved and cannot be modified afterwards. Continue?
createinvoice.confirm.save.confirm=Yes, save
# Invoices
invoices.title=Invoices
invoices.column.number=Number
invoices.column.customer=Customer
invoices.column.date=Date
invoices.column.amount=Amount
invoices.column.description=Description
invoices.empty=No invoices have been created yet.
invoices.notification.pdf.missing=No PDF is stored for this invoice.
# My Invoices
myinvoices.title=Invoices
myinvoices.hint.noopen=You have no open invoices. All invoices have been paid.
myinvoices.bank.institute=Bank
myinvoices.bank.beneficiary=Beneficiary
myinvoices.bank.iban=IBAN
myinvoices.recipient.name=Customer
myinvoices.recipient.department=
myinvoices.item.description=Item: {0}
myinvoices.card.open=Open Invoices
myinvoices.card.bank=Bank Details
myinvoices.bank.reference=Payment Reference
myinvoices.section.title=All Invoices
myinvoices.filter.pagesize=Entries per Page
myinvoices.filter.search=Search
myinvoices.filter.search.placeholder=Search invoice number...
myinvoices.column.status=Status
myinvoices.column.number=Number
myinvoices.column.date=Date
myinvoices.column.amount=Amount
myinvoices.empty.title=No Invoices
myinvoices.empty.desc=No invoices were found.
myinvoices.button.prev=Previous
myinvoices.button.next=Next
# App User
appuser.title=App Users
appuser.button.add=Add App User
appuser.column.designation=Designation
appuser.column.firstname=First Name
appuser.column.lastname=Last Name
appuser.column.phone=Phone
appuser.column.appcode=App Code
appuser.column.email=Email
# Statistics
statistics.title=Statistics
statistics.subtitle=Ask questions about your jobs and customers
statistics.prompt.placeholder=Enter question...
statistics.quick.jobcount=Number of Jobs
statistics.quick.jobcount.prompt=How many jobs do I currently have?
statistics.quick.revenue=Revenue
statistics.quick.revenue.prompt=What is my revenue this month?
statistics.quick.trend=Trends
statistics.quick.trend.prompt=Show me trends from the last 3 months as a bar chart
statistics.ai.label=AI Response
statistics.data.fetched=Data has been retrieved
statistics.loading=Calculating...
# Job Status
jobstatus.IN_PROGRESS=In Progress
jobstatus.COMPLETED=Completed
# Task Types
tasktype.CONFIRMATION=Confirmation
tasktype.SIGNATURE=Signature
tasktype.TODOLIST=To-Do List
tasktype.PHOTO=Photo
tasktype.BARCODE=Barcode
tasktype.COMMENT=Comment
# Password Reset
passwordreset.title=Reset Password
passwordreset.newpassword=New Password
passwordreset.confirmpassword=Confirm Password
passwordreset.button.submit=Save Password
passwordreset.button.cancel=Cancel
passwordreset.button.send=Send Email
passwordreset.notification.enterpassword=Please enter a new password
passwordreset.notification.mismatch=The passwords do not match
passwordreset.notification.success=Password has been changed successfully
passwordreset.notification.invalidtoken=Token invalid or expired
passwordreset.notification.entermail=Please enter email
passwordreset.notification.sent=If the email exists, a link has been sent
passwordreset.notification.wait=Please wait {0} seconds before resending the code
# Email
email.2fa.subject=Your VotianLT Verification Code
email.2fa.body=Your verification code is: {0}\n\nThis code is valid for 10 minutes.\nIf you did not request this registration, please ignore this email.
# Register
register.title=Registration
register.subtitle=Create your VotianLT account
register.email=Email Address
register.password=Password
register.password.placeholder=At least 6 characters
register.password.confirm=Confirm Password
register.password.confirm.placeholder=Repeat password
register.firstname=First Name
register.lastname=Last Name
register.phone=Phone Number
register.company=Company
register.street=Street
register.housenr=House No.
register.zip=Postal Code
register.city=City
register.code.label=Verification Code (6 digits)
register.code.placeholder=e.g. 123456
register.button.submit=Register
register.button.verify=Verify Code and Register
register.button.resend=Resend Code
register.button.back=Back to Home
register.notification.email.required=Please enter an email address
register.notification.email.invalid=Please enter a valid email address
register.notification.email.duplicate=A user with this email address already exists
register.notification.password.required=Please enter a password
register.notification.password.min=The password must be at least 6 characters long
register.notification.password.mismatch=The passwords do not match
register.notification.firstname.required=Please enter your first name
register.notification.lastname.required=Please enter your last name
register.notification.phone.required=Please enter your phone number
register.notification.company.required=Please enter the company name
register.notification.street.required=Please enter the street
register.notification.housenr.required=Please enter the house number
register.notification.zip.required=Please enter the postal code
register.notification.city.required=Please enter the city
register.notification.code.sent=A verification code has been sent to {0}
register.notification.code.emailerror=Error sending email: {0}
register.notification.code.expired=The code has expired. Please send a new code.
register.notification.code.invalid=The entered code is invalid
register.notification.code.startfirst=Please start the registration first
register.notification.code.required=Please enter the 6-digit code
register.notification.success=Registration successful. Please log in.
register.notification.failed=Registration failed: {0}
# Start Page
start.title=VotianLT - Your Digital Transport Partner
start.button.login=Log In
start.button.demo=Demo
start.button.register=Register
login.demo.only.button=Demo access is only available through the Demo button on the start page.
demo.session.active=Demo mode is already being used by another user. Please try again later.
demo.start.error=Demo mode could not be started.
start.button.createorder=Create Job
start.button.notifications=Notifications
start.button.nonotifications=No new notifications
start.hero.description=For solo self-employed and small business owners in the transport industry - fully digital and all-in-one. Focus on your business, we take care of the paperwork.
start.hero.demo.hint=Demo starts immediately with prepared sample data.
start.hero.trial.hint="Try now for free" creates your own account for the free trial month.
start.system.title=The System
start.system.intro=For solo self-employed and small business owners in the transport industry, it is crucial that they can primarily focus on their actual business: winning customers and delivering goods from A to B.
start.feature.setup.title=Setup Wizard
start.feature.setup.desc=With the setup wizard, you can complete your user profile.
start.feature.customers.title=Customer & Job Management
start.feature.customers.desc=With customer and job management, you always have all contact details and job details at a glance.
start.feature.jobs.title=Job Creation
start.feature.jobs.desc=Create jobs in the system with just a few clicks and assign which employee should handle which transport job.
start.app.title=The App
start.app.description=Every job can optionally be processed via the votianLT app \u2013 completely paperless. All relevant job information is delivered directly to the driver's smartphone.
start.imprint.title=Imprint
start.imprint.company=Assecutor Data Service GmbH
start.imprint.address=Ottensener Str. 8, 22525 Hamburg
start.imprint.phone=Phone: +49 40 18 123 771 0
start.imprint.email=Email: ahoi@assecutor.de
start.cta.text=Register today and use the free trial month to put the system through its paces.
start.slogan=Run your business smart ... with votianLT!
start.version=Version
# Login View
login.2fa.title=2FA Code
login.2fa.button=Verify Code
login.votianlt=VotianLT
login.version=Version
# Message Details
messagedetails.button.send=Send
messagedetails.placeholder=Enter message...
messagedetails.noimage=(no image content)
messagedetails.imageerror=(Image could not be loaded)
# Invoice Generator
invoicegenerator.properties.title=Properties
invoicegenerator.properties.type=Type
invoicegenerator.fontsize.label=Font Size
invoicegenerator.color.label=Font Color
invoicegenerator.color.dialog.title=Choose Font Color
invoicegenerator.color.dialog.hex=Hex Color Value
invoicegenerator.button.cancel=Cancel
invoicegenerator.button.apply=Apply
invoicegenerator.button.delete=Delete Element
invoicegenerator.notification.color.applied=Color applied
invoicegenerator.upload.drop=Drag image here or click
invoicegenerator.upload.success=Image uploaded successfully
invoicegenerator.upload.error=Error uploading: {0}
invoicegenerator.file.rejected=File rejected: {0}
invoicegenerator.properties.select.info=Click on an element in the canvas to edit its properties.
invoicegenerator.template.vline=Vertical Line
# CSV Export
csv.header.customer=Client
csv.header.jobnumber=Job Number
csv.header.jobdate=Job Date
csv.header.destination=Destination
csv.filename=jobs.csv
# DatePicker I18n
datepicker.month.januar=January
datepicker.month.februar=February
datepicker.month.m\u00e4rz=March
datepicker.month.april=April
datepicker.month.mai=May
datepicker.month.juni=June
datepicker.month.juli=July
datepicker.month.august=August
datepicker.month.september=September
datepicker.month.oktober=October
datepicker.month.november=November
datepicker.month.dezember=December
datepicker.weekday.sonntag=Sunday
datepicker.weekday.montag=Monday
datepicker.weekday.dienstag=Tuesday
datepicker.weekday.mittwoch=Wednesday
datepicker.weekday.donnerstag=Thursday
datepicker.weekday.freitag=Friday
datepicker.weekday.samstag=Saturday
datepicker.weekdayshort.so=Sun
datepicker.weekdayshort.mo=Mon
datepicker.weekdayshort.di=Tue
datepicker.weekdayshort.mi=Wed
datepicker.weekdayshort.do=Thu
datepicker.weekdayshort.fr=Fri
datepicker.weekdayshort.sa=Sat
# Job History
jobhistory.status.pickupscheduled=Pickup Scheduled
jobhistory.status.pickedup=Picked Up
jobhistory.status.intransit=In Transit
jobhistory.status.delivered=Delivered
jobhistory.image.alt=Enlarged Photo
jobhistory.title=Job History
jobhistory.header=Job History for {0}
jobhistory.info.customer=Customer: {0}
jobhistory.info.createdat=Created on: {0}
jobhistory.info.status=Status: {0}
jobhistory.count={0} entries in history
jobhistory.changedby=Changed by: {0}
# Version
version.label=Version
# Management Combo
management.placeholder=Management
management.customers=Customers
management.jobs=Jobs
management.companies=Companies
# User Menu
usermenu.profile=Show Profile
usermenu.settings=Settings
usermenu.logout=Log Out
# CTA Button
cta.freetest=Try for free now
# Miscellaneous
misc.toggle.hide=Hide
misc.toggle.show=Show
misc.nodata=No data available
misc.loading=Loading data...
misc.error=An error occurred
misc.retry=Retry
# Admin Price Table
adminpricetable.title=Price Table
adminpricetable.field.monthly=Monthly Base Package
adminpricetable.field.applicense=App Usage License
adminpricetable.field.revenue=Revenue Share
adminpricetable.notification.saved=Price table has been saved
adminpricetable.notification.save.error=Error saving: {0}
adminpricetable.notification.load.error=Error loading: {0}